一文看懂芯片的算力到底有什么用?算力是怎么评估的?

算力简单说就是计算能力,按《中国算力发展指数白皮书》中的定义算力是设备通过处理数据,实现特定结果输出的计算能力。2018年诺贝尔经济学奖获得者William D. Nordhau滤《计算过程》一文中提出:“算力是设备根据内部每秒可处理的信息数据量"。算力实现的核心是CPU、GPU等各类计算芯片,并由计算机、服务器、高性能计多集群和各类智能终端等承载,海量数据处理和各种数字化应用都离不开算力的加工和计算。

以AI为例,CPU、GPU、DSP等都可以运行,但是还是有专用的AI芯片,为什么呢?也跟算力有关。

CPU(central processing unit)是通用处理器,可以处理一切事物,就像一把瑞士军刀,哪方面都能做但都不是专业高效的。

GPU(Graphics Processing Unit)是专门用来处理图形图像相关的处理器,与CPU相比GPU处理的数据类型单一,因为运算与AI相似以及容易组成大的集群,所以进行AI运算时在性能、功耗等很多方面远远优于CPU,经常被拿来处理AI运算。

DSP(digital signal processor),是专门用来处理数字信号的,DSP与GPU情况相似,也会被拿来做AI运算,比如高通的手机SoC。

AI芯片是专门用来处理AI相关运算的芯片,这与CPU、GPU、DSP的“兼职”做AI运算不同,即便是最高效的GPU与AI芯片相比也是有差距的,AI芯片在时延、性能、功耗、能效比等方面全面的超过上面提到的各种处理器。以知名的谷歌的TPU为例,如下图所示,TPU的主要计算资源为:

Matrix Multiply Unit:矩阵乘单元

Accumulators:存储矩阵乘加输出的中间结果

Activation:激活单元

Unified Buffer:统一缓存

​当时谷歌资深硬件工程师Norman Jouppi表示,谷歌的专用机器学习芯片TPU处理速度要比GPU和CPU快15-30倍(和TPU对比的是英特尔Haswell CPU以及Nvidia Tesla K80 GPU),而在能效上,TPU更是提升了30到80倍,这并不意外,因为TPU运行的CNN运算主要就是矩阵乘,专用芯片好处就是这样。其实对于对于AI来说,又分为训练和推理,训练就像AlphaGo一样需要学很多的棋谱(数据),通常采用数据精度为FP32。

FP32(Full Precise Float 32,单精度)占用4个字节,共32bit,

FP16(float,半精度)占用2个字节,共16bit,

INT8,占用1个字节,也就是8bit,精度更低,因此数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。

​不同精度计算消耗的Bill Dally 在ACMMM 2017 上的《Efficient Methods and Hardware for Deep Learning》演讲中曾经列过一个不同精度计算的消耗能量和硅片面积对比,可以看出一个FP32精度的乘法运算消耗是INT8精度的18.5倍。因此同样一块芯片运算INT8的数据与运算FP32的数据在同一时间内运算次数相差很多,也就是说不同精度OPS不同,算力不同。

​这样的精度如果运行在手机等终端上是不行的,所以在在手机、汽车、安防等终端领域,都是执行模型的推理,现有的推理芯片有很多,比如特斯拉FSD、寒武纪NPU、地平线BPU、OPPO的马里亚纳、荣耀使用的AI-ISP等。与训练阶段不同,在推理的时候,精度要求并不高,以知名的对象监测算法YOLO(You Only Look Once)为例,FP32的精度与INT8的精度相差甚小,但是因为模型更小,神经网络模型的推理速度却大幅加快。这在终端上很重要,比如在汽车的自动驾驶上,如果推理计算的数据慢了会造成巨大的影响。

​当然在安防等对精度要求更低的地方,还有很多采用的是INT4精度的,比如爱芯科技的AX630A在INT4精度下的算力达到了28.8TOPS,可应用于智能盒子,运动相机,智能加速卡,工业摄像头等领域,如果是INT8精度就是7.2TOPS(这里要注意的是并不是所有的AI芯片支持不同精度下的算力转换,这需要硬件实现上的支持)

​在终端芯片上,厂商宣称的算力有时候甚至不是AI芯片的算力,因为CPU、GPU、DSP都可以进行AI的运算,所以在宣传算力的时候采用的是CPU算力 + GPU算力 + DSP算力的算法,虽然这些处理单元都在一颗芯片上但是在实际使用上不可能同时进行AI运算。

​因为一些手机芯片的AI处理能力不足,以及处理流程在YUV域较为靠后,所以像OPPO等厂商开始推出马里亚纳这样的AI芯片,18TOPS并前置在手机SOC之前在RAW域进行 AI降噪的处理,可以大幅的提升夜景拍摄能力,保留更多细节。

​荣耀采用的AI-ISP也是一样的道理,其实这类芯片本质上是一个处理AI运算的NPU,从业务上来说更好的叫法是Pre-ISP,并不是真正的ISP芯片。

打开APP阅读更多精彩内容