Files
openmlsys-zh/chapter_accelerator/accelerator_introduction.md
Corleone 039787dc8d sync overleaf for acceleerator (#420)
Co-authored-by: Corleone <liuchao195@huawei.com>
Co-authored-by: Jiarong Han <jiaronghan@outlook.com>
2023-02-17 10:16:44 +08:00

2.9 KiB
Raw Permalink Blame History

概述

硬件加速器设计的意义

未来人工智能发展的三大核心要素是数据、算法和算力。目前人工智能系统算力大都构建在CPU和GPU之上且主体多是GPU。随着神经网络的层增多模型体量增大算法趋于复杂CPU和GPU很难再满足新型网络对于算力的需求。例如2015年谷歌的AlphaGo用了1202个CPU和176个GPU打败了人类职业选手每盘棋需要消耗上千美元的电费而与之对应的是人类选手的功耗仅为20瓦。

虽然GPU在面向向量、矩阵以及张量的计算上引入许多新颖的优化设计但由于GPU需要支持的计算类型复杂芯片规模大、能耗高人们开始将更多的精力转移到深度学习硬件加速器的设计上来。和传统CPU和GPU芯片相比深度学习硬件加速器有更高的性能和更低的能耗。未来随着人们真正进入智能时代智能应用的普及会越来越广泛到那时每台服务器、每台智能手机和每个智能摄像头都需要使用深度学习加速器。

硬件加速器设计的思路

🏷️accelerator-design-title

近些年来,计算机体系结构的研究热点之一是深度学习硬件加速器的设计。在体系结构的研究中,能效和通用性是两个重要的衡量指标。其中能效关注单位能耗下基本计算的次数,通用性主要指芯片能够覆盖的任务种类。以两类特殊的芯片为例:一种是较为通用的通用处理器(如CPU)该类芯片理论上可以完成各种计算任务但是其能效较低大约只有0.1TOPS/W。另一种是专用集成电路(Application Specific Integrated Circuit, ASIC)其能效更高但是支持的任务相对而言就比较单一。对于通用的处理器而言为了提升能效在芯片设计上引入了许多加速技术例如超标量技术、单指令多数据Single Instruction Multiple DataSIMD技术以及单指令多线程Single Instruction Multiple ThreadsSIMT技术等。

对于不同的加速器设计方向业界也有不同的硬件实现。针对架构的通用性NVIDIA持续在GPU芯片上发力先后推出了Volta、 Turing、 Ampere等架构并推出用于加速矩阵计算的张量计算核心Tensor Core以满足深度学习海量算力的需求。

对于偏定制化的硬件架构,面向深度学习计算任务,业界提出了特定领域架构(Domain Specific Architecture DSA)。Google公司推出了TPU芯片专门用于加速深度学习计算任务其使用脉动阵列(Systolic Array)来优化矩阵乘法和卷积运算可以充分地利用数据局部性降低对内存的访问次数。华为也推出了自研昇腾AI处理器旨在为用户提供更高能效的算力和易用的开发、部署体验其中的CUBE运算单元就用于加速矩阵乘法的计算。