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) 构建示例应用程序时需要。
构建 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 安装
- Hexagon SDK 版本可在 Hexagon NPU SDK | Qualcomm Developer 获取。
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"