高通为开源Apache TVM社区提供了Hexagon DSP改进代码,以扩展人工智能。
人工智能通过大幅提升用户体验,正在彻底改变行业、产品以及核心功能。然而,要得到真正的普及,人工智能必须能够在电池容量和热量受限的终端设备上运行。这是高通深耕多年、希望攻克的难题。事实上,Qualcomm Snapdragon 865中使用的第五代高通人工智能引擎就是十多年人工智能研究与我们在高能效计算方面的核心能力相结合后产生的结晶。
图1:第五代人工智能引擎显著提高每瓦特AI性能
统筹兼顾,提高电源效率和性能
高通人工智能引擎包含若干硬件和软件,用于加速人工智能的运行。在硬件方面,我们有用一个异构计算架构,其中包括Hexagon DSP、Qualcomm Adreno GPU和Qualcomm Kryo CPU,每一种处理器都能够在设备端快速、高效地运行人工智能应用程序,将出色的硬件发挥到极致,推动了人工智能的普及。
为使程序员能够访问硬件,我们还需要各种编译器、编程模型和软件工具,允许软件开发者利用我们最先进的人工智能硬件,在智能手机和其他边缘设备上打造高效、高性能的人工智能用户体验。为此,我们正在投资TVM深度学习编译器,预计不久将要面世。在推动开源社区发展方面,高通创新中心(QuIC)已经将人工模型效率工具包开源,该工具包为人工智能开发者提供了一个简单的库插件,支持先进的量化和压缩技术。
我们在硬件、软件和算法上统一规划取得了,最终结果令人鼓舞。2020年2月,人工智能基准测试最佳旗舰手机就搭载了骁龙处理器(图2)。我们在基准测试领域领先的性能也延续到真实世界的应用程序,这才是真正重要的,也令我们深感自豪。使用搭载骁龙865的智能手机运行以前智能手机力不从心的人工智能应用,比如Snapchat图像风格迁移和有道实时翻译,运行速度和电源效率均得到显著的提升。
图2:骁龙旗舰手机在鲁大师人工智能基准测试中遥遥领先
在编译方面,我们在TVM方面调配了大量的资源,以帮助开发者、ISV和OEM利用骁龙的硬件加速功能。本文将探讨我们为TVM提供的Hexagon DSP改进代码、我们与开源社区的合作以及相关的使用方法。
我们的TVM深度学习编译器对Hexagon DSP的贡献
高通于2004年着手开发新型DSP处理器架构与高性能实现。该处理器从一开始就兼具CPU与DSP功能,满足移动平台多媒体与调制解调器功能的深度嵌入式处理需求。经过多年发展,Hexagon DSP ISA有了重大的进步,可以有效处理各种用例不断变化的要求,如图像增强、计算机视觉、增强现实、视频处理和传感器处理。最近几代Hexagon DSP增强功能的重点是有效加速人工智能推理。比如,Hexagon 698 DSP包括Hexagon Vector eXtensions(HVX),提供宽幅向量处理,可以在低功率下加速乘积累加运算。
我们贡献的TVM开源代码为整个社区释放了Hexagon DSP的能效。我们的贡献包括Hexagon DSP运行时和代码生成器。我们将继续与开源社区合作,以拓展Hexagon DSP TVM编译器的功能。
开发者、ISV和OEM将从这一编译器贡献代码中获益匪浅。它可以自动解锁人工智能硬件加速,大大简化软件开发流程,提高骁龙设备运行流畅度。这些优化将大大提高人工智能应用的每瓦性能。不论是更长的电池寿命、更高的每秒推断,还是更低的延迟,都是最终用户乐见的结果。由于数亿台设备都配有Hexagon DSP,因此,这些优化带来的影响深远。未来,我们将继续加大开源工作,为社区作出更多贡献。
入门指南:如何在TVM编译时纳入Hexagon DSP优化
按照以下说明,就可以在模拟器或目标设备上运行简单的TVM程序。相关操作所需的全部代码均存放在TVM开源代码库中。要开始使用,您需要:
Hexagon SDK 3.5.0
LLVM编译器,支持:
Hexagon和x86(如使用Hexagon模拟器),或者
Hexagon和x86 和AArch64(如使用骁龙开发板或设备)
准备工作需要构建以下组件:
Hexagon TVM运行时(相关说明参见GitHub TVM存储库)
x86或Android TVM运行时(启用Hexagon支持)
模拟器驱动程序(sim_dev)(如使用Hexagon模拟器)
修改若干环境变量设置环境
在Hexagon DSP上运行TVM程序只需要上述步骤即可。下面是一个在Hexagon DSP模拟器执行的矩阵乘法程序示例:
未来展望
这只是开始,我们很期待看到机器学习和应用开发者以及TVM用户社区使用Hexagon DSP TVM编译器实现的各种精彩创意,希望很快能和社区联络,了解其他人做出的贡献,另外,也让更多的人使用我们的代码!现在就来下载TVM编译器吧!
Qualcomm 骁龙、Qualcomm Hexagon、Qualcomm Adreno、Qualcomm Spectra、Qualcomm AI引擎和Qualcomm Kryo是Qualcomm Technologies, Inc.和/或其子公司的产品。
