如果你问AI边缘芯片公司最难的是什么,他们大概率会说落地的应用场景太多、太复杂。
如果你问开发者使用AI芯片最难的是什么,他们可能会说没有统一的开发平台。
如果你问消费者使用AI的最大感受是什么,他们或许会表达一些对AI智能程度的不满。
AI已经在智能手机中普及,但AI的体验还不够完善,AI的功能也还不够强大。想要实现体验优秀的AI功能和产品,一定需要从底层的硬件到上层的软件和系统的深度融合。
所有AI芯片公司都在大谈自家产品的优势,但即便对于有能力和经验的AI开发者,想要将一个开发应用到不同的产品中,总是有许多迁移的工作,这也在很大程度上阻碍了AI的普及和进一步创新。
芯片公司们都想解决这个问题,高通今天给出的最新的解决方案高通AI软件栈(Qualcomm AI Stack),包括硬件、软件和工具,让OEM厂商或者开发者的一次开发,就可以应用到智能手机、物联网、汽车、XR、云和移动PC等智能网联边缘产品。
这是足以让开发者兴奋的“一次开发,随处运行。”
但想要实现这个目标,面临着诸多挑战。高通技术公司产品管理副总裁 Ziad Asghar指出,“AI在不同场景下,功耗需求、模型类型、模型部署方式等都有所不同,不同业务对于准确性、功耗以及时延等方面的平衡要求也各不相同。比如,XR应用所需的手势追踪、眼球追踪和3D重建AI模型,与在汽车领域所需的激光雷达AI模型大有不同,他们对于精准度的要求也有很大区别。”
高通技术公司技术副总裁Jeff Gehlhaar提到,“如何让我们所有不同的IP都能获得同样的访问权限,让每个IP都能够以统一的方式选择相对应的解决方案,这是一个主要挑战。”
高通最终推出的是AI软件栈产品组合,从底层的硬件联合上层的软件和工具优化,实现仅通过统一AI软件栈,可跨硬件平台运行。
这是一项十分挑战的工作,想要一次开发跨平台运行,首先就需要支持不同的操作系统,包括Android、Windows、Linux以及面向网联汽车的QNX等。到了系统软件层面,要能完整支持系统接口、加速器驱动、仿真支持等。在开发者库与服务层面,要能够支持数学库、编译器和虚拟平台等。还要支持分析器和调试器,帮助开发者知晓开发过程中AI模型的使用情况,以及在硬件端应该采用怎样的权重进行分析。此外,还要支持编程语言和核心库。
“基于高通AI引擎Direct,上述这些高通AI软件都可以实现。” Ziad Asghar说,“高通AI引擎Direct可视为一个较低层级的库,可以在最靠近模型或硬件的位置进行软件编辑,充分释放硬件性能、确保最高峰值表现。高通AI引擎Direct之上运行着AI runtimes,可帮助OEM厂商和客户更高效地完成更多AI用例。AI runtimes还支持被广泛使用的高通神经网络处理SDK、ONNX runtimes以及TF Lite和TF Lite Micro、Direct ML。最上面一层是AI框架,包括TensorFlow、PyTorch和ONNX。”
高通AI软件栈还支持一系列工具套件,包括高通AI模型增效工具包(AIMET)、AI开发图形用户界面(GUI)、用于增强量化与优化的模型分析器以及神经网络架构搜索(NAS)。
高通AI模型增效工具包(AIMET)提供模型量化和模型压缩技术,能够进行量化感知训练(Quantization Aware Training)和无数据训练,将浮点运算模型转化为整数运算模型,比如,将32位浮点模型转换为8位整数模型,模型能效提升可达4倍。
另外,高通AI软件栈还支持包括Prometheus、Kubernetes和Docker在内的基础设施。
高通AI软件栈可以支持诸多的SDK,比如面向汽车ADAS解决方案的Snapdragon Ride SDK,面向物联网的高通智能多媒体SDK,以及Snapdragon Spaces XR开发者平台,这也为高通建立统一SDK奠定了基础。
Ziad Asghar对雷峰网(公众号:雷峰网)表示,“要实现任何面向单一终端开发的AI特性都可在其他终端上轻松部署,编译器确实很关键,但它只是众多组成部分之一,此外还包括模型的准备和优化、调度器、硬件调试、以及如何确保软件能够充分利用硬件资源等等,这些因素都非常重要,我们需要确保这些组成部分能够共同协作实现高效运行。”
也正因为如此,刚发布的高通AI软件栈,要真正实现其愿景还有很长的路需要走,高通不仅面对着软件复杂性大幅提升的挑战,还需要进行大量细致的优化,与客户紧密合作,才可能最终实现其愿景,这需要时间,更需要持续的投入。
但如果高通AI软件栈能够成功,不仅是其统一技术路线图战略的成功,更是其在AI市场获得巨大成功的关键。