围绕神经网络架构、AI 模型和基础模型的创新洪流是不可避免的。从 CNN 到 DNN,再到 RNN,最后(到目前为止)到 transformers,从架构到模型。从视觉、音频/语音、雷达和激光雷达到大型语言模型,从基础模型到 ChatGPT、Llama 和 Gemini。唯一可以确定的是,无论你今天认为是最先进的,明年都必须升级。
支持这些模型所需的运算符/指令集复杂性也呈爆炸式增长。一个简单的卷积模型可能曾经支持不到 10 个运算符,而现在 ONNX 标准支持 186 个运算符,并且 NPU 允许对此核心集进行扩展。如今的模型结合了矩阵/张量、向量和标量运算以及数学运算(激活、softmax 等)。支持此范围需要软件编译器将底层硬件连接到标准(简化)网络模型。此外,还需要一个指令集模拟器来验证和检查目标平台的性能。
NPU 提供商现在必须在其平台上普遍提供经过预先验证/优化的模型(CV、音频等)的 ModelZoo,以减轻面临这种复杂性的买家对采用/所有权成本的担忧。
加速硬件复杂性
现在,训练平台在架构上受到很大限制,今天主要的问题在于你想使用谁的 GPU 或 TPU。但推理平台却并非如此。最初,这些平台被视为训练平台的缩小版,主要是将浮点数转换为固定的、更严格量化的字长。这种观点现在已经发生了巨大变化。当今大多数硬件创新都发生在推理领域,尤其是对于竞争性能和功耗面临巨大压力的边缘应用。
在优化经过训练的网络以进行边缘部署时,修剪步骤会将对准确性影响不大的参数归零。请记住,当今某些模型拥有数十亿个参数,理论上将这些参数归零可以显著提高性能(并降低功耗),因为可以跳过围绕此类情况的计算。
如果硬件每次运行一个计算,这种“稀疏性”增强是有效的,但现代硬件利用脉动阵列加速器中的大规模并行性来提高速度。然而,这种加速器无法跳过分散在阵列中的计算。有软件和硬件解决方法可以重新获得修剪带来的好处,但这些方法仍在发展中,不太可能很快解决。
卷积网络对我们许多人来说都是现代人工智能的开端,它仍然是特征提取的一个非常重要的组成部分,例如在许多人工智能模型中,甚至在视觉转换器 (ViT) 中也是如此。这些网络也可以在脉动阵列上运行,但效率不如 LLM 中常见的常规矩阵乘法。寻找进一步加速卷积的方法是一个非常热门的研究课题。
除了这些巨大的加速挑战之外,还有诸如激活和softmax之类的矢量计算,它们要么需要标准脉动阵列不支持的数学计算,要么可以在这样的阵列上运行但效率低下,因为大多数阵列在单行或单列操作中处于闲置状态。
解决这组挑战的常用方法是将张量引擎(脉动阵列)、矢量引擎(DSP)和标量引擎(CPU)组合在一起,可能在多个集群中。脉动阵列引擎处理它最擅长的任何操作,将矢量操作交给 DSP,其余一切(包括自定义/数学操作)都传递给 CPU。
有道理,但此解决方案至少需要 3 个计算引擎。产品成本在芯片面积和可能的专利费方面都会上升,功耗也会上升,而且编程和支持模型在管理、调试和更新这些引擎中的软件方面变得更加复杂。您可以理解为什么软件开发人员更希望看到所有这些复杂性都由一个通用的 NPU 引擎和一个编程模型来处理。
供应链/生态系统日益复杂
供应链中的中间制造商必须构建或至少调整模型以针对终端系统应用进行优化,考虑到相机的不同镜头选项。他们没有时间或余地来适应各种不同的平台。他们的业务现实将不可避免地限制他们准备支持哪些 NPU。
稍远一点,但并不遥远,软件生态系统渴望围绕高容量边缘市场发展。一个例子是支持音频个性化的耳塞和助听器的软件/模型。这些增值软件公司也将倾向于他们准备支持的少数平台。
优胜劣汰的局面可能会比早期 CPU 平台激增时更快出现。我们仍然需要一些选项之间的竞争,但无论如何,当前边缘 NPU 的寒武纪大爆发必须很快结束。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。