Qualcomm® AI Engine Direct 使用手册(9)

150 篇文章 9 订阅
50 篇文章 0 订阅


4.1.3 HTA

本部分提供特定于 QNN HTA 后端的信息。

4.1.3.1 API 专业化

本节包含与 HTA 后端 API 专业化相关的信息。所有 QNN HTA 后端专业化都可以在<QNN_SDK_ROOT>/include/QNN/HTA/目录下找到。

QNN HTA 后端 API 的当前版本是:

QNN_HTA_API_VERSION_MAJOR 2
QNN_HTA_API_VERSION_MINOR 0
QNN_HTA_API_VERSION_PATCH 0

4.1.3.2 QNN HTA 支持的操作

QNN HTA 支持运行量化 8 位和量化 16 位网络。QNN HTA Quant 运行时支持的操作列表可以在支持的操作中的后端支持 HTA 列下查看

4.1.3.3 QNN HTA 16 位整数支持限制

要启用 16 位整数推理,请将激活的量化位宽指定为 16,同时将权重保持为 8。输入/输出数据格式应定义为 16 位。

由 QNN 转换器工具使用 来生成具有 16 位激活和 8 位权重的模型。–act_bw 16 --weight_bw 8

QNN HTA 性能基础架构 API
客户端可以在加载 QNN HTA 库后调用 QnnBackend_getPerfInfrastruct ,然后调用文件 QnnHtaPerfInfrastruct.h 中可用的方法 。这些 API 允许客户端控制 HTA 加速器的系统设置,从而对加速器进行细粒度控制。一些用例是:

设置加速器的电源模式。

4.1.4 LPAI

本节提供特定于 QNN CPU 后端的信息。

API 专业化

本节包含与 CPU 后端 API 专业化相关的信息。所有 QNN CPU 后端专业化都可以在<QNN_SDK_ROOT>/include/CPU/目录下找到。

QNN CPU 后端 API 的当前版本是:

QNN_CPU_API_VERSION_MAJOR 1
QNN_CPU_API_VERSION_MINOR 1
QNN_CPU_API_VERSION_PATCH 0

4.1.5 CPU

This section provides information specific to QNN CPU backend.

4.1.5.1 API 专业化

本节包含与 CPU 后端 API 专业化相关的信息。所有 QNN CPU 后端专业化都可以在<QNN_SDK_ROOT>/include/CPU/目录下找到。

QNN CPU 后端 API 的当前版本是:

QNN_CPU_API_VERSION_MAJOR 1
QNN_CPU_API_VERSION_MINOR 1
QNN_CPU_API_VERSION_PATCH 0

4.1.5.2 支持的操作

QNN CPU 支持在当前启用的 Qualcomm 芯片组和平台目标上运行量化 8 位和浮点 32 位网络。QNN CPU 在量化和浮点精度方面支持的操作列表可以在支持的操作中的后端支持 CPU 列中查看。

请注意,尽管 FP32 和 INT8 在支持的操作中的单独列下列出 ,但它们是由同一 CPU 后端库启用的。

4.1.5.3 操作包

CPU Op Package 提供与在 CPU 后端注册的 OpPackage 库进行交互的接口。有关该接口的更多详细信息可以在此处找到File QnnCpuOpPackage.h。

4.1.5.4 Op 包写作指南

有关 op 包编写的详细信息将在未来版本中提供。同时,请参考op包示例,可以在 中找到${QNN_SDK_ROOT}/examples/OpPackage/CPU/。

4.1.5.5 调试回调

调试回调是一项允许用户在 CPU 后端执行时接收中间输出的功能。QNN CPU 为用户提供了一个配置选项,可以通过客户端使用来启用它,如下所示:

 1 QnnCpuGraph_CustomConfig_t customConfig;
 2 customConfig.option = QNN_CPU_GRAPH_CONFIG_OPTION_OP_DEBUG_CALLBACK;
 3 customConfig.cpuGraphOpDebug.cpuGraphOpDebugCallback = <QnnCpuGraph_OpDebugCallback_t funtion>;
 4 customConfig.cpuGraphOpDebug.callBackParam = <param to be returned with callback funtion>;
 5
 6 QnnGraph_Config_t graphConfig;
 7 graphConfig.option       = QNN_GRAPH_CONFIG_OPTION_CUSTOM;
 8 graphConfig.customConfig = &customConfig;
 9
10 const QnnGraph_Config_t* pGraphConfig[] = {&graphConfig, NULL};

4.1.6 图形处理器 (GPU)

4.1.6.1 API 专业化

本节包含与 GPU 后端 API 专业化相关的信息。所有 QNN GPU 后端专业化都可以在该${QNN_SDK_ROOT}/include/QNN/GPU/目录下找到。

QNN GPU 后端 API 的当前版本是:

QNN_GPU_API_VERSION_MAJOR 3
QNN_GPU_API_VERSION_MINOR 3
QNN_GPU_API_VERSION_PATCH 0

4.1.6.1 操作限制

QNN GPU 操作限制记录在GPU 后端操作定义补充中。

4.1.6.2 内核持久化

QNN GPU 后端支持 QNN 上下文中保存的两种内核持久性策略:内存中和磁盘上。我们将内存中的持久性称为内核注册表,将磁盘上的持久性称为内核存储库。这是两种重用内核来减少模型初始化时间的机制。下面将通过介绍一个简单的用例来概述如何使用这些功能。

用户通过使用 提供有效kernelRepoDir的自定义配置设置调用QnnContext_create来创建新的 QNN GPU 上下文。我们假设这条路径是。假设没有与此路径对应的现有磁盘存储库。因此,内核不会被反序列化,并且内存注册表将不包含内核。源自内置 qti.aisw op 包的内核将在 QnnContext_create期间反序列化。当通过QnnBackend_registerOpPackage注册该 op 包时,源自另一个 op 包的内核将被反序列化 。${QNN_GPU_KERNEL_REPO}

用户创建模型 A 并最终确定它。假设模型 A 由内核 1、2 和 3 组成。这些内核是从头开始创建的,并添加到内存中的内核注册表中。用户创建模型 B 并最终确定它。假设模型 B 由内核 3 和 4 组成。内核 3 将从内存中的内核注册表中恢复,内核 4 将从头开始创建并添加到注册表中。

用户现在调用QnnContext_free。由于提供了有效的内核存储库路径,QNN GPU 上下文将序列化内存中内核,并且对于每个 op 包,将它们写入其中 Q N N G P U K E R N E L R E P O / g p u k e r n e l c a c h e . {QNN_GPU_KERNEL_REPO}/gpukernelcache. QNNGPUKERNELREPO/gpukernelcache.{OP_PKG_NAME}OP_PKG_NAME 是 op 包 packageName。

如果用户创建另一个指定相同内核存储库路径的 QNN GPU 上下文,这些内核将按照上面所述进行反序列化并添加到内存中内核注册表中。如果用户现在创建模型 A 或 B,所有内核都将准备好通过内存注册表创建,从而大大减少初始化时间。

请注意,op 包 向 Context提供了kernelRepoHash 。如果 QNN GPU 上下文检测到磁盘上的内核存储库是由同名的 op 包生成的,但 kernelRepoHash 不同,则磁盘上的存储库将自动失效。这可以确保不会发生内核版本不匹配的情况。

另请注意,这些 QNN GPU 内核持久性功能与 QNN 上下文缓存功能是分开的(请参阅 QnnContext_getBinary)。QNN GPU 上下文缓存将存储重新创建上下文所需的所有内容,包括内核。

4.1.6.3 精确模式

QNN GPU 后端通过 QNN 图自定义配置功能提供四种精度模式(请参阅QnnGpuGraph_CustomConfig_t和 QnnGpu_Precision_t)。这些模式是:

  • QNN_GPU_PRECISION_FP32(FP32 模式)

    • FP32 模式会将 NATIVE 张量数据类型转换为 FP32,并选择使用 FP32 累加器的内核。

    • FP32 模式可提供最佳精度,但会牺牲性能。

  • QNN_GPU_PRECISION_FP16(FP16 模式)

    • FP16 模式会将 NATIVE 张量数据类型转换为 FP16,并尽可能选择使用 FP16 累加器的内核。

    • FP16 模式可提供最佳性能,但会牺牲准确性。

  • QNN_GPU_PRECISION_HYBRID

    • 混合模式会将 NATIVE 张量数据类型转换为 FP16,并选择使用 FP32 累加器的内核。

    • 混合模式在性能和准确性之间提供了良好的权衡。

  • QNN_GPU_PRECISION_USER_PROVIDED

    • 当未提供自定义配置时,这是默认的精度模式。

    • QNN GPU 后端不会优化 NATIVE 张量数据类型。

4.1.6.4 性能提示

QNN GPU 通过 QNN 上下文自定义配置功能提供三种性能提示(请参阅QnnGpuContext_CustomConfig_t和 - QnnGpuContext_PerfHint_t)。这些提示是:

  • QNN_GPU_CONTEXT_PERF_HINT_HIGH

    • HIGH perf 提示将最大化 GPU 时钟频率。

    • HIGH 性能提示以功耗为代价提供最佳推理延迟。

    • 这是默认设置。

  • QNN_GPU_CONTEXT_PERF_HINT_NORMAL

    • NORMAL 性能提示提供取决于电源管理的平衡性能。
  • QNN_GPU_CONTEXT_PERF_HINT_LOW

    • LOW perf 提示将最小化 GPU 时钟频率。

    • 低性能提示以推理延迟为代价提供最低功耗。

请注意,性能提示包含在上下文缓存中。但是,对 QnnContext_setConfig 的调用可以覆盖缓存的性能提示设置。

4.1.6.5 上下文配置

支持QnnContext 自定义配置(QnnGpuContext_CustomConfig_t)和上下文优先级(请参阅Qnn_Priority_t 和QnnContext_ConfigOption_t )。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qualcomm 9x07平台是高通公司推出的一款针对IoT设备应用的平台,它采用高通自主研发的高性能芯片,并配备了全新的移动调制解调器(MDM)。 该平台主要针对物联网(IoT)、车联网(V2X)、机器人等应用场景的需求进行优化,具有低功耗、高安全等特点。并且,它能够支持多种连接模式,包含4G LTE、NB-IoT、eMTC,以及Wi-Fi、Bluetooth等传输模式。 在软件平台架构方面,Qualcomm 9x07平台采用了高通自主开发的QSDK软件框架。这个框架有两个关键特点:一是模块化设计,能够方便地实现软件组成的可重用性;二是高集成性,能够使系统开发周期大大缩短。 为了使用户更加方便地进行应用开发,高通还提供了全套的用户开发指导。其中包括了基于QSDK的软件开发工具、应用开发文档、参考设计和示例代码等资源,可以帮助用户更快速地实现自己的应用场景。同时,高通还提供了专业团队支持,能够保证用户的顺利开发。 ### 回答2: Qualcomm 9x07平台是一款高性能的移动通信芯片,主要应用在智能手机、笔记本电脑、平板电脑等移动设备中。它采用Adreno 508 GPU和Hexagon 546 DSP处理器,支持LTE Cat.7/Cat.13标准,可以实现高速无线网络数据传输。同时,它还支持全球主流的定位系统,包括GPS、GLONASS、BeiDou以及Galileo等。 软件平台架构方面,Qualcomm 9x07平台采用基于Android的Qualcomm Reference Design(QRD)平台,可以快速实现移动设备的软件定制和开发。这个平台集成了丰富的软件开发工具和开发支持服务,包括QDART、QXDM、QCAT等,可以帮助开发者快速构建高性能的移动设备应用软件,并实现丰富的多媒体功能。 用户开发指导方面,Qualcomm 9x07平台为开发者提供了丰富的开发工具和指导文档。对于Android开发者来说,可以使用Android Studio集成开发环境,并添加Qualcomm移动平台开发插件,来进行移动设备应用程序的开发。此外,Qualcomm还提供了详细的API文档和参考资料,以帮助开发者了解平台的软件和硬件架构,并掌握移动设备的开发技术。同时,Qualcomm还提供了全面的技术支持和培训服务,帮助开发者尽快掌握移动设备开发技术,并提高软件开发效率和质量。 ### 回答3: 高通9x07平台是一款高度集成的全球通用移动调制解调器(MDM)芯片平台。它旨在为全球范围内的5G连接提供领先的支持。该平台的软件架构是基于高通的现代LTE调制解调器和应用处理器之间的紧密集成。它可以支持多个无线接口,包括5G、LTE Advanced Pro、WCDMA、TD-SCDMA和CDMA2000,同时还集成了全球定位(GPS)和全球导航卫星(GNSS)等功能。 在用户开发方面,高通9x07平台的开发人员可以使用高通提供的一系列工具来开发软件,这些工具包括高通的软件开发工具包(SDK)、开发平台、硬件参考设计和技术支持。通过这些工具,开发人员可以自由设计应用程序、调试代码以及测试运行在9x07平台上的移动应用程序。此外,高通还提供了详细的文档和指南,以支持各种用户开发场景。 总的来说,高通9x07平台具有高度集成、多功能、优秀的性能和可靠性,对于开发人员来说也具有友好的开发环境和支持,使其成为5G时代的重要组成部分。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值