Windows on Snapdragon 使用指南(5)


4 适用于人工智能的高通® 神经处理 SDK

适用于人工智能的高通® 神经处理 SDK 简化了开发人员在骁龙设备上运行优化神经网络的流程,无需云连接。 高通神经处理 SDK 利用高通® 人工智能引擎直接支持针对每个加速器后端。
作为高通® 人工智能栈的一部分,该 SDK 有助于在设备上集成神经网络。 它支持 PyTorchONNXTensorFlow/TensorFlow Lite 中的多个经过训练的神经网络模型,并且可以在高通® 骁龙 CPU 或 DSP 处理器上运行。 该 SDK 包括用于模型转换和执行的工具、用于核心定位的 API,并支持卷积神经网络和自定义运算符。 通过减轻在高通® 骁龙设备上运行神经网络的负担,高通® 神经处理 SDK 使开发人员能够专注于创造新的创新用户体验。

主要特征
该 SDK 是为希望直接在边缘设备上执行 AI/ML 推理的开发人员提供的解决方案。 通过利用高通® 骁龙移动平台的计算能力,高通® 神经处理 SDK 可实现设备上处理,从而提供以下主要优势:

  • 减少延迟:通过设备上处理,消除了与将数据发送到云和接收结果相关的时间和延迟,使其成为实时应用程序的理想选择。
  • 提高隐私性:通过将计算保持在本地,用户数据保留在设备上,不会传输到云端,从而提供更高级别的隐私和安全性。
  • 节省成本:设备上处理无需云连接,这可以降低部署人工智能/机器学习 应用程序的成本,特别是在云连接有限或昂贵的区域。
  • 提高可靠性:通过减少对云的依赖,设备上处理提供了更可靠的解决方案,因为它不易受到网络中断或连接问题的影响。
  • 优化的推理性能:该 SDK 可帮助开发人员通过以下方式优化高通骁龙平台上的人工智能/机器学习工作负载的性能:
    • 异构计算:SDK利用骁龙平台强大的计算能力,包括CPU和DSP,为人工智能/机器学习工作负载提供最佳性能。
    • 优化的模型转换:开发人员可以将在 PyTorchONNXTensorFlowTensorFlow Lite 等流行框架中训练的深度学习模型转换为针对高通® 骁龙平台优化的格式。这有助于提高模型在推理过程中的性能和效率。
    • 低精度校准:SDK支持低精度推理,即减少推理过程中用于表示模型参数的位数。这可以在保持高精度的同时提高性能,使开发人员能够根据需要灵活地在精度和性能之间进行权衡。
    • 自定义运算符支持:该 SDK 提供可实现自定义层的 API,允许开发人员扩展其模型的功能,以满足其应用程序的特定需求。
    • 高效执行:该 SDK 提供针对高通® 骁龙核心的 API,最符合所需的用户体验,使开发人员能够为其人工智能/机器学习工作负载实现最佳性能。

使用高通® 神经处理 SDK 开发人工智能应用程序
要在骁龙 (WoS) 或 Linux 上构建并运行适用于 Windows 的人工智能应用程序,请使用高通® 神经处理 SDK 生成深度学习容器 (DLC)。

设置神经处理 SDK
高通神经处理 SDK 需要安装在主机(x86 64 位机器)上。

构建人工智能应用程序
构建适用于 Windows 或 Linux 平台的应用程序。

在目标设备上运行 Windows 应用程序

4.1 使用高通® 神经处理 SDK 开发人工智能应用程序

要在骁龙(WoS) 或 Linux 上构建并运行适用于 Windows 的人工智能应用程序,请使用 高通® 神经处理 SDK 生成深度学习容器 (DLC)。

推荐资源
请参阅高通® 神经处理引擎 SDK 文档,了解如何将 ONNX、PyTorch、TensorFlow 和 TensorFlow Lite 模型转换为 DLC 文件,将 DLC 量化为 8 位或 16 位定点以在高通® Hexagon™ DSP 上运行,分析性能并将网络集成到应用程序中。高通® 神经处理引擎 SDK
高通® 神经处理引擎 SDK 参考手册

在这里插入图片描述

4.1.1 工作站要求

4.1.2 支持高通® 神经处理 SDK 的设备要求

  • Windows ARM64 设备构建应用程序并运行编译后的模型二进制文件
    • Windows 11
    • Visual Studio 2022 17.6.4
      • Windows 11 SDK (10.0.22621.0)
      • MSBuild 对 LLVM (clang-cl) 工具集的支持
      • 适用于 Windows 的 C++ Clang 编译器 (15.0.1)
      • MSVC v143 – VS 2022 C++ ARM64/ARM64EC 构建工具 –(最新)
      • 适用于 Windows 的 C++ CMake 工具

在这里插入图片描述

4.2 设置神经处理 SDK

高通神经处理 SDK 需要安装在主机(x86 64 位机器)上。
在生成 DLC 之前,请在 Ubuntu 20.04 Linux 计算机上设置高通® 神经处理 SDK

  1. 从 Windows 控制面板启用适用于 Linux 的 Windows 子系统。
    a. 在控制面板中,搜索打开或关闭 Windows 功能
    b. 在“Windows 功能”对话框中,选择适用于 Linux 的 Windows 子系统。 单击确定
    在这里插入图片描述
    c. 单击立即重新启动以重新启动计算机。
  2. 选择以下选项之一在 x86_64 设备上安装 WSL 或本机 Linux Ubuntu 20.04.6。 这使得 SDK 能够与 ONNX 框架配合使用。
    • 在 Microsoft Store 中,单击“获取”以安装 Ubuntu 20.04 WSL。
      在这里插入图片描述
    • 单击“打开”并在出现提示时创建 ID 和密码。
      在这里插入图片描述

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: %UserName%
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
Windows Subsystem for Linux is now available in the Microsoft Store!
You can upgrade by running 'wsl.exe --update' or by visiting https://aka.ms/wslstorepage
Installing WSL from the Microsoft Store will give you the latest WSL updates, faster.
For more information please visit https://aka.ms/wslstoreinfo

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)
  1. 从高通® 包管理器安装最新版本的高通® 神经处理 SDK

注意
如果尚未安装,系统将提示您安装高通® 包管理器3

神经处理 SDK 将安装在 C:\Qualcomm\AIStack\SNPE<build_version> 文件夹中。 其中 <build_version> 对应于特定的神经处理 SDK 发行版本。 例如,C:\Qualcomm\AIStack\SNPE\2.13.0.230730。

注意
每个 SDK 版本的安装路径都会有所不同。 上述路径和下面的图片仅供参考,并不代表您机器上安装的 SDK 版本。

在这里插入图片描述

  1. 将安装的 SDK 复制到 X86_64 主机设备上的 \wsl 文件夹。
    在这里插入图片描述

注意
x86_64-linux-clang 二进制文件适用于 WSL 或 Linux 的 X86_64 主机设备。 它不适用于 ARM64 设备上的 WSL。

在这里插入图片描述

如果遇到snpe-sdk权限问题,请使用以下命令授予权限:

sudo chown -R $USER:$USER snpe-sdk && sudo chmod -R 777 snpe-sdk

a. 完成 SDK 依赖项的设置,使用:高通神经处理引擎SDK
b. 对于本指南的其余部分,安装 SDK 依赖项、DNN 框架和其他要求非常重要,如上述 SDK 文档中所述。

  1. 通过使用 ML 模型进行模型准备、转换和量化,验证主机 x86_64 上的 SNPE 工具链。
    高通® 人工智能神经处理 SDK 不捆绑任何模型文件,但包含用于下载某些模型并将其转换为高通深度学习容器 (.dlc) 格式的脚本。

    a. 准备预训练的模型和输入文件。 (使用 Resnet50 Onnx 模型进行测试。)

    wget --no-check-certificate -c https://github.com/onnx/models/raw/main/vision/classification/resnet/model/resnet50-v1-7.onnx 
    
    python3 ~/snpe-sdk/examples/Models/inception_v3/scripts/create_inceptionv3_raws.py -i ~/snpe-sdk/examples/Models/inception_v3/data -d . -s 224
                    
    python3 ~/snpe-sdk/examples/Models/inception_v3/scripts/create_file_list.py -e "*.raw"
    
    

    b. 运行以下命令将预训练的 Resnet50 示例转换为 DLC 格式:

    snpe-onnx-to-dlc -i resnet50-v1-7.onnx --input_dim data 1,3,224,224
    

    例如,将显示类似于以下内容的消息。

    ce@dev:~$ snpe-onnx-to-dlc -i resnet50-v1-7.onnx --input_dim data 1,3,224,224
    WARNING: The argument 'input_shapes' is deprecated. Please use 'overwrite_input_shapes' and/or
    'test_input_shapes' instead. An error will be raised in the future.
    2023-04-25 00:29:48,893 - 214 - INFO - Successfully simplified the onnx model in child process
    2023-04-25 00:31:56,557 - 214 - INFO - Successfully receive the simplified onnx model in main process
    2023-04-25 00:34:07,156 - 219 - WARNING - WARNING_GEMM: GEMM operation is not supported in the general case, 
     attempting to interpret as FC
    2023-04-25 00:34:07,696 - 214 - INFO - INFO_INITIALIZATION_SUCCESS:
    2023-04-25 00:34:08,464 - 214 - INFO - INFO_CONVERSION_SUCCESS: Conversion completed successfully
    2023-04-25 00:34:09,320 - 214 - INFO - INFO_WRITE_SUCCESS: 
    

    c. 量化 DSP/HTP 图形并将其添加到 DLC 以用于运行时 DSP。 默认 SoC 值为 SM8550。 使用 --htp_socs 匹配目标设备上的 HTP SoC 版本

    snpe-dlc-quantize --input_dlc=resnet50-v1-7.dlc --input_list=file_list.txt --enable_htp --htp_socs=sm8350 --silent
    

    例如,将显示类似于以下内容的消息。

    [WARN] verbose coredump is not supported
    [ERROR] Failed to enable verbose core dump.
    [INFO] DebugLog shutting down.
         1.3ms [  INFO ] Initializing logging in the backend. Callback: [0xc42410], Log Level: [3]
         1.9ms [  INFO ] No BackendExtensions lib provided;initializing NetRunBackend Interface
       472.7ms [  INFO ] cleaning up resources for input tensors
       473.2ms [  INFO ] cleaning up resources for output tensors
       677.5ms [  INFO ] cleaning up resources for input tensors
       678.2ms [  INFO ] cleaning up resources for output tensors
       877.9ms [  INFO ] cleaning up resources for input tensors
       878.6ms [  INFO ] cleaning up resources for output tensors
      1075.2ms [  INFO ] cleaning up resources for input tensors
      1075.9ms [  INFO ] cleaning up resources for output tensors
    [WARN] verbose coredump is not supported
    [ERROR] Failed to enable verbose core dump.
    [INFO] DebugLog shutting down.
    

    d. 在 CPU 运行时的 ./output/Result_0/ 下生成输出 (OP_NAME.raw) 文件。

    snpe-net-run --container resnet50-v1-7_quantized.dlc --input_list file_list.txt
    

    例如,将显示类似于以下内容的消息。

    -------------------------------------------------------------------------------
    Model String: N/A
    SNPE v2.12.1.230626174329_59328
    -------------------------------------------------------------------------------
    Processing DNN input(s):
    /home/%UserName%/model/chairs.raw
    Processing DNN input(s):
    /home/%UserName%/model/notice_sign.raw
    Processing DNN input(s):
    /home/%UserName%/model/plastic_cup.raw
    Processing DNN input(s):
    /home/%UserName%/model/trash_bin.raw
    Successfully executed!
    
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Snapdragon Profiler v2021.5是一个用于分析和优化Qualcomm Snapdragon移动平台性能的软件工具。它为开发人员提供了深入了解平台运行状态和资源利用情况的能力,以便进行性能优化和问题排查。 Linux安装程序是用于在基于Linux操作系统的计算机上安装Snapdragon Profiler的工具。通过该安装程序,用户可以将Profiler集成到他们的开发环境中,并使用其功能来分析和调试基于Snapdragon平台的应用程序。安装程序通常采用图形化界面方式,用户只需按照指引逐步操作即可完成安装。 一旦成功安装Snapdragon Profiler,用户可以通过其用户界面开始分析应用程序性能。Profiler提供了许多有用的功能,如实时监控应用程序的CPU使用率、内存使用情况和GPU负载,以及检测应用程序中的性能瓶颈。用户可以使用这些信息来优化他们的代码,提高应用程序的性能和响应能力。 Snapdragon Profiler还提供了高级功能,如Graphics Analyzer,可用于分析应用程序中的图形渲染性能,并识别可能导致性能下降的问题。另外,Profiler还支持跨设备的应用程序分析,使用户能够通过网络连接到远程设备并进行分析。 总而言之,Snapdragon Profiler v2021.5 - Linux安装程序是一个强大的工具,可帮助开发人员在Qualcomm Snapdragon移动平台上优化应用程序性能。它提供了多种功能和分析工具,使用户能够深入了解应用程序的性能特征,并改进其代码以提高性能。 ### 回答2: Snapdragon Profiler v2021.5 - Linux Installer 是一个用于Linux操作系统的Snapdragon Profiler(矽智能分析工具)安装程序。Snapdragon Profiler是由高通公司开发的一款用于优化和分析基于Qualcomm Snapdragon芯片组的设备性能的工具。 这个Linux安装程序为用户提供了在Linux系统上安装Snapdragon Profiler的便利。通过安装这个工具,开发人员可以在Linux环境下进行性能分析和调试,以进一步优化他们的应用程序在Qualcomm Snapdragon芯片组上的性能。 Snapdragon Profiler提供了多样化的功能,帮助开发人员深入了解应用程序在Snapdragon芯片组上的运行情况。它可以实时监测CPU,GPU和内存的使用情况,并提供详细的分析报告。开发人员可以使用这些报告来识别性能瓶颈和优化机会,并加以改进。 此外,Snapdragon Profiler还提供了一系列分析工具,用于检测和优化ENERGY、VR、屏幕渲染、图形性能、内存管理以及应用程序的运行时间等方面。它还支持远程设备分析,方便开发人员通过网络连接对远程设备进行性能分析。 总之,Snapdragon Profiler v2021.5 - Linux Installer 是一个高效的工具,帮助开发人员在Linux操作系统上优化和分析基于Qualcomm Snapdragon芯片组的设备性能。它提供了丰富的功能和报告,使开发人员能够更好地了解应用程序的性能状况,并通过优化提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值