导读 8月23日,华为宣布其自研的AI 芯片——Ascend 910(昇腾910)正式上市商用,与之一同发布的还有的新一代AI开源计算框架 MindSpore ,全面对标谷歌TensorFlow和FaceBook的PyTorch,并计划2020年第一季度全面开源开放。

据华为副董事长、轮值董事长徐直军介绍,昇腾910与MindSpore配合,相比现有主流训练单卡配合TensorFlow的组合显示出接近2倍的性能提升。在去年十月,公布技术参数时,徐直军就曾表示昇腾910是业界算力最高的AI处理器,相同功耗情况下,它的算力是业界最强AI芯片的2倍,最强CPU的50倍。可以看出,Ascend910的实力强劲,傲视业界AI芯片的同时竟然高出同期CPU计算能力数十倍。那么常规印象中被认为是计算机的“大脑”的CPU,性能最强的核心单元,现在只能用来衬托AI芯片的性能了吗?

其实不然,就目前情况,通用大规模集成电路的类型主要有CPU、DSP、GPU、FPGA几种:

CPU

一般来说CPU运算能力弱,虽然主频最高,但是单颗核心数量也有8核、16核,按单核3.5G主频计算,16核即就是56G的主频;再考虑指令周期,每秒最多执行30G次乘法。

DSP

DSP虽然主频不如CPU, 但是胜在乘法器多,动辄附带16个乘法器,而且是浮点的。再者,不论4核、8核,它还具有特定的算法硬件加速,所以虽然主频只有1-2G,但是运算能力还是比CPU强。当然现在出现了带专用乘法器的CPU,DSP也集成了ARM核,这两者的界限开始变得模糊。DSP所有计算均使用浮点算法,目前还没有位或整数运算指令。

GPU

GPU专为图像处理设计,主频一般在500MHz左右,但是核芯数量多,比如英伟达Titan, 有380多个流处理单元,主频和单元数相乘起来:500*400就是200G的计算量,这个量级,远大与于前面二者。

FPGA

FPGA的运算能力的,拿高端的来说:3000多个固定乘法器,用片上资源靠数字逻辑还能再搭建3000个,主频最快能到接近300MHz, 则总计算性能可达(3000+3000)*300M = 1800G这个量级。

因此不难理解,这几个类型的芯片适合的应用场合不同:

CPU虽然运算不强,但是擅长进行管理和调度,比如读取数据、管理文件、处理人机交互等。

DSP相较CPU而言管理变弱了,运算加强了。这两者都是靠高主频来解决运算量的问题,适合有大量递归操作以及不便拆分的算法。

GPU管理方面更弱,运算更强,由于是多进程并发,更适合整块数据进行流处理的算法。

FPGA能进行管理也能运算,但是开发周期很长,复杂算法开发难度大。适合流处理算法,不管是整块数据进还是一个一个进。还有就实时性来说,FPGA是最高的。前三种处理器为了避免将运算能力浪费在数据搬运上,一般要求累计一定量数据后才开始计算,因此产生群延时,而FPGA所有操作都并行,因此群延时可以很小。

了解了以上类型的芯片之后,就不难分析AI芯片如何得以超越CPU计算性能如此多倍。所谓AI芯片,一般是指为了进行人工智能相关的运算而进行有针对的优化过的专用芯片(ASIC芯片)。

例如,人工智能领域发展火热的自动驾驶,需要识别道路、行人、交通灯等状况, 如果使用CPU去进行计算,那么极有可能出交通事故。前面已经提到过,CPU擅长控制,并且其设计决定了在工作时为了减小数据传输对运算力的浪费,需要累积到一定数据量才进行计算,而这根本无法满足自动驾驶情景所需要的强实时性。而如果使用GPU计算,在承担高功耗的同时只能利用起其中部分的计算资源,不论是在云端还是终端,都不是一个具有良好能耗比的选择。而且,GPU不但能耗比低,其价格也一直高居不下,且供应不稳定;所以通用型芯片在进行人工智能相关计算时的功耗、效率、价格等因素一起促成了人工智能专用芯片的开发和商用。

目前,AI的应用并未在自动驾驶领域过多展开,主要还是集中在图像识别、语音识别、自然语言处理等领域。这些领域内的算法本质上来说都是矩阵或向量的加、乘运算。目前最先进的服务器CPU之一,IBM POWER8(目前该系列已有POWER9,性能提升1.5倍),拥有4G主频,128位位宽。假设处理8个16位的数据,一个周期最多执行8个乘/加计算。理论上一次最多执行16个操作,那么此CPU理论每秒巅峰计算次数是:16*64Gops=64Gops。

再看谷歌的人工智能专用张量计算芯片TPU1.0(目前已到TPU3.0),主频只有700MHz,然而拥有64,000个乘/加单元,单词最多执行64,000*2=128K次计算,因此其理论巅峰计算次数位:128K*700M=89,600Gops,约90Tops,非常高数量级的计算量。目前我们所看到的端侧人工智能芯片算力多在10T内,是因为端侧人脸识别等人工智能应用要求算力的同时也需要保持低功耗,所以不会出现如此夸张的数值。但通过计算对比,足以看出在人工智能计算方面专用芯片和通用芯片的效率差距。

总结而言,CPU与GPU并不是AI专用芯片,为了实现其他功能,内部有大量其他逻辑,而这些逻辑对于目前的AI算法来说是无用武之地的,所以,导致CPU与GPU不能成为最优的性价比之选;而FPGA更是因为价格高,开发周期长,而多被用于设计开发的前期验证步骤。因此,随着人工智能需求发展,神经网络层数加深,更加有效率的专用芯片对于布局人工智能的科技企业将会愈发重要。华为此次发布的昇腾910芯片属于Ascend-max系列,其技术规格在HC2018大会上已经公布:半精度(FP16)算力达256T-Flops,整数精度(INT8)算力达到512T-ops,功耗310W。现在,昇腾910已经被用于实际的AI训练任务,比如ResNet50神经网络等。同时,华为表示将继续投入,推出更多AI处理器,面向全场景持续提供更充裕、更经济、更适配的AI算力。虽然人工智能目前还处于初级发展阶段,但随着其发展领域横轴的拓宽,纵向应用的加深,相信在不久的将来,我们会看到更多高效、专注的人工智能专用芯片的出现。

原文来自:http://www.d1net.com/ai/industry/560359.html

本文地址:https://www.linuxprobe.com/huawei-ascend-910.html编辑:吴向平,审核员:张文祥

Linux命令大全:https://www.linuxcool.com/