人工智能
本章节将介绍Qualcomm AI Runtime SDK的使用流程,Qualcomm AI Runtime SDK可以帮助AI开发者便捷地使用高通的高性能机器学习推理硬件。它支持TensorFlow、PyTorch、ONNX和LiteRT等框架已经训练好的神经网络模型直接或是经过转换在RUBIK Pi 3上快速高效地运行。
概述
RUBIK Pi 3 Ubuntu AI/ML 开发流程如下流程图所示:
上面的AI/ML 开发流程大致分为两个步骤:
步骤 1
编译并优化来自第三方 AI 框架的模型,以便在 RUBIK Pi 3上高效运行。例如,可以将 TensorFlow 模型导出为 TFLite 模型。可以对模型文 件针对推理硬件来做量化、细调性能和精确度等特殊的定制操作。
步骤 2
编译应用程序,使用优化后的模型在设备上运行推理
- 将 AI 模型集成到用例 pipeline 中。
- 交叉编译应用程序,生成使用依赖库的可执行二进制文件。
软件和硬件架构
AI整体框架
开发人员可以从ONNX、PyTorch、TensorFlow或TFLite中引入模型,使用Qualcomm AI Runtime SDK将这些模型高效地运行在RUBIK Pi 3的人工智能硬件-HTP(NPU)、GPU、CPU上。
AI硬件
- Qualcomm Kryo™ CPU- 一流的 CPU ,具有高性能和卓越的能效。
- Qualcomm Adreno GPU- 适合在需要平衡功耗与性能的情况下执行 AI 工作负载。 AI 工作负载可以通过 OpenCL 内核进行加速。 GPU 还可用于加速模型预处理 / 后处理。
- Qualcomm Hexagon 张量处理器 (HTP)- 又称 NPU/DSP/HMX ,适合低功耗、高性地能执行AI 工作负载。为优化性能,需要对预训练模型进行量化,使其达到支持的任一种精度。
AI 软件
AI软件堆栈包含多种 SDK ,帮助AI开发者方便地利用RUBIK Pi 3的AI 硬件加速器的强大功能。开发人员可以自己选择的一种 SDK 来部署 AI 工作负载。预训练模型在运行之前需要将其转换为所选 SDK 所支持的可执行格式( TFLite 模型除外)。 TFLite 模型可以使用 TFLite Delegate 直接运行。
- LiteRT
LiteRT 模型可以使用以下 Delegate在 RUBIK Pi 3 的硬件上本地执行。
Delegate | 硬件加速器 |
---|---|
AI Engine Direct Delegate (QNN Delegate) | CPU 、 GPU 和 HTP |
XNNPACK Delegate | CPU |
GPU Delegate | GPU |
- Qualcomm 神经网络处理引擎
Qualcomm 神经网络处理引擎 (Qualcomm Neural Processing Engine SDK ,也称为SNPE) 是一种用于执行深度神经网络的软件加速 运行时 。SNPE SDK提供相关工具来对神经网络进行转换、量化,并在 CPU 、 GPU 和 HTP 等硬件加速器上对其进行加速。
- Qualcomm AI Engine Direct (QNN)
Qualcomm AI Engine Direct是为 AI/ML 场景用例使用Rubik Pi 3的AI加速器硬件而设计的一种软件架构。
该架构旨在提供统一的 API ,模块和可扩展的预加速库,从而基于这种可重用的结构打造全栈 AI 解决方案。它可为Qualcomm 神经网络处理 SDK(SNPE) 、 TFLite AI Engine Direct Delegate 等运行时提供支持。
- AI Model Efficiency Toolkit (AIMET)
这是一个用于优化(压缩和量化)训练好的神经网络模型的开源库。并且该库是一个复杂的SDK旨在生成优化的量化模型,适用于高阶开发者。
编译和优化模型
开发者可以使用以下两种方式中的任意一种方式来编译和优化自己的模型。
项目 | 描述 |
---|---|
AI Hub | 开发者可以引入自己的模型,在云设备(Snapdragon 设备)上试用预优化模型。 |
AI 软件堆栈 | - 使用LiteRT优化模型 直接移植LiteRT AI的模型到RUBIK Pi 3设备上。 - 使用 Qualcomm AI Runtime SDK 来优化AI模型使用一体化、易于定制的Qualcomm AI Runtime(QAIRT)SDK移植您的模型。 |
AI Hub
AI Hub 提供了帮助开发人员针对视觉、音频和语音用例的机器学习模型在设备上进行优化、验证和部署的方法和途径。
环境配置
-
在您的计算机上安装miniconda和配置Python环境。
- 安装miniconda。
从miniconda官网下载miniconda并安装。
- 打开命令命令行 窗口。
- Windows
- macOS/Linux
安装完成后,通过 Start 菜单打开 Anaconda 提示符窗口。
安装完成后,打开一个新的 shell 窗口。
- 为AI Hub配置一个Python的虚拟环境
在打开的命令行窗口中输入如下命令:
conda activate
conda create python=3.10 -n qai_hub
conda activate qai_hub -
安装 AI Hub Python 客户端。
pip3 install qai-hub
pip3 install "qai-hub[torch]" -
登录 AI Hub 。
前往 AI Hub 并使用 Qualcomm ID 登录,查看所创建作业的相关信息。
登录后,导航至 Account > Settings > API Token 。此时应提供一个可用于配置客户端的 API 令牌。
-
在终端,使用以下命令通过 API 令牌配置客户端。
qai-hub configure --api_token <INSERT_API_TOKEN>
然后使用下面命令查看支持设备列表来验证 AI Hub Python 客户端是否安装成功:
qai-hub list-devices
出现如下结果说明 AI Hub Python 客户端安装成功: