高通智能多媒体 SDK (QIM SDK) 快速入门指南(2)

281 篇文章 26 订阅
150 篇文章 7 订阅

高通智能多媒体 SDK (QIM SDK) 快速入门指南(2)


4 构建 QIM SDK – 开发人员工作流程

QIM SDK 工作流程要求开发人员向配置文件提供有效的输入条目。sdk-tools 项目中的辅助 shell 脚本(存在于 QIM SDK 源代码树中)提供辅助实用函数来设置 shell 环境,开发人员可以将其用于 QIM SDK 工作流程。

开发人员在容器内构建 QIM SDK 项目,并使用 sdk-tools 提供的实用程序生成工件。

构建 QIM SDK 容器后,开发人员可以附加到容器并使用容器 shell 环境中的帮助程序实用程序进行持续开发。

  • 可以将 QIM SDK 工件安装到通过 USB/adb 连接到 Linux 主机的 Qualcomm 设备。
  • 还可以将 QIM SDK 工件从容器复制到连接 Qualcomm 设备的不同主机。

请添加图片描述

图片 : QIM SDK 容器工作流程

下图列出了使用用于构建 QIM SDK 的帮助程序脚本设置容器环境后可用的实用程序集。

请添加图片描述

图片 :采购容器环境后可用的实用程序

下图显示了实用程序的执行顺序:

请添加图片描述

图片 :主机上的实用程序序列

4.1 与容器同步并构建 QIM SDK

QIM SDK 在创建 docker 镜像时编译。

要同步和构建 QIM SDK,请执行以下操作:

  1. 在主机文件系统上创建一个目录以同步 QIM SDK 工作区。例如:

    $mkdir <qim-sdk-workspace> 
    $cd <qim-sdk-workspace>
    
    
  2. 从 CodeLinaro 获取 QIM SDK 源代码:

    $ repo init -u https://git.codelinaro.org/clo/le/sdkqim/qim/manifest.git --repo-branch=qc/stable --repo-url=git://git.quicinc.com/tools/repo.git -m QIM.SDK.1.0.0.r1-01100-QIM.0.xml -b release && repo sync -qc --no-tags -j8
    
  3. 在主机文件系统上创建一个可以挂载到docker上的目录。

    例如:mkdir -p /<host_dir>

    该目录可以在 Linux 主机上的任何位置创建,并且不依赖于 QIM SDK 项目的同步位置。

    在容器内完成工作流程后,可以在此步骤中创建的目录中找到 QIM SDK 工件。

  4. /sdk-tools/targets/LE.PRODUCT.2.1 编辑包含以下条目的JSON 配置文件 :

    {
    "Image_OS": "ubuntu18", 
    "Additional_tag": "sdk-18", 
    "eSDK_shell_file": "Absolute path to Platform extensible SDK file on Linux Workstation", 
    "Base_Dir_Location": "path-to-the-directory-where-the-project-is-initialized-applies-only-for-Linux-Workstation(host)-build-variant",
    
    "Tflite_prebuilt_file": "absolute path to tf-lite-prebuilt-dev-tar-file generated from TfLite SDK", 
    "Acceleration_engines":
    [
    {
    "Acceleration_engine":"name of acceleration engine 1", "Acceleration_engine_path":"absolute path to Acceleration Engine SDK 1"
    },
    {
    "Acceleration_engine":"-", "Acceleration_engine_path":"-"
    }
    ],
    "Host_dir_mounted_in_container": "<Directory on Host that will be mapped into QIMSDK container to get artifacts to host (not applicable to Linux Workstation workflow)>",
    "Deploy_URL": "/home/<container username>/work/sync_rel", "Deploy_dev_URL": "/home/<container username>/work/sync_dev", "Deploy_QIMSDK_Artifacts_URL":"Directory on Host where all QIMSDK artifacts archive will be made available", "Gst_plugins_qti_oss_dependencies":["cairo", "ffmpeg", "gdk-pixbuf", "liba52", "libgudev", "lame", "librsvg", "libtheora", "libusb1",
    "libwebp", "mpg123", "orc", "sbc", "speex", "taglib", "vulkan-loader"]
    }
    
    

有关 JSON 配置文件中提到的条目的更多信息,请参阅Docker.md中的自述文件/sdk-tools/。

启用AI推理插件:
高通神经处理 SDK

QIM SDK 工作流程可以为 Qualcomm 神经处理 SDK(以前称为 SNPE)生成 QIM SDK 插件。

要构建 SNPE QIM SDK 插件,需要下载 SNPE SDK,并需要在配置 JSON 文件中提供 Linux 工作站上 SNPE sdk 的路径。

  • 要下载适用于 Ubuntu 的 Qualcomm Package Manager 3,请单击https://qpm.qualcomm.com/,然后单击工具。

  • 在左窗格的“搜索工具”字段中,输入QPM。从系统操作系统列表中,选择Linux。
    搜索结果显示 Qualcomm 包管理器列表。

  • 选择 Qualcomm Package Manager 3 并下载 Linux debian 软件包。

  • 要安装适用于 Linux 的 Qualcomm Package Manager 3,请使用以下命令:

    $ dpkg -i --force-overwrite /path/to/QualcommPackageManager3.3.0.83.1.Linux-x86.deb
    
  • 要下载 Qualcomm Snapdragon 神经处理引擎 SDK,请单击 https://qpm.qualcomm.com/,然后单击工具。

  • 在左窗格的“搜索工具”字段中,输入ai stack。从系统操作系统列表中,选择Linux。
    搜索结果显示 Qualcomm 包管理器列表。

  • 单击 Qualcomm® Neural Processing SDK,然后下载 Linux 版本 2.13.0 的 .qik 包。

  • 要在 Ubuntu 工作站上安装 Qualcomm® 神经处理 SDK,请运行以下命令:

    $ qpm-cli --login <username>
    $ qpm-cli --license-activate qualcomm_neural_processing_sdk
    $ qpm-cli --extract <full path to downloaded .qik file>
    
    

    提取成功后,显示以下消息。 “/opt/qcom/aistack/snpe/2.13.4.230831”

  • 将条目添加到LE.PRODUCT.2.1.json文件中。例如:

    "Acceleration_engines":
    [
    {"Acceleration_engine":"snpe", 
    "Acceleration_engine_path":/opt/qcom/aistack/snpe/2.13.4.230831"
    },
    ]
    
    
  • 从 Ubuntu 工作站将库推送到设备。运行以下命令将相关库和二进制文件侧面加载到设备上:

    $ cd /opt/qcom/aistack/snpe/2.13.4.230831 on Ubuntu Workstation
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libcalculator_htp.so         /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libcalculator.so             /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libhta_hexagon_runtime_snpe.so  /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libPlatformValidatorShared.so   /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeDspV65Stub.so         /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeDspV66Stub.so         /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHta.so                /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHtpV68Stub.so         /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHtpV73Stub.so         /usr/lib/
    $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSNPE.so                   /usr/lib  
    $ adb push ./lib/hexagon-v65/unsigned/libSnpeDspV65Skel.so           /usr/lib/rfsa/adsp
    $ adb push ./lib/hexagon-v65/unsigned/libCalculator_skel.so          /usr/lib/rfsa/adsp
    $ adb push ./lib/hexagon-v66/unsigned/libSnpeDspV66Skel.so           /usr/lib/rfsa/adsp
    $ adb push ./lib/hexagon-v68/unsigned/libSnpeDspV68Skel.so           /usr/lib/rfsa/adsp
    $ adb push ./lib/hexagon-v69/unsigned/libSnpeDspV69Skel.so           /usr/lib/rfsa/adsp
    $ adb push ./lib/hexagon-v73/unsigned/libSnpeDspV73Skel.so           /usr/lib/rfsa/adsp
    $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-net-run               /usr/bin
    $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-parallel-run          /usr/bin
    $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-platform-validator    /usr/bin
    $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-throughput-net-run    /usr/bin
    
    

    请参阅Qualcomm TensorFlow Lite 软件开发套件 (TFLITE SDK) 工具快速入门指南(80-50450-52) 执行以下操作:

    • 启用 TFLite GStreamer 插件
    • Tflite_prebuilt_file获取 TFLite 工件并更新上述 JSON 文件中的相关字段 ( )
  1. 获取脚本以设置环境:

    $ cd <qim-sdk-workspace>/sdk-tools
    $ source ./scripts/host/docker_env_setup.sh
    
    
  2. 构建 QIM SDK docker 镜像:

    $ qimsdk-docker-build-image ./targets/LE.PRODUCT.2.1.json
    

    如果构建设置失败,请参阅排除 docker 设置故障。

    成功完成后,将显示以下消息:
    “状态:构建镜像成功完成!!!”

    运行此步骤也会构建 QIM SDK。

  3. 运行 QIM SDK docker 容器。这将使用 JSON 配置文件中提供的标签启动容器。

    $qimsdk-docker-run-container ./targets/LE.PRODUCT.2.1.json
    

    将显示以下消息:
    “状态:Docker qimsdk-ubuntu18-sdk-18 运行成功!!!”

  4. 将 docker 连接到容器:

    $ docker attach qimsdk-ubuntu18-sdk-18
    

    将显示 docker shell,并且 bash 环境中可以使用以下帮助程序实用程序:
    请添加图片描述
    QIM SDK 已编译,并且工件已准备好部署。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值