为AI而生的IPU芯片,或挑战GPU的霸主位?

在CPU芯片领域 , 延续至今的“摩尔定律”正在随着制程工艺逼近物理极限而有了延缓的趋势 , 甚至失效的可能 。 就在摩尔定律的增长放缓脚步的同时 , 半导体芯片的计算也正在从通用走向专用 , 其中AI计算正是其中增长最快的一种专用计算 。现在 , AI计算正在接棒摩尔定律 , 延续并超越其倍增神话 。 2019年 , OpenAI发布了AI算力的增长情况 , 结果显示AI算力以3.4个月的倍增时间实现了指数增长 , 从2012年起 , 该指标已经增长了30万倍 。在AI算力爆炸式增长的过程中 , 英伟达的GPU功不可没 。 广为人知的一个故事就是2012年 , 来自多伦多大学的Alex和他的团队设计了AlexNet的深度学习算法 , 并用了2个英伟达的GTX580 GPU进行训练后 , 打败了其他所有计算机视觉团队开发的算法 , 成为那一届ImageNet的冠军 。此后 , 在计算机视觉和自然语言处理领域 , GPU的高并行计算能力得到了充分的发挥 , 英伟达的GPU也随着AI第三次浪潮的崛起而迎来井喷发展 。 与此同时 , 更多为机器学习而专门定制的专用芯片开始出现 , 比如专用集成电路(ASIC)的张量处理单元TPU、神经网络单元NPU以及半定制芯片FPGA等等 。2018年底 , 英国一家名为Graphcore的创业公司推出了一种专门用于AI计算的处理器芯片IPU(Intelligence Processing Unit) 。 一经问世 , IPU就受到AI界越来越多的关注 。为AI而生的IPU芯片,或挑战GPU的霸主位?
ARM创始人 , 被称为英国半导体之父的赫曼·豪瑟曾为Graphcore的IPU给出很高评价 , 将其誉为“计算机史上三次革命中 , 继CPU和GPU之后的第三次革命” 。 赫曼在芯片产业的地位自然不容置疑 , 但由于Graphcore是英国芯片产业中为数不多的新生力量 , 难免赫曼有“护犊子”的打广告之嫌 。IPU出道2年时间 , 现已推出了量产第二代型号为GC2的IPU 。 那么 , IPU的表现如何 , 与GPU相比有哪些优势之处 , 这是本文要重点探讨的问题 。GPU所开启的深度学习一个广为人们熟知的例子就是 , 在计算机视觉发展初期的2011年 , 谷歌大脑想要在YouTube的视频中识别人类和猫 , 当时这样一个简单的任务 , 谷歌要动用一家大型数据中心内的 2,000 颗服务器 CPU , 这些CPU的运行会产生大量的热量和能耗 , 关键是代价不菲 , 很少能有研究人员可以用得起这种规模的服务器 。为AI而生的IPU芯片,或挑战GPU的霸主位?
不过在当时 , 研究人员注意到了英伟达的GPU , 斯坦福大学的吴恩达团队开始和英伟达合作 , 将GPU应用于深度学习 。 后来证明 , 只需要12颗英伟达GPU就可以达到相当于2000颗CPU提供的深度学习性能 。 此后越来越多的AI研究人员开始在GPU上加速其深度神经网络 (DNN)的训练 。为AI而生的IPU芯片,或挑战GPU的霸主位?
现在我们都知道 , GPU能够在深度学习的训练中大显身手 , 正是源于GPU的计算架构正好适用于深度学习的计算模式 。 深度学习是一种全新的计算模式 , 其采用的DNN算法包含数十亿个网络神经元和数万亿个连接来进行并行训练 , 并从实例中自己学习规律 。深度学习算法主要依赖的基本运算方法有矩阵相称和卷积浮点运算 , 而GPU多核架构在原本图像渲染中可以大规模处理矩阵乘法运算和浮点运算 , 很好地可以处理并行计算任务 , 使得DNN训练速度大幅提升 。此后 , GPU成为辅助完成深度学习算法的主流计算工具 , 大放异彩 。 但GPU本身并非是专门为AI计算而设计的芯片 , 其中有大量的逻辑计算对于AI算法来说毫无用处 , 所以行业自然也需要专门针对AI算法的专用AI芯片 。近几年 , 全球已经有上百家公司投入到新型AI芯片的研发和设计当中 , 当然最终能够成功流片并推出商用的仍然是几家巨头公司和少数实力雄厚的独角兽公司 。这其中 , 2017年初创成立的Graphcore所研发的AI芯片IPU , 则成为这些AI芯片当中的另类代表 , 因其不同于GPU架构的创新得到了业内的关注 。 而这正是我们要着重介绍的部分 。更适合AI计算的IPU芯片近两年 , AI 芯片出现了各种品类的井喷 , 其中甚至出现一些堪称疯狂的另类产品 。比如一家同样创立四年的AI芯片创业公司Cerebras Systems就发布了史上最大的半导体芯片Wafer Scale Engine(WSE) , 号称“晶圆级发动机” , 拥有1.2万亿个晶体管 , 比英伟达最大的GPU要大出56.7倍 。 这块芯片主要瞄准的是超级计算和和大型云计算中心市场 , 其创新之处在于一体化的芯片设计大幅提高了内部的数据通信数据 , 但其架构仍然类似于GPU的计算架构 。而Graphcore的 IPU与GPU的架构差异非常大 , 代表的是一种新的技术架构 , 可以说是专门为解决CPU和GPU在AI计算中难以解决的问题而设计的 。为AI而生的IPU芯片,或挑战GPU的霸主位?
IPU为AI计算提供了全新的技术架构 , 同时将训练和推理合二为一 , 兼具处理二者工作的能力 。我们以目前已经量产的IPU的GC2处理器来看 , IPU GC2采用台积电的16nm工艺 , 拥有 236亿个晶体管 , 在120瓦的功耗下有125TFlops的混合精度 , 另外有45TB/s内存的带宽、8TB/s片上多对多交换总线 , 2.5 TB/s的片间IPU-Links 。其中 , 片内有1216个IPU-Tiles独立处理器核心 , 每个Tile中有独立的IPU核 , 作为计算以及In-Processor-Memory(处理器内的内存) 。 对整个GC2来说共有7296个线程(每个核心最多可以跑6个线程) , 能够支持7296个程序并行运行 , 处理器内的内存总共可以达到300MB , 其设计思路就是要把所有模型放在片内处理 。首先 , IPU作为一个标准的神经网络处理芯片 , 可以支持多种神经网络模型 , 因其具备数以千计到数百万计的顶点数量 , 远远超过GPU的顶点规模 , 可以进行更高潜力的并行计算工作 。 此外 , IPU的顶点的稀疏特性 , 令其也可以高效处理GPU不擅长的稀疏的卷积计算 。 其次 , IPU 也支持了模型参数的复用 , 这些复用特性可以获取数据中的空间或时间不变性 , 对于训练与推理的性能会有明显帮助 。其次 , 为解决芯片内存的宽带限制 , IPU采用了大规模并行MIMD(多指令流多数据流)众核架构 , 同时 , IPU架构做了大规模分布式的片上SRAM 。 片内300MB的SRAM , 相对于GPU的GDDR、HBM来说 , 可以做到数十倍的性能提升 , 而且与访问外存相比 , SRAM的片内时延基本可以忽略不计 。第三 , IPU采用了高效的多核通信技术BSP(Bulk Synchronous Parallel) 。 IPU是目前世界上第一款采用BSP通信的处理器 , 支持内部1216个核心之间的通信以及跨不同的IPU之间的通信 。 通过硬件支持BSP协议 , 并通过BSP协议把整个计算逻辑分成了计算、同步、交换 , 能极大方便工程师们的开发工作 。


推荐阅读