首页 > 其他分享 >转载:【AI系统】关键设计指标

转载:【AI系统】关键设计指标

时间:2024-12-11 20:00:43浏览次数:2  
标签:AI 模型 芯片 关键 计算 PE 转载 性能

前面我们已经对 AI 的计算模式有了初步的认识,那么这些计算模式具体是如何和 AI 芯片设计结合起来的呢?接下来我们将从 AI 芯片关键设计指标的角度来进一步拓展对 AI 计算体系的思考。

计算单位

市场上当一款 AI 芯片产品发布时候,经常会通过一些指标数据说明产品的能力,比如芯片制程,内存大小,核心数,带宽,算力等,这些指标体现了 AI 产品的核心竞争力。

为了帮助理解这些指标,我们先来了解一下 AI 算法领域常用的计算单位。

OPS

OPS,Operations Per Second, 每秒操作数。1 TOPS 代表处理器每秒进行一万亿次($10^{12}$)计算。

OPS/W:每瓦特运算性能。TOPS/W 评价处理器在 1W 功耗下运算能力的性能指标。

MACs

Multiply-Accumulate Operations,乘加累计操作。1 MACs 包含一个乘法操作与一个加法操作,通常 $1MACs = 2FLOPs$。

FLOPs

Floating Point Operations, 浮点运算次数,用来衡量模型计算复杂度,常用作神经网络模型速度的间接衡量标准。对于卷积层来说,FLOPs 的计算公式如下:

$$
FLOPs = 2 \cdot H \cdot W \cdot C_{in} \cdot K \cdot K \cdot C_{out}
$$

MAC

Memory Access Cost,内存占用量,用来衡量模型在运行时的内存占用情况。对卷积层来说,MAC 的计算公式如下:

$$
H_{in} \cdot W_{in} \cdot C_{in}+ H_{out} \cdot W_{out} \cdot C_{out}+K \cdot K \cdot C_{in} \cdot C_{out}
$$

AI 芯片关键指标

AI 芯片设计的目标是低成本高效率的执行 AI 模型,所以衡量 AI 芯片的关键指标涉及 AI 模型软件应用层面的指标和 AI 芯片硬件市场竞争力指标两个方面,展开如下:

精度 Accuracy

在 AI 芯片中,精度是一个非常关键的指标,它指的是模型在处理任务时输出结果与实际情况之间的接近程度。理解 AI 芯片的精度指标可以从以下两个角度:

  • 计算精度,比如支持计算支持的位宽,FP32/FP16 等,可以保证多少位宽内的计算结果无误差。

  • 模型效果精度,AI 模型不同的任务有不同的模型效果评价标准,比如 ImageNet 图像识别任务的准确率,回归任务的均方误差等。

吞吐量 Throughput

吞吐量指芯片在单位时间内能处理的数据量。对于具有多核心的芯片,可以处理更多并行任务,吞吐量往往更高。在不同的应用场景,对精度和吞吐量的需求是不同的。

时延 Latency

AI 芯片的时延是指从输入数据传入芯片开始,到输出结果产生的时间间隔。对于需要快速响应的应用场景,如自动驾驶、智能监控等,较低的推理时延是至关重要的。

但是 AI 芯片在执行时候往往是通过应用程序来和用户交互,而在交互应用程序(TTA)中,时延指的是用户输入某个操作或请求后,系统完成相应处理并产生输出结果之间的时间间隔。因此在 TTA 环境中,时延的影响尤为重要,因为用户通常期望系统能够快速响应他们的操作,以提供流畅的用户体验。优化时延可以通过多方面的手段,包括优化系统架构、加速处理流程、减少网络延迟等,从而提高系统的响应速度和性能表现。

能耗 Energy

AI 芯片的能耗指的是在执行 AI 任务时芯片所消耗的能量。随着 AI 应用的广泛普及,对于 AI 芯片的能效和能耗成为了重要关注的焦点之一。

在 AI 任务中,通常需要大量的计算资源来执行复杂的算法,例如神经网络模型的训练和推断。因此,AI 芯片的能耗通常与其性能密切相关。高性能的 AI 芯片通常会消耗更多的能量,而低功耗的设计则可以减少能源消耗并延长电池寿命,这对于移动设备和物联网设备等场景尤为重要。

AI 芯片的能耗取决于多个因素,包括芯片架构、制造工艺、工作负载和优化程度等。一些创新的设计和技术可以帮助降低 AI 芯片的能耗,例如专门针对 AI 计算任务进行优化的架构、低功耗制造工艺、智能功耗管理等。

在选择 AI 芯片时,通常需要权衡性能和能效之间的平衡 AI,以满足具体应用场景的需求。对于一些需要长时间运行或依赖于电池供电的设备,低能耗的 AI 芯片可能更具吸引力,而对于需要高性能计算的场景,则可能更关注芯片的计算能力和性能表现。

系统价格 Cost

价格是市场选择 AI 产品时的重要考量指标。对搭建一个 AI 系统来说,要综合考虑硬件成本以及与之相关的系统集成和全栈生态系统的成本。只有综合考虑这些方面,才能更好地评估 AI 芯片的实际成本和性能表现,从而为实际应用场景做出合适的选择。

硬件自身价格:这是指 AI 芯片本身的制造成本,包括芯片设计、制造、封装、测试等环节的费用。硬件自身价格直接影响到芯片的成本效益比,对于消费市场和大规模部署的场景尤为重要。较低的硬件价格可以降低设备制造成本,提高产品的竞争力。

系统集成上下游全栈等成本:除了硬件本身的成本外,还需要考虑与 AI 芯片相关的系统集成和全栈生态系统的成本。这包括软件开发、算法优化、系统集成、测试验证、软件支持等方面的成本。在实际应用中,AI 芯片往往需要与其他硬件设备、软件系统以及云端服务进行集成,这些集成成本也需要被考虑进来。

易用性 Flexibility

一个好的 AI 芯片产品应该提供完善的软硬件支持、丰富的文档和教程、灵活的编程语言和框架支持,以及便捷的硬件接口和集成支持,从而满足开发者在不同应用场景下的需求,提高开发效率和用户体验。AI 芯片的易用性的具体理解为:

  • 文档和教程:良好的文档和教程能够帮助用户更好地了解 AI 芯片的特性、功能和使用方法,降低学习成本,提高开发效率。

  • 软件支持和开发工具:一个易于使用的 AI 芯片应该提供完善的软件开发工具链,包括丰富的 API、SDK、开发环境等,使开发者可以快速上手并进行应用程序的开发和调试。

  • 硬件接口和集成支持:AI 芯片应该提供标准化的接口和通信协议,便于与其他硬件设备和系统进行集成,从而实现更广泛的应用场景。

  • 性能优化和调试工具:AI 芯片应该提供丰富的性能分析和调试工具,帮助开发者对应用程序进行性能优化和故障排查,提高系统的稳定性和可靠性。

关键设计点

AI 芯片设计的关键点围绕着如何提高吞吐量和降低时延,以及低时延和 Batch Size 之间权衡。具体的实现策略主要表现在 MACs 和 PE 两个方向。

MACs

减少 MACs:MACs 是指在神经网络推理过程中进行的一种常见的计算操作,在 AI 芯片设计中,去掉没有用的 MACs 意味着优化计算资源的利用,以提高性能和效率。通过减少网络的 MACs,芯片上对应增加稀疏数据的硬件结构,提升控制流和数据传输执行效率,达到节省时钟周期的效果。

降低 MAC 执行时间:硬件上单次 MAC 的执行时间和时钟频率和指令开销有关,所以还可以通过增加时钟频率和减少指令开销来降低单次 MAC 的执行时间。

PE

PE,处理单元(Processing Element),PE 是芯片中负责执行计算任务的基本单元,每个处理单元通常包含多个算术逻辑单元(ALU)和寄存器等计算资源,可以并行地执行多个计算任务。PE 在神经网络推理和训练中起着至关重要的作用,其数量和性能直接影响着芯片的计算能力和效率。设计高效的处理单元是提升 AI 芯片性能的重要手段之一。关于 PE 的优化设计方向有两个方面:

  1. 增加 PE 的核心数量。增加 PE 数量意味着更多的 MACs 并发,可以通过采用更高纳米制程技术,可以增加单位面积的芯片上的 PE 密度。

  2. 增加 PE 利用率。实际硬件执行中由于指令调度,数据传输通信等一些限制,PE 的利用率一般并不高,通过增加 PE 利用率也能达到提高吞吐量和降低时延的效果。增加 PE 利用率既包括硬件设计方面的优化,也包括软件算法方面的改进。以下是一些可以考虑的方面:

  • 并行计算:设计支持高效并行计算的硬件结构,使得多个处理单元能够同时执行计算任务,提高处理单元的利用率。比如使用并行处理器架构、硬件流水线设计等方式。

  • 负载均衡:在设计神经网络模型时,合理分配计算任务到不同的处理单元上,确保各个处理单元的负载均衡,避免某些处理单元空闲或过载。比如通过动态调度算法和任务分配策略来实现负载均衡。

  • 数据重用:利用数据重用技术,减少数据在处理单元之间的传输次数,提高数据在处理单元内的重复利用率。比如通过设计高速缓存结构、优化数据存取模式等方式来实现。

计算性能仿真

当我们根据关键指标完成了 AI 芯片的设计之后,不同的 AI 模型在这个芯片上的执行性能都一样吗?或者怎如何评估 AI 模型在这款 AI 芯片上的执行情况?

如果一个模型在 AI 芯片上因为芯片的内部 cache 空间有限导致性能无法提升,认为该模型属于内存受限模型(Memory Bound);如果一个模型在 AI 芯片上因为芯片的计算单元有限导致性能无法提升,则认为该模型属于算力受限模型(Computation Bound)。

算术强度概念

一个模型在 AI 芯片的执行过程大概可以分为三步:1)从外部存储搬移数据到计算单元,2)计算算元进行计算,3)把结果搬回外部存储空间。

再精简的说,就是搬移数据和计算这两件事情。对硬件平台 AI 芯片来说,数据搬移的带宽和计算单元(算力)是固定的值,所以当我们拿到一个 AI 模型时候,可以根据上面提到的 FLOPs 和 MACs 概念,统计出该模型的总 FLOPs(浮点运算次数)和总 MAC(内存占用量)需求,假设用 bytes 表指代内存占用量,用 ops 指代浮点运算次数,用 bw 表示 AI 芯片的数据搬移带宽,用 $π$ 表示 AI 芯片的 PE 个数,也就是算力。

那么搬移数据的时间是 $t1= bytes / bw$,计算的时间是 $t2= ops / π$。对 AI 芯片的执行来说,搬移数据和计算是两件不同的事情,硬件内部进行指令流水执行时候,可以认为是并行的过程,所以当 $t1 > t2$ 时候,模型搬移时间大于计算时间,AI 模型在这个 AI 芯片上最终一定是内存受限的;当 $t1 < t2$ 时候,模型搬移时间小于计算时间,AI 模型在这个芯片上最终是属于计算受限。

bw、π 和 AI 芯片有关,bytes 和 ops 和 AI 模型有关,当模型是内存受限时候 , $t1 > t2$ 具体的参数代入,并将不等号两边进行位置调换,那么就变成了下面公式的模样,不等号左侧是 AI 芯片计算带宽和内存带宽的比值,称为操作字节比,不等号右侧是 AI 模型的运算次数和内存占用量的比值,称为算术强度(arithmetic intensity)。

$$
t1 > t2 \
\rightarrow bytes / bw > ops / π \
\rightarrowπ/bw > ops/bytes
$$

根据算术强度和操作字节比的概念,我们很容易评估出一个 AI 模型在指定 AI 芯片上的理论性能情况。下面展示一个具体的示例。

以 V100 GPU 执行 GEMM 为例,V100 的 FP16 峰值计算性能是 125TFLOPS,片外存储带宽约为 900GB/s,片上 L2 带宽为 3.1TB/s。

  • 如果输入数据来自片外存储器,操作字节比约为 125/0.9≈138.9
  • 如果输入数据来自片上存储器,操作字节比约为 125/3.1≈40

对于 FP16 数据类型,(M, K ,N) 形状的一个矩阵乘来说,算术强度为:

$$
\frac{2 \times M \times N \times K}{2\times (M \times K + K \times N + M \times N)}=\frac{M \times N \times K}{(M \times K + K \times N + M \times N)}
$$

当矩阵乘 (M, K, N) 的值是 (8192, 128, 8192) 时候,算术强度是 124.1,低于 V100 的操作字节比 138.9,该算子操作为内存受限型。

当矩阵乘 (M, K, N) 的值是 (8192, 8192, 8192) 时候,算术强度是 2730,远高于 V100 的操作字节比 138.9,该算子操作是计算受限型。

Roofline 性能评估

实际上不同模型在特定硬件平台的执行效率情况,可以利用Roofline Model建模进行预估。Roofline Model 建模是指通过简化硬件计算平台架构,根据计算平台的算力和带宽上限这两个参数和算子的算术强度信息,评估出其能达到的最大性能。如下图所示,横坐标是算子的算术强度,纵坐标表示该算子能达到的最高浮点运算性能,则该算子能达到的最大理论性能公式为:

$$
P = min(peak_{performance}, ops/byte * bw)
$$

当一个算子的算术强度值落在红色区域位置时候,该算子表现为内存受限;而落在绿色区域时候,该算子表现为算力受限。所以最好的情况就是 x 轴的算术强度值是在红色和绿色交接的那条绿色直线上的时候,该计算平台的带宽和算力得到了一个很好的平衡。

通过对 AI 芯片进行性能仿真可以帮助我们确认性能瓶颈,并在软件层面进行优化。如下图是根据 Roofline Model 进行计算性能仿真的示意图,下面 Step1-Step7 展示了七种由于软件任务或者硬件设计导致不同性能表现的情况,根据这些表现分析,开发人员通过调整相应的软件策略或者改善硬件设计,来进一步提高计算平台的仿真性能。

  • Step1, Step2:当计算平台的资源没有限制,通过软件最大化配置任务负载或者数据并行策略,来达到最好的执行性能。这时候性能瓶颈在于软件调度策略。

  • Step3, Step4:由于固定的 PE 维度或者 size, 导致有的 PE 在任务周期的不是 100% 被激活。比如有 7 个计算任务,分给 4 个 PE 执行,则需要 2 个 cycle,但是其中有个 PE 的激活率是 50%,这种情况下的计算性能就没有达到峰值性能。

  • Step5:当到计算单元的内存容量有限时候,即使计算所需的数据被很快的送到,也没有足够的地方存放,继而到达一个算力性能瓶颈。

  • Step6, Step7:当计算平台自身提供的带宽有限,即使算力很多,内存空间很多,实际的仿真性能也不能更高了。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

转载自:【AI系统】关键设计指标https://www.cnblogs.com/ZOMI/articles/18555380

标签:AI,模型,芯片,关键,计算,PE,转载,性能
From: https://www.cnblogs.com/wujinwanai/p/18600600

相关文章

  • 转载:【AI系统】核心计算之矩阵乘
    AI模型中往往包含大量的矩阵乘运算,该算子的计算过程表现为较高的内存搬移和计算密度需求,所以矩阵乘的效率是AI芯片设计时性能评估的主要参考依据。本文我们一起来看一下矩阵乘运算在AI芯片的具体过程,了解它的执行性能是如何被优化实现的。从卷积到矩阵乘AI模型中的卷积层......
  • 转载:【AI系统】AI芯片驱动智能革命
    在整个AI系统的构建中,AI算法、AI框架、AI编译器、AI推理引擎等都是软件层面的概念,而AI芯片则是物理存在的实体,AI芯片是所有内容的重要基础。本系列文章将会通过对典型的AI模型结构的设计演进进行分析,来理解AI算法的计算体系如何影响AI芯片的设计指标,进而结合几种......
  • 转载:【AI系统】模型演进与经典架构
    了解AI计算模式对AI芯片设计和优化方向至关重要。本文将会通过模型结构、压缩、轻量化和分布式几个内容,来深入了解AI算法的发展现状,引发关于AI计算模式的思考,重点围绕经典网络模型和模型量化压缩两方面进行展开。经典模型结构设计与演进神经网络的基本概念神经网络是A......
  • Goby AI 2.0 自动化编写 EXP | Mitel MiCollab 企业协作平台 npm-pwg 任意文件读取漏
    漏洞名称:MitelMiCollab企业协作平台npm-pwg任意文件读取漏洞(CVE-2024-41713)EnglishName:MitelMiCollab/npm-pwgFileReadVulnerability(CVE-2024-41713)CVSScore:6.8漏洞描述:MitelMiCollab是加拿大Mitel公司推出的一款企业级协作平台。该漏洞存在于MiCollab......
  • 转载:【AI系统】AI轻量化与并行策略
    了解AI计算模式对AI芯片设计和优化方向至关重要。本文将会接着从轻量化网络模型和大模型分布式并行两个主题来深入了解AI算法的发展现状,引发关于AI计算模式的思考。轻量化网络模型随着神经网络应用的普及,越来越多的模型需要在特定的硬件平台部署,如移动端和嵌入式设备,这......
  • 转载:【AI系统】SIMD & SIMT 与 CUDA 关系
    前面的文章对AI芯片SIMD和SIMT计算本质进行了分析,结合NVIDIACUDA实现对SIMD和SIMT进行了对比,本文将对不同并行的编程方式进行讲解,以英伟达GPU为例,讲解GPU的编程模型。实现并行的编程方式从指令级别的执行方式来看,一共有三种不同的编程模型,串行(SISD)、数据并行(SI......
  • 转载:【AI系统】SIMD & SIMT 与芯片架构
    为了进一步探讨SIMD/SIMT与AI芯片之间的关系,本文将详细介绍SIMD单指令多数据和SIMT单指令多线程的计算本质,以及对NVIDIACUDA底层实现SIMD/SIMT的原理进行讲解。SIMD计算本质SIMD是对多个进行同样操作的处理元素同时进行同等的计算操作,利用了数据级别的并行性,而不......
  • 转载:【AI系统】从 CUDA 对 AI 芯片思考
    从技术的角度重新看英伟达生态,有很多值得借鉴的方面。本文将主要从流水编排、SIMT前端、分支预测和交互方式等方面进行分析,同时对比DSA架构,思考可以从英伟达CUDA中借鉴的要点。英伟达生态的思考点从软件和硬件架构的角度出发,CUDA和SIMT之间存在一定的关系,而目前AI芯片......
  • 转载:【AI系统】大模型的到来
    大模型的到来,让越来越多的系统工程师,能够接触在之前难以想象的集群规模尺度上解决复杂的、最前沿的工程问题,且能产生巨大的经济成本和时间成本收益。不过,让人感慨的是随着GPT使用Transformer结构去规模化大模型后,随着集群规模的扩展,对于AI系统的要求越来越高,可是很多人没办......
  • 转载:【AI系统】昇腾 AI 核心单元
    本文将深入介绍昇腾AI处理器的核心单元——AICore,以及其背后的达芬奇架构。昇腾AI处理器是华为针对AI领域设计的专用处理器,其核心AICore采用了特定域架构(DomainSpecificArchitecture,DSA),专门为深度学习算法中常见的计算模式进行优化。通过本文内容的学习,读者将能够理......