谁的 AI 加速器解决方案最好?
显然,这个问题非常复杂。未来 5-10 年的事情很难预测。此外,如果你想知道整个产业将走向何方,不要问工程师。我们了解技术,但技术上做得好的产品未必就能大规模铺开。
在过去的五年里,很多优秀的想法得以实现,但它们也只是学术论文中 AI 加速器设计和想法的一小部分,剩下的部分还有很多可以渗透到业界中。这些东西非常随机,有可能在未来的某个时间,一项新的研究将提出一个「突破性模型」,在现有的案例或我们尚未发现的新领域中实现 SOTA 准确率。这个模型可能是用于特定加速器的一个杀手级 APP,一旦该模型称为行业标准,它将使特定加速器变得更有吸引力。
此外,细节决定成败。网上的宣传材料突出了每个架构的优点,但它们并不是很能说明问题。只有当愿景变成实际产品时,缺点才会显现出来,而且这些缺点源于许多难以预测的因素。我敢打赌,未来 2~3 年,我们会陆续看到很多崩溃的想法和解决方案,但到 2024~2025 年,事情会缓和下来,研究 AI 和商业 AI 会开始收敛为一些可行的解决方案和最佳实践,约 3~5 个加速计算公司会领先。
一些建议
AI 加速游戏已经开足马力。毫无疑问,目前,英伟达占据了上风,这得益于他们成熟的 CUDA 软件栈,以及在 MLPerf 基准测试中的领先优势(不要忘了,几乎所有这些基准测试都是在 NVIDIA 平台上设计和优化的),同时,它也有能力通过收购 Mellanox 等公司来控制整个生态栈。然而,英伟达留下的创新空间也很大。初创公司的主要赌注是英伟达正处于「创新者的窘境」。从长远来看,在保持原有特性和基础的同时调整现有解决方案和从头构建全新解决方案之间是有区别的。因此,虽然英伟达有几年的良好开端,但一旦其中一些初创公司赶上来,他们就将与英伟达展开一场实实在在的竞争。
以下是送给这个赛道上的玩家和新入局者的一些建议:
注意基于坚实的研究和长期愿景构建良好的架构基础,并尽可能多地考虑目标应用空间的细节。
虽然这看起来过于简单和乐观,但我再怎么强调也不为过。根据我自己观察到的一些情况,即使有大量资金和才华横溢的大型团队,企业和初创公司都难以克服在早期阶段做出的次优架构决策,即使是在多代芯片之后。每个架构都有一些弱点。相对容易改善的弱点来源于对资源的低估(如没有足够的核心,暂存器过小等)。还有一些弱点是缺乏通用性(one-size-fits-all)所导致的,这迫使供应商选择其中一种技术,有时这是受现实世界约束的副产品。例如,NVIDIA A100 依赖于高带宽存储(HBM),与传统 DRAM 相比,它拥有更高的带宽但容量更低。然而,这并不是一个弱点,而是一个有意识的设计决策,因为大多数 AI 应用都需要更多的带宽而不是内存。因此,NVIDIA GPU 在适合数十 GB HBM 空间的工作负载上享受快速内存访问。然而,在训练大模型时,为了有足够的内存空间来包含所有处理过的数据,用户需要在大量 GPU 之间完成数据分发和通信。
设计新架构时,不要低估软件栈和工具链开发的复杂性。
最难改善的弱点可能是在形成架构的基本阶段做出的错误选择。例如,Wave Computing、SambaNova 和 SimpleMachines 正在采用看起来相似的方法(用于可重构加速器的编译器驱动的数据流执行)。其中,Wave Computing 已经申请破产;根据领英上提供的信息,SimpleMachines 的所有领导层都换了;但 SambaNova 似乎做得很好。很难说清楚造成这种差异的主要原因。但一些资料显示,Wave Computing 在设计他们的 DPU 时,其硬件足够简单和抽象,以支持广泛的应用,并认为实现一个性能良好的解决方案是一个软件问题。由于软件周期的周转比生产新芯片快得多,他们决定把大部分重担留给软件。
然而,他们发现,虽然一些编译技术对简单的内核很有效,但很难推广,并且在面对大型程序时遇到了计算难题。这里学到的教训是,在早期阶段,架构必须由来自栈的多个层的人仔细定义。此外,从架构的角度来看,他们的设计非常具有野心:以非常高的速度(6.7GHz)切换电路,将慢速和快速存储空间(DDR 和 HMC)结合到一起等。所有这些底层细节都需要抽象出来,并由一个非常复杂的软件来控制,以便有效地编排数据流。人们有时会掩盖软件的复杂性。然而,当你设计计算量更大的系统时,即使是一些使硬件更简单或更通用的抽象假设,也会导致数月乏味的软件开发。
可以说,Wave Computing 的遭遇好像是当你太超前时会发生的事情。他们的大多数架构基础可能是在 2015 年左右奠定的,当时编译器驱动的人工智能设计还处于初级阶段。由于积累的知识有限,Wave Computing 领导层可能会对软件开发做出一些乐观的假设,因为他们正在解决新的未解决的问题。
利用率才是王道
加速器最大的吸引力来自一个概念:并行性。对并行性的利用是提升性能的头号功臣。剩下的只是细节,但就像我说的——细节很重要。你经常听到 TOPs、TFLOPs、GOP 等,它们指的是加速器理论上一秒钟可以执行多少次算术运算。然而,这一领域的主要挑战是利用率,即每秒实际能做多少次运算,因为它决定了用户真正看到的是什么。回到大学时代,我开着一辆 15 岁的雷诺 Clio。理论上,它的时速可以达到 150 英里,而且不耗油,但前提是你要把它从悬崖上扔下去。虽然最大吞吐量决定了使用芯片上所有算术单元时的计算速度,但这并不是典型情况。通常,芯片会忙于其他事情,例如不同计算单元之间的同步、从片外存储器中获取数据,或者跨单元和芯片进行数据通信。为了提高利用率,我们需要构建一个复杂的软件栈来避免这些开销,该软件栈能够预测和最小化这些硬件事件对所有现实场景、所有不同的神经架构和所有张量形状的影响。这就是为什么许多人工智能「硬件」组织的软件工程师至少和硬件工程师一样多。
AI 加速器领域的「保守主义」
你可能已经注意到,几乎每一个概述的 AI 加速解决方案都是从一个已经有几十年历史的学术思想开始的:脉动阵列起源于 1978;VLIW 架构起源于 1983;数据流编程的概念可以追溯到 1975;早期的内存内处理(processing-in-memory)出现在 20 世纪 70 年代。这种「保守主义」盛行的逻辑是:1)在这样一个竞争激烈和快速发展的环境中,大胆的新架构理念风险太大,人们更喜欢已经在其他环境中落地部署的成熟理念;2)就像人工智能复兴一样,硬件复兴不能只归功于算法和思想,因为这些算法和思想不是近些年才有的。是实现这些想法的能力将创新带到了我们眼前,包括:1)芯片材料科学和制造方法学上的进展,它们使硅芯片的性能提高了几个数量级;2)日积月累的人类知识,它让人们对 CAD 工具、编程语言和编译器有了更好的理解,以掌握极其复杂的软硬件栈。
时代在飞速发展。重新审视这个系列会很有趣,比如说在五年后,看看这些文章中哪一篇经得起时间的考验。
- 详解 AI 加速器(一):2012 年的 AlexNet 到底做对了什么?
- 详解 AI 加速器(二):为什么说现在是 AI 加速器的黄金时代?
- 详解 AI 加速器(三):架构基础离不开 ISA、可重构处理器……
- 详解 AI 加速器(四):GPU、DPU、IPU、TPU…AI加速方案有无限种可能
原文链接:https://medium.com/@adi.fu7/ai-accelerators-part-v-final-thoughts-94eae9dbfafb