其他

深度学习架构之争

2017-12-14 狭路相逢 AI前线

作者 | Linley Gwennap
译者 | 张健欣
编辑 | Emily
AI前线导读:芯片厂商在 CPU中实现新的应用。如果这些应用也适用于 GPU(Graphics Process Unit,图形处理单元)和 DSP(Digital Signal Process,数字信号处理器),下一步就会将这些应用移植过去。这些年,许多公司都在开发 ASIC(Application Specific Integrated Circuit,专用集成电路)和 ASSP(Application Specific Standard Products,专用标准产品)。深度学习是不是也在以同样的顺序发展?

更多干货内容请关注微信公众号“AI前线”,(ID:ai-front)

在深度神经网络(deep neural network, DNN)的简短历史中,使用者已经尝试了许多硬件架构来提升它们的性能。通用 CPU是最易于编程的,但是每瓦性能上的效率最低。GPU针对并行浮点运算进行了优化,性能比 CPU好许多倍。当 GPU厂商发现一个新的巨大的用户基数,他们就会开始优化他们的设计,来进一步提升 DNN的吞吐量。例如,Nvidia新的 Volta架构增加了专门的矩阵乘法单元,用来加速常见的 DNN操作。

尽管这些优化过的 GPU,仍然只是负责图形相关逻辑。此外,最新的趋势是,使用整数数学来进行 DNN推理,尽管大多数训练继续使用浮点运算。虽然 Nvidia也加强了 Volta的整数性能,但是仍然推荐使用浮点运算来进行推理。尽管如此,芯片设计师也很清楚,整数单位比浮点单位更小且更高效。当使用 8位(或者更小)的整数代替 16位或者 32位的浮点值时,这些会优势更明显。

与 GPU不同,DSP是针对整数数学设计的,特别适合卷积网络中的卷积函数。矢量 DSP使用宽 SIMD(Single Instruction Multiple Data,单指令多数据流)单元来进一步加速推理计算。例如,Cadence的 C5 DSP核心包含 4个 SIMD单元,每个 SIMD单元位宽是 2048位;因此,这个核心每个周期可以完成 1024个 8位整数乘法累计(multiply-accumulate,MAC)操作。一个 16nm设计的芯片,每秒可以完成超过 1兆 MAC操作。MediaTek已经获得授权,在它最新的智能手机处理器中,使用 Cadence DSP作为 DNN加速器。

新架构的机会

重新设计的 DNN架构是最高效的,消除了针对其它应用的功能,优化了 DNN需要的特定计算功能。这些架构可以应用到专用的 ASIC或者出售给系统制造商的芯片(这些芯片称为专用标准产品,ASSP)。最杰出的 DNN ASIC是谷歌的 TPU,它针对推理任务进行了优化。它主要由一个包含 65,536个 MAC单元的脉动阵列,和用来保存 DNN权重与累积值的 28MB内存组成。这种 TPU使用一个简单的四级流水线,只执行少数指令。

一些创业团队也正在开发 DNN定制架构。Intel去年收购了其中一家,Nervana,计划在今年年底做出它的第一个 ASSP样品;但是,这家公司还没有披露其框架的任何细节。Wave Computing开发了一个 DNN数据流处理器。其它资金雄厚的创业公司包括 Cerebaras、Graphcore和 Groq。我们期待这些公司,至少其中一些能够在 2018年交付实际产品。

另外一种实现优化架构的方式,是在 FPGA(现场可编程门阵列)中实现架构。微软已经广泛部署 FPGA作为 Catapult和 Brainwave项目的一部分;百度、Facebook和其它云服务提供商(cloud server provider,CSP),也使用 FPGA来加速 DNN。这个方案避免了 ASIC和 ASSP的数百万美元的流片费用,提供了一个更快的周转时间;FPGA可以随着设计的变化,在短时间内完成编程和再编程。FPGA以更低的时钟速度操作,并且比 ASIC占用更少的逻辑内存。图表 1总结了我们对于这些方案的相对效率的看法。

根据硬件设计,深度学习加速器的每瓦特性能可以改变至少 2个数量级。特别是使用定制架构的时候。(来源:The Linley Group)

一些公司通过使用更加定制化的加速器来强化现有的设计,以此来对冲风险。Nvidia针对自动驾驶汽车设计的 Xavier芯片,增加了一个整数数学块来加速 DNN推理。Ceva和 Synopsys设计了相似的单元来加强他们的 SIMD DSP核心。这些块只包含大量整数 MAC单元来提高数学吞吐量。由于它们没有替换底层的 GPU或 DSP架构,所以它们的效率不如从头设计的架构。

定制设计的挑战之一是,深度学习算法正在迅速发展。TensorFlow两年前还不存在,现在却已经是最流行的 DNN开发工具。而且数据科学家在继续评估新的 DNN结构、卷积函数和数据格式。一种针对当前 DNN的定制设计,在两年后可能就不是最优的,甚至是不起作用的。为了解决这个难题,大多数 ASIC和 ASSP设计是可编程和灵活的,但是 FPGA提供了更灵活的终极方案。例如,微软定义了一个专门的 9位浮点格式作为 Brainwave的设计。

通过替代品前进

纵观历史,半导体行业一般在通用 CPU上实现新应用。如果这些应用适合现有的专门用途的芯片,例如 GPU和 DSP,下一步就会将这些应用移植到这些芯片上。随着时间的推移,如果新的应用成为一个庞大的市场,这些公司就会开始开发 ASIC和 ASSP,这些设备可能会保留一些可编程能力。只有当算法变得高度成熟(例如,MPEG)时,它才会在固定函数逻辑芯片中实现。

深度学习正以这个顺序发展。GPU和 DSP显然是适用的,ASIC的需求也足够高,因此 ASIC开始出现。一些创业团队和其它公司正在开发 ASSP,并在 2018年或者更早的时候发布。FPGA通常更适合低容量的或者有商业前景的应用;深度学习已经显示出足够的前景来取代 ASIC流片。

无论如何,哪种 DNN架构会胜出还远不清楚。尽管深度学习市场增长迅速,它仍然比 PC、智能手机和自动驾驶汽车的市场小。因此,针对 ASIC和 ASSP的商业案例还比较少。相比之下,像 Intel和 Nvidia之类的公司,可以使用它们来自其它市场的高性能处理器,针对深度学习进行强化,通过额外的软件支持和频繁的更新来提供有竞争力的产品。在未来的几年里,我们可能会看到许多不同的硬件架构并存于深度学习市场。

关于作者

Linley Gwennap是 Linley Group的首席分析师,以及 Microprocessor Report的主编。他刚刚完成了一个关于深度学习处理器的新报道。

查看英文原文:

https://www.eetimes.com/author.asp?doc_id=1332538&ion_id=36


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存