华为:我是全球算力最强,阿里:我是全球最高性能,究竟哪家强?

2019-10-08 23:17发布

2019年8月23日,华为在深圳正式发布商用AI芯片Ascend 910(昇腾910),它是当前全球算力最强、训练速度最快的AI芯片。八位整数精度(INT8)下的性能达到512TOPS,16位浮点数(FP16)下的性能达到256 TFLOPS。

2019年9月25日,阿里巴巴在杭州云栖大会上正式发布含光800 AI芯片,这是全球最高性能的AI推理芯片。在业界标准的ResNet-50测试中,推理性能达到78563 IPS,能效比500 IPS/W。

都说自己是地表最强AI芯片,那么到底谁是最强呢?什么是AI芯片呢?与普通芯片的差异是什么?

AI芯片定义

目前关于AI 芯片并没有一个十分严格的定义,只要是面向人工智能应用的芯片都可以称为AI 芯片。百度百科的定位为:

AI芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中的大量计算任务的模块(其他非计算任务仍由CPU负责)。当前,AI芯片主要分为GPU、FPGA 、ASIC。

AI芯片分类

根据2018年清华大学发布的《2018人工智能芯片技术白皮书》,可以将AI 芯片主要分为三类:

1. 经过软硬件优化可以高效支持AI 应用的通用芯片,例如GPU,FPGA;

2. 专门为特定的 AI 产品或者服务而设计的芯片,称之为ASIC(Application-Specific Integrated Circuit),主要是侧重加速机器学习(尤其是神经网络、深度学习),这也是目前AI 芯片中最多的形式;

3. 受生物脑启发设计的神经形态计算芯片,这类芯片不采用经典的冯·诺依曼架构,而是基于神经形态架构设计,比如清华大学8月1日在《自然》杂志上发表的“天机”类脑芯片。

很多AI应用厂商经常宣称自己做出了全球第一款XXX的SoC芯片,那么SoC芯片又是什么AI芯片呢?

从上图不难发现,SoC就是ASIC芯片,只不过进行了细分。

如果将MPU、MCU、DSP、储存系统(或片外存储控制接口)、以及其他外围器件集成在单一芯片上,那么这类ASIC芯片就称为片上系统SoC,也称为系统级芯片。

ASSP和ASIC之间的唯一区别是:ASSP是更通用的设备,适用于多个系统,如独立的USB接口芯片可以归类为ASSP,而ASIC通常是客户定制的,或是面向特定用途的产品。

AI芯片使用场景:训练和推理、云端和边缘端

AI系统通常分为训练(Training)和推断(Inference)两个步骤。训练是指对已有数据进行学习,获得某些能力;推断是指根据训练出来的模型(能力)去推断新数据。 对神经网络而言,训练过程就是通过不断更新网络参数,使训练误差最小化的过程 ;推断过程则是直接将数据输入神经网络并评估结果的正向计算过程。

根据其部署场景,AI芯片可以运用于云端和边缘端。云端AI处理主要强调精度、处理能力、内存容量和带宽,同时追求低延时和低功耗;边缘设备中的AI处理则主要关注功耗、响应时间、体积、成本和隐私安全等问题。

训练

首先,由于计算精度直接影响推断的准确度,所以支持训练的硬件必须支持具有较长字长的浮点数或定点数。

其次,由于训练中需要进行多次正向和反向的计算过程, 计算量非常大,所以就需要支持训练的芯片不仅要具有强大的单芯片计算能力,还要具备很好的扩展性, 可以通过多芯片系统提供更强大的计算能力。

再次,由于训练过程中需要处理大量的数据,所以对内存数量、访问内存的带宽和内存管理方法的要求都非常高,解决“内存墙”瓶颈。

最后,由于训练需要更新(写入)和使用(读取)神经网络中的参数(权重),所以需要复杂的数据同步技术,同时也要求存储器能够支持更快速的读写,特别是对于在线训练。

推断

对推断来说,运算和存储的需求都远远低于训练。由于推断的应用场景多种多样,所以需求和约束也呈现出多样化的特点。对于多数应用来说,速度、能效、安全和硬件成本等是最重要的考虑因素,而模型的准确度和数据精度则可以依具体情况适当降低。

对一些应用来说,降低精度的设计不仅加速了机器学习算法的推断,甚至可能更符合神经形态计算的特征,同时可以节省大量内存和降低能量消耗。

常见的AI芯片评价指标

对于AI芯片,目前没有统一的权威评价指标(benchmark)。

业界通常用TOPS来衡量处理器运算能力,百度百科对TOPS的解释为:

TOPS是Tera Operations Per Second的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。

对于浮点数,其评价指标为FLOPS,百度百科对FLOPS的解释为:

FLOPS(即“每秒浮点运算次数”,“每秒峰值速度”),是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算计算机的执行效能。

在某些情况下,还使用 TOPS/W 来作为评价处理器运算能力的一个性能指标,TOPS/W 用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。

另外一种就是阿里的这种评价标准,从某种程度上来说,这是阿里玩的一个文字把戏,用IPS和IPS/W来衡量其性能,没有从正面回应其芯片处理性能,而是从侧面来表明其AI芯片的强劲。

不论是哪种评价指标,通常要么指定数据集或者指定典型网络:

1.指定数据集:ImageNet、COCO等。

2.指定典型网络:Resnet-50、YoloV2、MobileNet、Faster-RCNN等。

华为昇腾910是在云端使用的训练芯片,含光800是在云端使用的推理芯片,所以他们各自宣称自己是地表最强芯片,都不为过,因为它们在各自的领域都是最强的。

总结

虽然目前大部分机器学习方法都可以比较清晰地划分为训练和推断的过程,但还有一些领域,比如增强学习(Reinforcement Learning)和在线学习(On-line Learning)则处于持续学习和改进模型的进程中。因此,在未来的AI应用当中,训练和推断会交织在一起,相互融合。

目前最普遍的方式是在云端训练神经网络,然后在云端(由边缘设备采集数据)或者边缘设备进行推断。未来云和边缘设备以及连接他们的网络可能会构成一个巨大的AI 处理网络,它们之间协作训练和推断,提供最佳的用户体验。

文章来源: https://www.toutiao.com/group/6744732906796614158/