深度学习硬件实现

各种硬件

CPU

CPU(Central Processing Unit)中央处理器,是一块超大规模的集成电路,主要逻辑架构包括控制单元Control,运算单元ALU和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
简单说,就是计算单元、控制单元和存储单元。
架构图如下所示:
在这里插入图片描述
CPU遵循的是冯诺依曼架构,其核心是存储程序、顺序执行。CPU的架构中需要大量的空间去放置存储单元(Cache)和控制单元(Control),相比之下计算单元(ALU)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。

GPU

CPU无法做到大量矩阵数据并行计算的能力,但GPU可以。
GPU(Graphics Processing Unit),即图形处理器,是一种由大量运算单元组成的大规模并行计算架构,专为同时处理多重任务而设计。
为什么GPU可以做到并行计算的能力?GPU中也包含基本的计算单元、控制单元和存储单元,但GPU的架构与CPU有所不同,如下图所示:
在这里插入图片描述
与CPU相比,CPU芯片空间的不到20%是ALU,而GPU芯片空间的80%以上是ALU。即GPU拥有更多的ALU用于数据并行处理。
以Darknet构建的神经网络模型AlexNet、VGG-16及Restnet152在GPU Titan X, CPU Intel i7-4790K (4 GHz) 进行ImageNet分类任务预测的结果:

ModelTop-1OpsGPUCPURate
AlexNet57.02.27 Bn3.1 ms0.29 s93.55
Darknet Reference61.10.96 Bn2.9 ms0.14 s48.27
VGG-1670.530.94 Bn9.4 ms4.36 s463.82
Extraction72.58.52 Bn4.8 ms0.97 s202.08
Darknet1972.97.29 Bn6.2 ms0.87 s140.32
Darknet19 448x44876.422.33 Bn11.0 ms2.96 s269.09
Resnet 1870.74.69 Bn4.6 ms0.57 s123.91
Resnet 3472.49.52 Bn7.1 ms1.11 s156.34
Resnet 5075.89.74 Bn11.4 ms1.13 s99.12
Resnet 10177.119.70 Bn20.0 ms2.23 s111.5
Resnet 15277.629.39 Bn28.6 ms3.31 s115.73
ResNeXt 5077.810.11 Bn24.2 ms1.20 s45.59
ResNeXt 101 (32x4d)77.718.92 Bn58.7 ms2.24 s38.16
ResNeXt 152 (32x4d)77.628.20 Bn73.8 ms3.31 s44.85
Densenet 20177.010.85 Bn32.6 ms1.38 s42.33
Darknet5377.218.57 Bn13.7 ms2.11 s154.01
Darknet53 448x44878.556.87 Bn26.3 ms7.21 s274.14

总结GPU具有如下特点:

  1. 多线程,提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算
  2. 拥有更高的访存速度;
  3. 更高的浮点运算能力。
    因此,GPU比CPU更适合深度学习中的大量训练数据、大量矩阵、卷积运算。
    GPU虽然在并行计算能力上尽显优势,但并不能单独工作,需要CPU的协同处理,对于神经网络模型的构建和数据流的传递还是在CPU上进行。同时存在功耗高,体积大的问题。
    性能越高的GPU体积越大,功耗越高,价格也昂贵,对于一些小型设备、移动设备来说将无法使用。

NPU

NPU (Neural Networks Process Units)神经网络处理单元。NPU工作原理是在电路层模拟人类神经元和突触,并且用深度学习指令集直接处理大规模的神经元和突触,一条指令完成一组神经元的处理。相比于CPU和GPU,NPU通过突触权重实现存储和计算一体化,从而提高运行效率。
NPU是模仿生物神经网络而构建的,CPU、GPU处理器需要用数千条指令完成的神经元处理,NPU只要一条或几条就能完成,因此在深度学习的处理效率方面优势明显。
实验结果显示,同等功耗下NPU 的性能是GPU 的118 倍。
与GPU一样,NPU同样需要CPU的协同处理才能完成特定的任务。下面,我们可以看一下GPU和NPU是如何与CPU协同工作的。

GPU的加速
GPU当前只是单纯的并行矩阵的乘法和加法运算,对于神经网络模型的构建和数据流的传递还是在CPU上进行。
CPU加载权重数据,按照代码构建神经网络模型,将每层的矩阵运算通过CUDA或OpenCL等类库接口传送到GPU上实现并行计算,输出结果;CPU接着调度下层神经元组矩阵数据计算,直至神经网络输出层计算完成,得到最终结果。

在这里插入图片描述

CPU 与GPU的交互流程:

  1. 获取GPU信息,配置GPU id
  2. 加载神经元参数到GPU
  3. GPU加速神经网络计算
  4. 接收GPU计算结果
    NPU的加速
    NPU与GPU加速不同,主要体现为每层神经元计算结果不用输出到主内存,而是按照神经网络的连接传递到下层神经元继续计算,因此其在运算性能和功耗上都有很大的提升。

CPU将编译好的神经网络模型文件和权重文件交由专用芯片加载,完成硬件编程。
在这里插入图片描述

CPU在整个运行过程中,主要是实现数据的加载和业务流程的控制,其交互流程为:

  1. 打开NPU专用芯片设备
  2. 传入模型文件,得到模型task
  3. 获取task的输入输出信息
  4. 拷贝输入数据到模型内存中
  5. 运行模型,得到输出数据

FPGA

FPGA(Field-Programmable Gate Array)称为现场可编程门阵列,用户可以根据自身的需求进行重复编程。与CPU、GPU 相比,具有性能高、功耗低、可硬件编程的特点。

FPGA基本原理是在芯片内集成大量的数字电路基本门电路以及存储器,而用户可以通过烧入FPGA 配置文件来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,可重复编写定义,重复配置。

FPGA的内部结构如下图所示:
在这里插入图片描述

FPGA的编程逻辑块(Programable Logic Blocks)中包含很多功能单元,由LUT(Look-up Table)、触发器组成。FPGA是直接通过这些门电路来实现用户的算法,没有通过指令系统的翻译,执行效率更高。

我们可以对比一下

CPU/GPU/NPU/FPGA各自的特点
在这里插入图片描述

各芯片架构特点总结

/ CPU /

70%晶体管用来构建Cache,还有一部分控制单元,计算单元少,适合逻辑控制运算。

/ GPU /

晶体管大部分构建计算单元,运算复杂度低,适合大规模并行计算。主要应用于大数据、后台服务器、图像处理。

/ NPU /

在电路层模拟神经元,通过突触权重实现存储和计算一体化,一条指令完成一组神经元的处理,提高运行效率。主要应用于通信领域、大数据、图像处理。

/ FPGA /

可编程逻辑,计算效率高,更接近底层IO,通过冗余晶体管和连线实现逻辑可编辑。本质上是无指令、无需共享内存,计算效率比CPU、GPU高。主要应用于智能手机、便携式移动设备、汽车。

CPU作为最通用的部分,协同其他处理器完成着不同的任务。GPU适合深度学习中后台服务器大量数据训练、矩阵卷积运算。NPU、FPGA在性能、面积、功耗等方面有较大优势,能更好的加速神经网络计算。而FPGA的特点在于开发使用硬件描述语言,开发门槛相对GPU、NPU高。

可以说,每种处理器都有它的优势和不足,在不同的应用场景中,需要根据需求权衡利弊,选择合适的芯片。

AI大数据及人工智能服务平台:www.aideeptech.com

在这里插入图片描述

国产化分析

华为

目前已有厂商针对安防监控后端推出了GPU的替代方案。2018年10月份,华为自研的云端AI芯片昇腾系列,基于达芬奇架构的华为昇腾910。在年底,华为又推出了基于ARM的服务器芯片“Hi1620”,采用台积电7nm工艺制造,在ARMv8架构的基础上,华为自主设计了代号“TaiShan”(泰山)的核心,支持48核心、64核心+2.6/3.0GHz配置。百度发布AI“昆仑”芯片,它是目前行业内运行速度最快的智能芯片。

Atlas 300

在这里插入图片描述

在这里插入图片描述

采用4个高性能低功耗的海思Ascend 310 AI处理器,最高可提供16TOPS(INT8)/PCS Ascend 310的计算能力。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

寒武纪

成立于2016年的寒武纪,成立之初就发布了世界首款商用深度学习专用处理器寒武纪1A处理器(Cambricon-1A),并成为全球第一个成功流片并拥有成熟产品的AI芯片公司,拥有终端AI处理器IP和云端高性能AI芯片两条产品线。其中中科曙光与寒武纪合作,在最新的人工智能服务器Phaneron中搭载寒武纪的深度学习ASIC芯片,在深度学习应用中比传统的CPU/GPU在性能、功耗和芯片面积方面均有较大优势,有望在安防监控领域落地应用。

比特大陆

2017年,比特大陆推出其AI品牌Sophon(算丰),并发布其第一代云端AI芯片张量计算处理器BM1680,适用于 CNN / RNN / DNN 的训练和推理。BM1680 单芯片能够提供 2TFlops 单精度加速计算能力,芯片由 64 NPU 构成。2018 年比特大陆发布第 2 代算丰 AI 芯片 BM1682,计算力有大幅提升。同时,今年10月份比特大陆基于云端芯片BM1682还发布了算丰智能服务器SA3。

AI 芯片的竞争现状 - 链闻 ChainNews
https://www.chainnews.com/articles/166969049344.htm

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值