This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-J784S4:使用自定义构建 TIDL 工具编译 ONNX 模型时出现问题

Guru**** 2378650 points
Other Parts Discussed in Thread: AM69A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1505010/processor-sdk-j784s4-issue-compiling-onnx-model-with-custom-built-tidl-tools

部件号:PROCESSOR-SDK-J784S4
主题中讨论的其他器件:AM69A

工具/软件:

您好:

我正在使用 edgeai-tidl 版本 10_00_08_00、该 版本与 J784S4 RTOS SDK 版本10.00.00.05兼容、如 版本_compatibility_table.md 中所示

我有一个 ONNX 模型、想使用 TIDL 工具进行编译。

  • 当使用预编译的 tidl_tools (通过此命令 /home/root/edgeai-tidl-tools/scripts/get-tidl-tools.sh AM69A 下载)时 、模型会成功编译、我可以在 J784S4 EVM 上运行它而不会出现任何问题。
  • 当我 使用 SDK 从源代码构建 tidl_tools 并将输出 libs 集成到 edgeai 中时、模型的编译会显示错误。
    以下是我执行的步骤:

    • 构建 tidl_tools (无需更改)
      • ./sdk_builder/scripts/setup_psdk_rtos.sh --install_tidl_deps.
      • cd sdk_builder
      • 创建 tidl_pc_tools -j
    • 输出库的集成: 我将生成的 tidl_tools.tar.gz 提取到 edgeai-tidl-tools/tidl_tools 中
  • 这是我的错误:

*******  TIDL_subgraphRtInvoke done  ******** 
In TIDL_onnxRtImportInit subgraph_name=subgraph_11
Layer 0, subgraph id subgraph_11, name=/model/od_grid/Polar2VCS_0/_Patch_polar2VCS_conversion_m/Cast_1_output_0
Layer 1, subgraph id subgraph_11, name=/model/od_grid/Polar2VCS_0/_Patch_polar2VCS_conversion_m/Div_1_output_0
ERROR : ONNX RT data type : 9 not supported by TIDL
[TIDL Import] [PARSER] ERROR: Onnx RT import failed - Failed in function: TIDL_computeImportFunc -- [tidl_onnxRtImport_EP.cpp, 1433]
2025-04-22 09:55:47.259898796 [E:onnxruntime:, sequential_executor.cc:494 ExecuteKernel] Non-zero status code returned while running TIDL_11 node. Name:'TIDLExecutionProvider_TIDL_11_11' Status Message: TIDL Compute Import Failed.
Traceback (most recent call last):
  File "/home/root/scripts/run_model.py", line 101, in <module>
    result = session.run(OUTPUTS_NAME, dummy_data) #calibration_data[i])
  File "/usr/local/lib/python3.10/dist-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 200, in run
    return self._sess.run(output_names, input_feed, run_options)
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Non-zero status code returned while running TIDL_11 node. Name:'TIDLExecutionProvider_TIDL_11_11' Status Message: TIDL Compute Import Failed.

PS:我使用 J721e SDK 10.00.00.05完成了相同的操作并且模型编译成功。

您能帮我弄清楚问题是什么吗?  

适用于 J721E 的 TIDL 和 J784S4之间是否存在任何可能影响编译的已知差异?

预构建的 tidl-tools 与为 J784S40生成的 tidl-tools 之间有何区别?

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ghassen:

    有许多因素可能会影响编译。 您能否分享您的型号和配置、以便我更好地了解问题所在? 一是确保在 下一节的 DEVICE_CONFIG 中设置了正确的器件配置

    A 器件的 ID、TDA4VMID = 0、TIDL_TDA4AEP = 1、TIDL_TDA4AM = 2、TIDL_TDA4AMPlus = 3
    device_name = 2

    在本例中、 J721E 的 device_name = 1、 J784S4 的 device_name = 3

    在此处说"生成"时、您指的是什么  

    ;预构建的 tidl-tools 与为 J784S40
    生成的 tidl-tools 之间有何区别?

    您指的是图像还是 GitHub?

     

    此致、

    Christina

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Christina、

    感谢您的答复。

    您在说"此处生成"时指的是什么

    在 J784s4 RTOS SDK 中构建 c7x-mma-tidl (使用此命令  make tidl_pc_tools -j)后、我获取  c7x-mma-tidl/tidl_tools 中生成的文件。

    我将使用 SDK 中的默认配置来构建它。

    我尝试将 device_name 更 改为3 (在 c7x-mma-tidl/tidl_tools/device_config.cfg 中) 、但我仍然有相同的错误。

    您还有其他建议吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ghassen:

    如果不查看模型和配置、我不确定还有什么问题。 但是、您应该尝试在 Docker 环境中执行此操作、以便其他依赖项不会影响它。  

    此致、

    Christina