高通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)

相关推荐
牧歌悠悠2 小时前
【深度学习】Unet的基础介绍
人工智能·深度学习·u-net
坚毅不拔的柠檬柠檬3 小时前
AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
人工智能·chatgpt·文心一言
坚毅不拔的柠檬柠檬3 小时前
2025:人工智能重构人类文明的新纪元
人工智能·重构
jixunwulian3 小时前
DeepSeek赋能AI边缘计算网关,开启智能新时代!
人工智能·边缘计算
Archie_IT3 小时前
DeepSeek R1/V3满血版——在线体验与API调用
人工智能·深度学习·ai·自然语言处理
大数据追光猿3 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
灵感素材坊4 小时前
解锁音乐创作新技能:AI音乐网站的正确使用方式
人工智能·经验分享·音视频
xinxiyinhe5 小时前
如何设置Cursor中.cursorrules文件
人工智能·python
AI服务老曹5 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
alphaAIstack5 小时前
大语言模型推理能力从何而来?
人工智能·语言模型·自然语言处理