用途:面向 PyTorch ExecuTorch 的 QNN(Qualcomm AI Engine Direct)后端开发,用于构建、测试或开发 backends/qualcomm/。以斜杠命令 /qualcomm 调用,带参数时先分类路由:涉及 buck-fix、buck-cmake、buck-parity、qnn buck、修复 QNN buck CI 等请求时,读取 buck_parity.md 并端到端执行,默认进入完整迭代修复循环;若参数含 check 或 diagnose,则只运行一次并报告,不应用修复。无参数或其他参数时按普通发现请求处理,参考高级主题表。
主要能力:按主题读取对应文件,包括导出/降级/量化选项与 pass 流水线(lowering_export.md)、新算子开发(new_op_development.md)、通过 QNN op 包启用自定义算子(custom_op_enablement.md,覆盖 HTP 与 LPAI/eNPU)、模型端到端启用(model_enablement.md)、Buck 与 CMake 一致性(buck_parity.md)、性能分析与调试(profiling.md)、QNN 中间输出/逐层精度调试(qnn_intermediate_debugger.md)。
使用方式:构建使用 backends/qualcomm/scripts/build.sh,仅支持 Linux。环境变量 QNN_SDK_ROOT 与 ANDROID_NDK_ROOT 未设置时自动下载。默认构建 x86_64(Python 接口与主机工具,build-x86/)和 Android arm64-v8a(设备运行器,build-android/);可用 --skip_x86_64、--skip_linux_android 关闭。直接模式默认关闭,用 --build_direct_mode <0|3> --soc_model <model> 开启,0 为 ADSP/LPAI、3 为 CDSP/HTP,DSP 类型为 0 时还会调用 sign_library.sh --direct_mode 签名运行时库。其他选项包括 --enable_linux_embedded、--release、--no_clean、--job_number。x86_64 构建后 Python 接口 .so 自动复制到 backends/qualcomm/python/。
测试:运行 backends/qualcomm/tests/test_qnn_delegate.py,需设置 QNN_SDK_ROOT、ANDROID_NDK_ROOT、LD_LIBRARY_PATH、PYTHONPATH(指向 executorch 仓库根目录的父目录)。必填 --soc_model、--build_folder;可选 --device、--host、--artifact_dir/-a、--compile_only、--enable_x86_64、--backend <htp|gpu|lpai>、--direct_build_folder。多数参数仅长格式,来自 export_utils.py 的 setup_common_args_and_variables()。测试类覆盖浮点/量化算子、模型、工具、LLM、多模态、OSS 与通用示例脚本。
限制:仅支持 Linux,macOS 不支持;直接模式需 HEXAGON_SDK_ROOT、HEXAGON_TOOLS_ROOT,OE Linux 需 TOOLCHAIN_ROOT_HOST、TOOLCHAIN_ROOT_TARGET;profiling.md 中 QAIRT Visualizer 文件标注待定。