对于AI芯片初创企业而言,最核心的任务自然是带来更高的基准性能峰值。成绩单漂亮了,自然能够吸引来更多从事深度学习训练或者推理工作的硬件用户。 但大家应该都听说过,就这么个(看似)简单的决定,往往需要经历数周乃至数月的开发工作,而最终项目仍然无法高效运行,更遑论支持那些定制化开发者环境以及新设备了。而在对每一种芯片架构进行深入探讨时,我们往往发现自己并不真正了解其中的软件堆栈部分。相反,我们只能无能狂怒,或者云山雾罩地扯东扯西。 这一鸿沟并非源自工具、时间或者资源的缺失。相反,问题来自AI芯片的设计方式(以及由谁确定这种方式)、开发人员如何尝试新架构,以及市场/更多开发人员如何探索这些新架构的实际应用方法。这些环节中的深层次缺陷,引发了我们今天的核心议题——芯片企业的产出跟开发人员的诉求为什么总是对接不上?
更公平地讲,这个锅也不能完全由硬件设计一方来背。Codeplay的Andrew Richards整理出一份长长的清单,对AI加速器难以落地这个问题做出了总结。
下面,让我们先从其中最重要,而且在大部分知名AI加速器企业当中广泛存在的因素谈起。
几乎每一家AI芯片初创企业,其创始人都拥有DSP以及嵌入式设备领域的从业经验。从工作负载/市场的角度来看(特别是在推理场景下),这类专业知识确实非常重要;但对于AI芯片本身,其扮演的是加速器角色(更像是一种分担性质的引擎),因此要求设计方采取全新的计算思维方式。在DSP当中,几乎所有信号处理都在设备之上进行,整个设计与开发工作也以这一点为前提。更直白地讲,以往CPU要做的只是根据情况开启或者闭合开关,并不涉及其他复杂的管理工作;但AI芯片则没这么单纯。
Richards表示,“从职业背景来看,AI硬件供应商更倾向于雇用那些擅长负载分担技术的人才。”他指出,HPC社区是人才的主要来源,从业者能够在这里通过多年时间学习大规模超级计算机如何在复杂的并行应用程序当中,根据一系列特定的软件环境约束条件使用GPU资源。简而言之,HPC社区更了解开发人员审视负载分担的角度,也明白这一切对于开发人员意味着什么。
将正确的工作负载转移到正确设备上是一项艰巨的任务,而且往往需要一年甚至更长的时间才能摸索并调整完成。游戏领域的开发者同样如此,他们也正是第一批将早期游戏中的高强度负载交由GPU解决的先行者。
这又带来了第二个问题。在开发人员完成了实验并真正对生产级AI架构进行测试时,一年时间已经过去了。芯片初创企业需要建立强大的商业模式才能支撑起这样漫长的业务周期。另外,即使不考虑生产可用性难题,单单是实验可用性就足够让人头痛。要想构建一套新的架构,开发人员至少需要提供devkit与演示硬件。很明显,只拥有嵌入式开发背景的内部设计师们,很难满足AI加速器初创企业提出的设备易测试性要求。
Richards表示,GPU之所以起步速度飞快,靠的就是英伟达一直不遗余力地宣传并推广自己的芯片,引导开发人员以此为基础编写代码。随着时间的推移,英伟达终于为GPU加速工作负载这一应用场景建立起丰富的生态系统,使得开发人员能够更轻松会完成代码移植。然而,英伟达能成功不代表别从也能成功。对英伟达来说,每位开发人员买上一、两块芯片,已经足以支撑起这部分业务。但加速器价格太过昂贵,初创企业显然没办法选择这样的商业模式。这就成了先有鸡还是先有蛋的难题,迈出突破性的一步简直难如登天。
“身为AI软件开发人员,你的工作内容就是不断尝试。在尝试过程中,大家或多或少会购买几块开发芯片。但现在的AI芯片初创企业走不通这条道路,因为一、两块芯片对他们来说数量太少,甚至不足以支撑起完整的分销链条。”
如果开发人员拿不到自己的devkit与测试设备,就没办法提交能够实际运行的应用程序,所以即使是最开明的架构专家也不可能无脑支持这样的项目预案。另外,因为没时间进行测试,整个开发周期可能要占去一年甚至更长的时间。
以为这就完了?不,问题还不止于此。
这一切意味着,对开发人员来说,使用GPU/CPU以外的任何其他加速硬件都是种极为困难的冒险。事实上,就连数据中心也面临着类似的问题——少数例外可能只有边缘计算与自主设备。
Richards解释道,“这个领域一直在快速发展,开发人员需要有能力自主编写软件并运行现有框架。因此,开发人员通常会优先选择TensorFlow或者PyTorch,并自上而下进行修改,借此尝试新的解决方案。所以从开发者的角度出发,既然能够以开箱即用的方式在英伟达GPU或者英特尔CPU上直接运行PyTorch或者TensorFlow,我们还有什么理由尝试其他AI芯片厂商的产品?”
“在大多数情况下,AI硬件公司的软件人员会假定API函数运行在CPU之上,而后将其异步转移到加速器当中。然而,普通硬件供应商的假设完全不同,他们默认软件API函数会运行在自己的处理器中。很明显,两种思路根本对不上。”他还补充称,这些深层次的根本分歧,正是他在与AI芯片供应商的合作期间,与AI软件开发人员进行沟通后得出的结论。
“AI芯片开发人员必须承认的一点,就是虽然他们将自己的产品视为处理器,但同时也需要确保这些芯片能够与主机CPU系统正确匹配。要想真正吸引到用户的关注,靠的不只是单一芯片的基准性能数据,甚至不是用户当前到底面对怎样的应用场景;最重要的,其实是将自己的处理器视为系统中的组成部分。”
考虑到这一切,Richards拿出了下面这张统计图表,其中展示了目前各类AI软件整合场景的最低要求。这份简单明了的清单,值得每一位仍然在以硬件为中心考量AI加速器的朋友们认真揣摩。
Richards指出,对于身处AI加速器领域的从业者,图中的每一个条目都代表着一个棘手的难题。除了漫长的开发周期之外,AI厂商还必须为开发者用户提供可用芯片,并等待一年才能确认是否成功。“AI处理器厂商必须意识到,他们拿出的首个版本只是devkit,下一个版本才有可能真正投入生产。很明显,这是一种非常困难,甚至对他们来说根本没有可行性的商业模式。”
Richards还分享了第二张图表,告诉我们AI芯片市场一直在总体规模与多样性方面持续发展,但同时又始终保持着一定的核心规则。如果AI芯片初创企业能够在商业模式当中引入这些规则,那么结果可能会大不一样。
Richards表示,很多开发者会立足以上三大细分领域购买演示样机。但购买后的实际使用方式则多种多样,这也最终决定了一款AI加速器能否成功。需要强调的是,AI开发人员需要的是自行编写软件并将其与原有工具/架构相结合的能力。此外,随着大型数据中心一路向着高性能与高可编程性的方向推进,这种结合将变得更加困难。毕竟这些财力雄厚的金主爸爸虽然愿意花钱,但同时也要求新硬件能够与他们的定制化代码或者长期使用的原有代码顺畅对接。
“大部分AI软件开发人员来自HPC或者游戏等行业,因此对整个系统抱有固定的理解方式。例如延迟敏感型任务应该运行在CPU上,计算敏感型任务应该由加速器处理等等。因此全局观才是最重要的前提。换言之,缺少全局观、无法从整体系统角度审视问题的厂商,将不可能帮助用户解决实际问题,更不用说在市场上取得成功了。”
但遗憾的是,从目前的实际情况来看,大多数AI芯片初创企业都将重点放在对单一芯片的基准性能测试身上。很明显,他们忘记了每一款AI设备最终的归宿,永远是成为数据中心或者其他整体系统内的组成部分。只有真正从代码开发以及生产的角度进行讨论,我们才有望提升对话质量、从根本上解决问题。
原文链接:
https://www.nextplatform.com/2019/10/29/deep-divides-between-ai-chip-startups-developers/
领取专属 10元无门槛券
私享最新 技术干货