随着人工智能技术的飞速发展,深度学习已经成为推动这一进步的核心力量。为了满足日益增长的计算需求,Intel Nervana推出了专为深度学习设计的Nervana引擎。这款应用特定集成电路(ASIC)代表了深度学习硬件领域的一次重大突破。
深度神经网络的训练涉及到大量的计算密集型操作,包括张量的矩阵乘法和卷积。图形处理单元(GPU)由于其在视频游戏设计中的起源,对于这些操作比CPU更为合适,因为视频游戏中屏幕上对象的移动是由向量和线性代数控制的。然而,GPU的架构元素,如数值精度、控制逻辑、缓存等,最初是为了视频游戏而非深度学习而优化的,这意味着还有很大的改进空间。
Nervana引擎的设计团队抛弃了传统的GPU范式,从头开始设计。他们分析了最受欢迎的深度神经网络,并确定了最适合其关键操作的架构。他们甚至优化了核心数值格式,并创造了FlexPoint™,这是一种在16位内存中最大化存储精度的技术,实现了高内存带宽和算法性能的完美结合。此外,他们还增加了足够的灵活性,以确保架构能够适应未来的需求。
Nervana引擎采用了一种名为高带宽内存(HBM)的新型内存技术,这种技术既具有高容量又具有高速。HBM通过芯片堆叠实现高容量,一个HBM芯片可以存储高达8GB的数据,因为芯片本身是由八个单独的1GB内存芯片堆叠而成。Nervana引擎包括四个HBM堆叠,提供了32GB的封装存储。HBM的高速(带宽)来自于一种名为2.5D制造的新工艺,这种工艺允许内存芯片底部的引脚间距更小,从而容纳更多的数据通道。
Nervana引擎的设计包括与深度学习相关的内存和计算元素,除此之外别无他物。例如,Nervana引擎没有管理缓存层次结构;内存管理由软件执行。这是深度学习中的一个有效策略,因为操作和内存访问在执行前是完全指定的。这允许通过消除缓存控制器和一致性逻辑,更有效地使用芯片面积。此外,片上内存的软件管理确保了高优先级数据(例如模型权重)不会被逐出。
这种针对深度学习优化的设计使得Nervana引擎实现了前所未有的计算密度,其计算能力比当今最先进的GPU高出一个数量级。Nervana通过使用28nm的通用制造工艺构建ASIC,为未来通过缩小到16nm工艺进一步改进留出了空间。
如前所述,数据移动通常是深度学习的瓶颈。鉴于这种依赖性,确保计算永远不会因为等待数据而“饿死”是一个挑战。Nervana引擎拥有独立的计算和数据管理管道,确保新数据始终可供计算使用,计算元素始终在进行计算。这种管道隔离,加上大量的本地内存,意味着Nervana引擎大部分时间都能接近其理论最大吞吐量运行。
Nervana引擎从一开始就被设计为支持真正的模型并行性。Nervana引擎包括六个双向高带宽链路,使得芯片可以在机箱内或机箱之间无缝互连。这使用户可以通过简单地分配更多的计算任务,或者将模型扩展到前所未有的规模,而不会降低速度,从而实现当前模型的线性加速。例如,八个ASIC可以以环形配置互连,实现近8倍的线性性能加速。
这种加速能力是Nervana独有的。竞争系统使用超额订阅的、低带宽的PCIe总线进行所有通信,包括点对点和主机到卡。这种超额订阅的PCIe链路限制了通过增加更多硬件来提高性能的能力。此外,当前系统需要昂贵且带宽有限的InfiniBand或以太网链路进行机箱到机箱的通信,这大大降低了它们扩展到单个主板或机箱之外的能力。