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

简介: 本文介绍了AI芯片的关键设计指标及其与AI计算模式的关系,涵盖计算单位(如OPS、MACs、FLOPs)、关键性能指标(精度、吞吐量、时延、能耗、成本、易用性)及优化策略,通过算术强度和Roofline模型评估AI模型在芯片上的执行性能,旨在帮助理解AI芯片设计的核心考量与性能优化方法。

前面我们已经对 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世界的无限奥秘~
转载自:https://developer.aliyun.com/article/1641832

相关文章
|
1天前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践
|
15天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
7天前
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。
|
1月前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
3天前
|
人工智能 容器
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
本文介绍了如何利用千问开发一款情侣刮刮乐小游戏,通过三步简单指令实现从单个功能到整体框架,再到多端优化的过程,旨在为生活增添乐趣,促进情感交流。在线体验地址已提供,鼓励读者动手尝试,探索编程与AI结合的无限可能。
|
3天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
3435 15
|
7天前
|
Cloud Native Apache 流计算
PPT合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
3297 10
PPT合集|Flink Forward Asia 2024 上海站
|
20天前
|
人工智能 自然语言处理 前端开发
100个降噪蓝牙耳机免费领,用通义灵码从 0 开始打造一个完整APP
打开手机,录制下你完成的代码效果,发布到你的社交媒体,前 100 个@玺哥超Carry、@通义灵码的粉丝,可以免费获得一个降噪蓝牙耳机。
5902 16
|
1月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
2天前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
354 34