高通AI应用程序开发2:Qualcomm 神经处理 SDK 设置

Linux 平台依赖项

主机操作系统

Qualcomm® 神经处理 SDK 已通过 Ubuntu 22.04 LTS (Focal) Linux 主机操作系统的验证。 Qualcomm® 神经处理 SDK 还经过验证,可在适用于 Linux 的 Windows 子系统 (WSL2) 环境版本 1.1.3.0 中运行。 但目前仅限于 Linux 主机可运行的工件,例如转换器、模型生成和运行工具。 要设置您自己的 WSL2 环境,请按照 Microsoft 在 https://learn.microsoft.com/en-us/windows/wsl/install 提供的说明进行操作。

Python

python3 支持 Qualcomm® 神经处理 SDK 发行版。 下载和安装说明因主机操作系统而异。SDK 已经过 python3.10 测试。 如果您的系统上尚未安装 python3.10,您可以使用以下命令安装它:

bash 复制代码
$ sudo apt-get update
$ sudo apt-get install python3.10 python3-distutils libpython3.10

虚拟环境 (VENV)

无论是管理多个 python 安装,还是只是为了保持系统 python 安装干净我们建议使用 Python 虚拟环境。

bash 复制代码
$ sudo apt-get install python3.10-venv
$ python3.10 -m venv "<PYTHON3.10_VENV_ROOT>"
$ source <PYTHON3.10_VENV_ROOT>/bin/activate

如果您的环境位于 WSL 中,则 <PYTHON3.10_VENV_ROOT> 必须位于 $HOME 下。

运行以下脚本以检查并安装缺少的依赖项:

bash 复制代码
$ python3 -m pip install --upgrade pip
$ ${SNPE_ROOT}/bin/check-python-dependency

要进行SNPE_ROOT设置,请参阅 Environment Setup for Linux。 3.5.0 的 Matplotlib 和 2.0.2 的 Pandas 已在 Windows 上得到验证

Linux

需要 Clang++ 来编译 x86_64 目标的工件。此 Qualcomm® 神经处理 SDK 版本经验证可与 Clang 14 配合使用。

运行以下脚本以检查并安装缺少的 Linux 依赖项:

bash 复制代码
# Note: Run the following command as administrator/root to install system libraries.

 $ sudo bash ${SNPE_ROOT}/bin/check-linux-dependency.sh

ML框架

要将在不同框架上训练的ML模型转换为Qualcomm®神经处理SDK可使用的中间表示,您可能需要在主机上下载并安装相应的框架。

此Qualcomm®神经处理SDK版本经验证可与以下版本的ML训练框架一起使用:

  • TensorFlow: tf-2.10.1

  • TFLite: tflite-2.3.0

  • PyTorch: torch-1.13.1

  • ONNX: onnx-1.16.1

  • ONNX Runtime: onnxruntime-1.18.0

Qualcomm®神经处理SDK允许用户编译用户定义的操作包,以与CPU、GPU和DSP等运行时一起使用。您可能需要安装适当的交叉编译工具链,以便为特定后端编译此类包。

操作包是使用 makefile 编写的前端编译的。 如果 make 在您的主机上不可用,请使用以下命令进行安装

bash 复制代码
$ sudo apt-get install make

GCC 工具链

要构建 sample-app 以在具有基于 Yocto 的 OS 的设备上运行,需要 gcc 编译器。为了支持基于 Yocto Kirkstone 的设备, SDK 库使用 GCC-11.2 进行编译。以下部分以 Yocto Kirkstone 为例提供获取工具链的步骤。

如果您的系统 PATH 中没有所需的编译器,请使用以下步骤安装 依赖项,并使其在 PATH 中可用。

请按照 Qualcomm 构建指南生成包含交叉编译器工具链的 eSDK (qcom-wayland-x86_64-qcom-console-image-armv8-2a-qcm6490-toolchain-ext-0.0.sh) 构建示例应用程序时需要。

  1. 构建 eSDK 的步骤可在 My Account

    1.1. 构建 eSDK 后,qcom-wayland-x86_64-qcom-console-image-armv8-2a-qcm6490-toolchain-ext-0.0.sh将

    生成于 <WORKSPACE DIR>/build-qcom-wayland/tmp-glibc/deploy/sdk。

    1.2. 使用 ./qcom-wayland-x86_64-qcom-console-image-armv8-2a-qcm6490-toolchain-ext-0.0.sh 提取工具链

Android NDK:

此 Qualcomm® 神经处理 SDK 版本经验证可与 Android NDK 版本 r26c 配合使用。 可在 https://dl.google.com/android/repository/android-ndk-r26c-linux.zip 获得。 下载后,提取 zip 文件并将提取的位置添加到您的 PATH 环境变量中。

使用以下命令将环境设置为使用 Android NDK 并检查配置:

复制代码
$ export ANDROID_NDK_ROOT=<PATH-TO-NDK>
$ export PATH=${ANDROID_NDK_ROOT}:${PATH}
$ ${SNPE_ROOT}/bin/envcheck -n

Clang 14:

此 Qualcomm® 神经处理 SDK 版本经验证可与 Clang 14 配合使用。 请参阅 Environment Setup for Linux for Clang 安装。

要检查环境是否已正确设置以使用 clang-14,可以使用以下命令:

复制代码
$ ${SNPE_ROOT}/bin/envcheck -c

中央处理器: 用于 X86_64 的编译器是 clang 14。ARM CPU 目标是使用 Android NDK 构建的(请参阅 Android NDK)。

**显卡:**GPU 后端内核基于 OpenCL 编写。 GPU 操作必须基于 OpenCL 版本 1.2 或更高版本的 OpenCL 标头实现。

**DSP:**针对 DSP 进行编译需要使用 Qualcomm® Hexagon SDK 中提供的 Hexagon 工具链。

更多的设置说明可以在$HEXAGON_SDK_ROOT/docs/readme.html上找到,其中HEXAGON-SDK_ROOT是HEXAGON SDK安装的位置。

Linux 上的 Hexagon SDK 安装

Java

需要Java环境将Qualcomm®神经处理SDK与Android应用程序(例如图像分类器)集成。此Qualcomm®神经处理SDK版本经验证可与Java 8配合使用。如果您的主机上没有Java 8,请使用以下命令安装它:

bash 复制代码
$ sudo apt-get install openjdk-8-jdk

环境设置

Linux的

满足 Linux 平台依赖项后,用户 environment 可以使用提供的 envsetup.sh 脚本进行设置。

在 Linux 主机上打开命令 shell 并运行:

codeblock 复制代码
$ source ${SNPE_ROOT}/bin/envsetup.sh

这将设置/更新以下环境变量:

  • SNPE_ROOT

  • PYTHONPATH

  • 路径

  • LD_LIBRARY_PATH

${SNPE_ROOT}表示Qualcomm®神经处理SDK根的完整路径。

SNPE API标头以${SNPE_ROOT/include/SNP为单位。

这些工具位于${SNPE_ROOT}/bin/x86_64-linux-clang中。

目标特定库位于${SNPE_ROOT}/lib/*/中。

机器学习框架

有关 Qualcomm® 神经处理 SDK 经过哪些版本验证的信息,请参阅 ML 框架

使用 tensorflow · PyPI 将 TensorFlow 安装为独立的 Python 模块如果安装 tf-1.15.0,请参阅上面的 Python 3.6 安装部分。确保 TensorFlow 位于 PYTHONPATH 中。

bash 复制代码
python -c "import tensorflow"

使用 onnx · PyPI 将 ONNX 安装为独立的 Python 模块,并通过运行以下命令确保 ONNX 位于 PYTHONPATH 中:

复制代码
python -c "import onnx"

使用 onnxruntime · PyPI 将 ONNX 运行时安装为独立的 Python 模块,并通过运行以下命令确保 ONNX 运行时位于 PYTHONPATH 中。

复制代码
python -c "import onnxruntime"

使用 tflite · PyPI 将 TFLite 安装为独立的 Python 模块,并通过运行以下命令确保 TFLite 位于您的 PYTHONPATH 中:

复制代码
python -c "import tflite"

使用 Previous PyTorch Versions | PyTorch 将 PyTorch v1.13.1 安装为独立的 Python 模块,并通过运行以下命令确保 PyTorch 位于您的 PYTHONPATH 中:

复制代码
python -c "import torch"

参考网站:Snapdragon Neural Processing Engine SDK (qualcomm.com)

相关推荐
Dev7z2 分钟前
基于深度学习的中文手写数字识别系统研究与实现
人工智能·深度学习
wshzd7 分钟前
LLM之Agent(三十六)|AI Agents(五):Workflow vs Agent
人工智能
创客匠人老蒋9 分钟前
AI正在重塑IP:创客匠人峰会探讨智能体与未来趋势
人工智能·创始人ip·创客匠人全球ip+ai高峰论坛
极智视界18 分钟前
目标检测数据集 - 卫星图像船舶检测数据集下载
人工智能·目标检测·目标跟踪
宇来风满楼20 分钟前
U-KAN复现
人工智能·深度学习·神经网络·算法·机器学习
糖葫芦君23 分钟前
One-rec强化学习部分
人工智能·深度学习
极客BIM工作室27 分钟前
稀疏混合专家(Sparse MoE)架构论文全景
人工智能
IT_陈寒28 分钟前
SpringBoot3.0实战:5个高并发场景下的性能优化技巧,让你的应用快如闪电⚡
前端·人工智能·后端
秋邱29 分钟前
AR 定位技术深度解析:从 GPS 到视觉 SLAM 的轻量化实现
开发语言·前端·网络·人工智能·python·html·ar
serve the people33 分钟前
Agent知识库怎么解决海量文档数据的向量索引过度消耗内存的问题
人工智能