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

相关推荐
新缸中之脑6 分钟前
神经网络修剪实战
人工智能·深度学习·神经网络
奕直张不大7 分钟前
循环神经网络笔记
人工智能·笔记·rnn
广东航连科技17 分钟前
RFID手持机——物联网时代的核心工具
大数据·运维·网络·数据库·人工智能·物联网·交通物流
凌峰的博客22 分钟前
大语言模型水印
人工智能·语言模型·自然语言处理
AI王也30 分钟前
【AIGC】ChatGPT RAG提取文档内容,高效制作PPT、论文
人工智能·chatgpt·prompt·aigc·powerpoint
2401_8566522131 分钟前
2024从传统到智能,AI做PPT软件的崛起之路
人工智能·ai·word·powerpoint·ppt
说私域36 分钟前
摒弃“流量思维”,以精准流量驱动企业发展——基于开源 AI 智能名片、链动 2+1 模式及 O2O 商城小程序的思考
人工智能·小程序
go2coding43 分钟前
Meta推出Llama 3.2 AI模型,支持多模态和边缘计算;OpenAI首席技术官穆拉蒂宣布离职
人工智能·边缘计算·llama
微雨盈萍cbb1 小时前
LLaMa-Factory入门教程
人工智能·深度学习·llama
机器不会学习CL1 小时前
回归预测|基于卷积神经网络-支持向量机的数据回归预测Matlab程序CNN-SVM 卷积提取特征与原始特征进行融合预测
人工智能·机器学习·支持向量机·matlab·回归·cnn