Hi,欢迎
86-755-88844016 6*12小时在线电话
AI高性能计算---AI计算特性
2023-08-22

AI计算特性

设计和部署一款专用芯片需要平衡各种指标,不同的场景下关注的指标不一样,其芯片设计的思路也会存在差异,常见的芯片设计指标包括:

  • 功耗:芯片电路在工作时所消耗的能量。

  • 峰值性能:芯片每秒计算操作数的总和。

  • 吞吐量:单位时间芯片能够处理的数据量。

  • 面积:晶体管数量越多,芯片尺寸越大,工艺越精密,芯片尺寸越小。

  • 灵活性:灵活性和可编程能力越高,适应的场景越多。

  • 成本:包括芯片设计费用和单个芯片生成加工费用。

从计算能力上看,芯片中参与计算的内核数量越多对数据传输的带宽要求越高,以GPU为例,其中包含几百到几千个计算Core,当这些Core同时读写数据时对数据带宽的占用是相当高的。其次,从计算粒度上看,只有当峰值计算能力小于等于最大带宽时,才能达到最佳的计算效率,虽然片上存储能提供极高的带宽和读写性能,但其会占用有限的芯片面积,所以需要在性能和带宽上进行平衡。再次,从通用性上看,可编程能力越强,能使用的应用场景越多,但为了兼容更多的应用,则在架构设计上会存在一定的平衡和冗余,这往往会导致其在单一任务中的性能存在一定程度的下降,所以需要在定制化实现极致产品性能和软件可编程扩大场景范围上进行平衡。

访存

深度神经网络包含大量的网络层,每一层的又包含大量的参数以及中间特征数据,数据访问量和计算量都很大。例如,卷积层包含大量多维卷积核,在计算上滑窗式的卷积运算使得卷积核参数需要多次重复参与运算,由于卷积核参数量一般要远大于缓存的容量,所以大多时候参数需要反复从主存中访问。比如,早期AlexNet拥有6000万参数量,最新的基于Transformer架构的ChatGPT则达到了1750亿参数量,如此巨大的参数量不仅需要占用巨大的存储空间,如何进行高效运算对访存带宽、内存管理以及计算都有很高要求。

通常在芯片设计中可以通过增加计算核心的数量来提高系统的并行度,当并行度提高后,数据的读写就会成为瓶颈,即遇到“内存墙”。内存访问可以通过以下几个方面来解决:

  1. 1.通过增加片上缓存大小和寄存器数量,或提高访存总线带宽等来提升访存效率,进而减少数据等待的时间;

  2. 2.让数据尽可能在片上多停留,避免重复访问主存次以减少计算单元的等待时间;

  3. 3.通过数据流的模式让数据不必经过主存就可以在不同计算单元之间进行通信和流动。

由于深度学习前一层计算结果在下一层计算会被接着用上,模型参数在不同时钟周期中也反复使用。第一种方案通过增加片上存储减少了数据被重复写回和加载的开销。第二种方案直接把复用的数据放在片上Buffer实现数据复用,复用方式和粒度更加精细可控。第三种方案则是让前一周期计算的结果流动到其他计算核心上,在下一周期不用发生访存操作的情况下就可以直接参与计算,Google TPU采用的脉动阵列和流行的DataFlow数据流架构,都是采用的这一思路设计的。

功耗

深度学习由于参数量过于庞大,而片上存储空间有限无法全部存储,绝大部分数据被存放在主存中,这必然会造成频繁的存储器访问,大多数深度学习任务中数据访存造成的功耗要高于计算造成的功耗,其中,最靠近计算单元的寄存器功耗最小,而最远的片外DRAM的功耗则其的200倍。所以如何让数据尽可能多地在片上存储中停留和复用可以有效减少数据访存的功耗,但片上存储又受到成本和面积的约束,不可能无限的增大,如何解决大规模数据访存带来的功耗问题是低功耗AI芯片需要重点解决难点。

稀疏性

稀疏性(Sparsity),是指深度学习网络模型具有非常大的参数和特征容量,在计算中包含大量对0的乘法和加法的操作。在计算中0乘上任何数都是0,0加上任何数都是原来的数,对0参与的乘加过程如果可以不使用计算单元直接输出结果0,这样可以节省运算产生的功耗,如果可以不需要到内存读写数据,则可以减少了数据搬移的开销

在深度学习中稀疏化主要包括两种:模型稀疏和短暂稀疏。模型稀疏与模型参数有关,一方面模型参数中本身包含大量0或者非常小的值,另一方面在训练的过程中增加一些正则化和门控函数(gating functions)增加模型参数的稀疏化。短暂稀疏与模型的运算过程有关,它与输入数据和模型参数都有关,比如Dropout和ReLU等算子的输出数据就是高度稀疏的数据。统计表明,AlexNet、VGG、ResNet等经典网络的稀疏性可以达到 90%左右,如果能有效利用网络的稀疏性可以显著提高网络的运算效率。

混合精度

由于神经网络本身具有一定的冗余性,在经过精心的设计和调优后,低精度的神经网络也可以实现整体准确率不变或者只有很小的准确率损失,而使用低精度计算则可以极大地减少计算和存储负担并降低功耗。实验表明,使用16位浮点乘法和32位浮点加法在AlexNet、VGG、ResNet等网络上进行训练的精度损失可以忽略不计,使用8位定点乘法和16位定点加法进行推理,精度损失几乎没有。

低精度计算已经成为AI芯片的一个趋势,尤其在推理芯片中更加明显。低精度计算不仅需要在算法上能够实现低精度训练和模型量化,还需要在指令架构设计和硬件计算单元上能够支持低精度运算,它是一个软硬件结合的整体解决方案。随着AI对低功耗和高性能需求不断提高,神经网络也从32bit浮点运算逐步向16bit、8bit、4bit 甚至二值化网络等多种低精度运算扩展。

通用性

当前深度学习网络层数越来越深、网络层更加丰富、拓扑结构也更加复杂。神经网络深度已经从早前的VGG十几层网络发展到ResNet的几百层,甚至上千层的网络,不仅包含卷积层、深度可分离卷积、全连接层、循环层、上下采样、尺度变换以及激活函数层等大量不同功能的网络层,还包括残差连接、长短记忆网络、Transformer等复杂的多层连接拓扑结构。由于不同网络层的计算和访存特性都存在较大的差异,因而与之匹配的最佳硬件架构也存在较大的不同,例如,针对卷积网络特性设计的硬件在运行长短记忆网络(Long Short-Term Memory, LSTM)时只能发挥其不到20%的性能。

AI专用芯片的性能跟通用性是一个相互平衡的过程,一个芯片在某些特定网络结构上的性能越强、功耗越低,那么它往往就越不灵活、通用性越差。例如,Google TPU可以轻松做到远高于GPU的性能和能效比,但这是以牺牲芯片的可编程性和通用性为代价的。目前在语音、文字、图像、视频等不同应用场景下使用的网络架构还无法做到完全统一,在同一领域下的不用场景和任务上深度学习的网络也存在一定的差异,新的深度学习算法和网络结构还在不断的演变中,可能AI芯片还未投产上市,当前的网络架构已经淘汰,被其他更优的网络架构替代了。

目前AI芯片企业采用的技术方案和策略各不相同,一类最激进的企业,采用算法固化方案,这一做法芯片研发周期最短、单一算法的性能与功耗比可以做到极致,但其限制了芯片的通用性和灵活性,比如第一代Google TPU;一类是升级现有可编程处理器,使其在性能与芯片通用性上达到较好的平衡,成本也相对可控,目前这一类中GPU依然是主流。还有一类是设计全新的芯片架构,这一做法能够在性能与通用性上达到更好的平衡,但芯片研发投入成本大且需要较长的研发周期,比如寒武纪NPU和Google TPU。

当前AI芯片的发展还处于初级阶段,市场上主要以定制化的专用AI芯片和具备一定的灵活性的弱编程AI芯片为主,随着算法和芯片制造工艺的不断发展和完善,支持潜在的新网络架构特性且具备足够弹性和拓展性的AI高性能芯片会逐渐到来。参考GPU的发展历史,早期的GPU是专门用来做图形加速计算的,由于生产工艺和制程的限制,必须采用定制化的专用硬件设计方案才能满足图形渲染对性能和功耗的要求。随着图像加速行业的发展和算法的快速迭代更新,以及芯片生成工艺的提升,逐渐出现了具有弱编程特性的GPGPU,再到后来的CUDA使得GPU具备了更强的可编程能力并极大的拓展其应用领域,使GPU不仅能加速视频渲染、还能做科学分析、天文计算和AI加速等更通用的并行计算任务。

郑重声明:文中仅代表作者观点,不代表本公司观点,本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或者删除,感谢您的关注!

热门资讯
电磁式电压互感器的工作原理和分类
电磁式电压互感器通常用于电力系统中,用于测量高电压输电线路上的电压。它们还可以用于监测电力系统中的电压波形和幅值,以便及时发现电力系统中的故障和问题。在本文中,我们将详细介绍电磁式电压互感器的工作原理和分类。
热继电器和热过载继电器区别
热继电器和热过载继电器都是常见的电气保护设备,但它们的工作原理和保护对象有所不同。在本篇文章中,我们将详细介绍热继电器和热过载继电器的区别。
钽电容器的种类和封装
钽电容器是一种电子元器件,使用钽金属作为电极材料。它们通常分为有极性和无极性两种类型,并且有多种不同的封装形式。在本文中,我们将详细讨论钽电容器的种类和封装。
热继电器和熔断器的区别
热继电器和熔断器都是常见的电器元件,它们在电路中都起到了保护作用。虽然它们都可以在电路中断开电路,但它们之间存在一些区别。在本篇文章中,我们将详细介绍热继电器和熔断器的区别。
FT2232开发板
采用FT2232芯片设计的开发板,将IO口完全引出,可在此基础上设计接口扩展板
AI高性能计算---存算一体
存算一体或存内计算是将存储与计算完全融合,直接利用存储器进行数据处理或计算。在传统的冯诺依曼架构下,数据的存储和计算是分开的,由于存储和计算的性能存在加大的差距,处理器访问存储数据的速率远远小于处理器计算速率,数据在内存与主存之间搬运的过程其能耗也远远高于处理器的计算所消耗的能量。
AI高性能计算---寒武纪NPU
寒武纪是国内最早一批研究AI芯片公司,其AI芯片NPU (Neural network Processing Unit)的设计源于其早期一系列的AI芯片架构研究,主要包括DianNao、DaDianNao、PuDianNao、ShiDianNao、Cambricon-X等一系列研究成果。
AI高性能计算---Google TPU
自Google在2016年推出第一代自研人工智能芯片Tensor Processing Unit, TPU,经过数年发展已升级到了第4代 TPU v4 (截止到2022年底)。TPU架构设计也是通过高效地并行运算大量乘法和累加操作来实现深度学习卷积层,全连接层等网络层的高效计算。
AI高性能计算---AI芯片设计
AI芯片最简单直接设计思路就是将神经元直接映射到硬件芯片上,如图所示,全硬件实现方案(Full-Hardware Implementation)将每个神经元映射为一个逻辑计算单元,每个突触映射为一个数据存储单元,这种架构设计可以实现一个高性能且低功耗的AI芯片,比如Intel ETANN芯片。在全硬件实现方案中上一层输出数据和权重相乘,相乘的结果再相加,然后再经过一个激活函数输出到下一层计算。这种架构设计将计算和存储紧密的耦合在一起,使得芯片在进行高速计算的同时由能避免大规模的数据访存,在提高整体计算性能的同时也降低了功耗。
AI高性能计算---AI专用芯片
当前人工智能(AI)计算主要是指以深度学习为代表的神经网络算法为主,传统的CPU、GPU都可以用来做AI算法的运算,但其并不是针对深度学习特性设计和优化的,所以在速度和性能上都无法完全适配AI算法特性,通常来说,AI芯片指的是针对人工智能算法特性做特殊设计的ASIC(专用芯片)。
用户信息:
电话号码
中国大陆+86
  • 中国大陆+86
  • 中国台湾+886
  • 中国香港+852
公司名称
邮箱
产品型号
产品数量
备注留言