Snapdragon 和 Qualcomm 品牌产品是 Qualcomm Technologies, Inc.和/或其子公司的产品。
如今的媒体充斥着有关AI和不断成熟的生成式AI 模型的头条新闻,比如: 稳定扩散模型。在Windows操作系统中,一个成功的生成式AI使用案例就是Microsoft 365 Copilot。这个AI助手可以分析电子表格、生成内容、组织会议等等。
虽然这样的智能感觉像是在施展魔法,但它们的能力并非源自魔法,而是建立在过去几年得到快速发展的强大ML模型基础之上的。这些模型背后的重要推手是丰富的模型框架,机器学习开发人员正是利用这些框架开展实验和协作的。
其中一个新兴的机器学习框架是 ONNX Runtime (ONNX RT)。此开源框架使用 ONNX 格式,机器学习开发人员可以交换模型,而ONNX RT可以通过各种语言(如Python、C++、C#等)执行模型 和硬件平台1。
我们的 Qualcomm AI 堆栈现在支持ONNX RT,并允许Windows on Snapdragon应用享受硬件加速AI。如果您还没有听说过,Windows on Snapdragon是下一代Windows平台,基于移动计算领域多年的发展而构建。其主要功能包括异构计算,长达一整天的电池使用寿命以及Qualcomm Hexagon NPU。我们的 Windows on Snapdragon 开发者门户 提供了有关如何构建x86/x64原生应用或将其移植到本机构建的文档 。
下面我们进一步探讨如何将Qualcomm AI 堆栈与ONNX RT结合使用,为您的Windows on Snapdragon应用实现裸机硬件加速AI。
Qualcomm AI 堆栈中的ONNX运行时支持
下图1显示了Qualcomm AI堆栈提供了工具和利用NPU在边缘的运行时:
图 1–Qualcomm AI 堆栈为所有骁龙平台的边缘 AI 提供硬件和软件组件。
堆栈的最高层用于生成式模型的流行AI框架。这些模型可以在包括ONNX RT在内的各种AI运行时上执行。ONNX RT包括一个执行提供程序,在包括Hexagon NPU在内的各种骁龙内核上,使用 Qualcomm AI Engine Direct SDK 裸机推理。图2更加详细显示了Qualcomm AI 堆栈组件视图:
图2–AI 堆栈概览图,包括运行时框架支持和后端库。
应用程序级集成
在应用程序级别,开发人员可以针对ONNX运行时编译应用程序,支持Qualcomm AI Engine Direct SDK。ONNX RT 的执行提供程序根据ONNX模型构造图形,以便在支持的后端库上执行。
开发人员可以利用ONNX运行时API,该API针对所有执行提供程序提供统一的接口。还支持各种编程语言,如Python、C/C++、Java和Node.js。
我们提供两种方法生成上下文二进制文件。一种方法是使用Qualcomm AI Engine Direct工具链。另一种方法是开发人员使用ONNX RT EP生成二进制文件,然后ONNX RT EP使用Qualcomm AI Engine Direct API。 上下文二进制文件将帮助应用程序缩短网络的编译时间。这些是在应用首次运行时创建的,因为后续使用的每一个模型都将从上下文二进制缓存的文件加载。
入门指南
当您准备好开始时,请按照以下步骤为ONNX RT集成到Windows on Snapdragon应用程序做好准备:
1.访问ONNX RT QNN 执行提供程序页面,了解执行提供程序及其配置选项。
2.点击此处查看GitHub上发布的示例应用程序。点击此处下载Qualcomm AI Engine Direct SDK。
备注:
- 此链接需要注册(免费)才能访问SDK。
- 进入页面后,选择左侧的Windows标签,然后展开 Qualcomm AI 堆栈,在其下方,找到Qualcomm AI Engine Direct SDK,然后下载:
3.图3–如何找到Qualcomm AI Engine Direct SDK以便下载。
查看Microsoft 在 GitHub上的推理示例。该示例说明了如何使用C++及硬件加速运行 MobileNetV2 模型。
其他资源
有关更多信息,请查看Qualcomm AI Engine Direct SDK 文档。ONNX 转换部分显示如何转换ONNX模型,我们的支持的操作页面列出了支持的跨框架(包括ONNX)模型操作。
请务必查看 Windows on Snapdragon 开发者门户,了解有关在Windows on Snapdragon上构建应用并将其移植成原生应用的资料和文档。您还可以注册获取我们免费的 Windows on Snapdragon新闻简报。
Snapdragon和 Qualcomm 品牌产品是 Qualcomm Technologies, Inc.和/或其子公司的产品。