硬件加速的AI给Windows应用程序带来了ONNX RT的使用

硬件加速的AI为Windows应用程序带来了ONNX RT的强大能力

赞助内容

作者:Qualcomm开发者网络的应用工程师Rajan Mistry Sr.

如今,媒体头条上关于人工智能和生成式AI模型(如稳定扩散)日益复杂的报道不胜枚举。Windows上的一个使用生成式人工智能的典型例子就是Microsoft 365 Copilot。这个AI助手可以分析你的电子表格、生成内容并组织会议。

虽然这样的智能让人感受到了魔法般的力量,但它们的能力并非来源于魔法。它建立在强大的机器学习模型基础之上,这些模型正在快速演进。这些模型的关键支持者是丰富的模型框架,使得机器学习开发人员可以进行实验和协作。

其中一个新兴的机器学习框架之一是ONNX Runtime(ONNX RT)。这个开源框架的底层ONNX格式使机器学习开发人员能够交换模型,而ONNX RT可以在各种语言(如Python、C++、C#等)和硬件平台上执行这些模型。

我们的Qualcomm AI Stack现在支持ONNX RT,并允许在Windows上的Snapdragon应用中进行硬件加速的人工智能。也许你还没有听说过,Snapdragon是下一代Windows平台,它是在移动计算领域多年演进的基础上构建的。它的主要特点包括异构计算、长时间续航和Qualcomm Hexagon NPU。

让我们仔细看看如何在Windows上的Snapdragon应用中使用Qualcomm AI Stack和ONNX RT实现裸金属、硬件加速的人工智能。

Qualcomm AI Stack中的ONNX Runtime支持

Qualcomm AI Stack如下图所示,在边缘端提供利用NPU的工具和运行时:

图1 – Qualcomm AI Stack为所有Snapdragon平台上的边缘人工智能提供了硬件和软件组件。

在堆栈的最高层级上,存在用于生成模型的常用AI框架。这些模型可以在包括ONNX RT在内的各种AI运行时上执行。ONNX RT包括使用Qualcomm AI Engine Direct SDK的Execution Provider,可以在Snapdragon的各种核心上进行基于裸金属的推断,包括其Hexagon NPU。图2更详细地展示了Qualcomm AI Stack的组成部分:

图2 – Qualcomm AI Stack的概述,包括其运行时框架支持和后端库。

应用级集成

在应用级别上,开发人员可以为使用了支持Qualcomm AI Engine Direct SDK的ONNX runtime编译他们的应用。ONNX RT的Execution Provider为支持的后端库从ONNX模型构建图形并执行。

开发人员可以使用ONNX runtime的API,在所有Execution Provider上提供一致的接口。它还被设计为支持Python、C/C++/C#、Java和Node.js等多种编程语言。

我们提供两种生成上下文二进制文件的选项。一种方式是使用Qualcomm AI Engine Direct工具链。另一种方式是使用ONNX RT EP生成二进制文件,ONNX RT EP会使用Qualcomm AI Engine Direct的API。上下文二进制文件可以帮助应用程序缩减网络的编译时间。当应用程序首次运行时,会创建这些文件。在随后的运行中,模型从缓存的上下文二进制文件加载。

开始使用

当你准备开始时,访问Qualcomm AI Engine Direct SDK页面,你可以下载SDK并获取文档。

Snapdragon和Qualcomm品牌产品是Qualcomm Technologies, Inc.及/或其子公司的产品。