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.

[参考译文] TDA4VH-Q1:EDGE-AI-TOOLS |模型推理误差

Guru**** 2563960 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1570411/tda4vh-q1-edge-ai-tools-model-inference-errors

器件型号:TDA4VH-Q1
Thread 中讨论的其他器件:TDA4VH

工具/软件:

您好团队:  

我们已经完成了模型编译、在尝试在 TDA4VH 平台上进行模型推理时、收到以下错误

Root@j784s4-EVM:/opt/edgeai-tidl-tools ./bin/Release/ort_main -f model-artifacs/cl-ort-resnet18-v1/artifacts -I test_data/airshow.jpg -a 1

*** 显示运行配置:启动*****
详细级别设置为:3.
加速模式设置为:1.
器件存储器设置为:1.
循环计数设置为:1.
模型路径设置为:
模型工件路径设置为:model-artifacts/cl-ort-resnet18-v1/artifacts
映像路径设置为:test_data/airshow.jpg
DEVICE_TYPE 设置为:CPU
labels path 设置为:test_data/labels.txt
线程数设置为:4
结果数量设置为:5
预热照射行程数量设置为:2.

*** 显示运行配置:结束*****
libtidl_onnxrt_EP 加载了 0x3ea086f0
抛出“ORT::exception“实例后调用的终止
what():/root/onnxruntime/onnxruntime/core/providers/tidl/tidl_execution_provider.cc :94 onnxruntime ::TidlExecutionProvider::TidlExecutionProvider(const onnxruntime::TidlExecutionProviderInfo&) status = true 为 false。

已中止(核心已转储)

我们也尝试使用 python、它会生成以下错误

root@j784s4-evm:/opt/edgeai-tidl-tools/examples/osrt_python/ort python3 onnxrt_ep.py
可用的执行提供程序:['TIDLExecutionProvider '、'TIDLCompilationProvider '、'CPUExecutionProvider ']


运行 1 个模型-['cl-ort-resnet18-v1_low_delay']


Running_Model:cl-ort-resnet18-v1_low_delay

已加载 libtidl_onnxrt_EP 0x332bea60
创建的子图的最终数量为:1、-卸载节点 — 52,节点总数 — 52
应用程序:初始化...!!
4194.801576 s:内存:初始化...!!
4194.801625 s:MEM:初始化的 DMA 堆 (FD=5)!!!
4194.801765 s:内存:初始化...完成!!!
4194.801785 s:ipc: init ...!!
4194.833762 s : ipc:初始化...完成!!
remote_service:初始化...!!</s>!
remote_service:初始化...完成!!!
4194.841211 s:GTC 频率= 200MHz
应用程序:初始化...完成!!
4194.841307 s:vx_zone_info:全局启用 vx_zone_error
4194.841317 s:vx_zone_info:全局启用 vx_zone_warning
4194.841324 s:vx_zone_info:全局启用 vx_zone_info
4194.841883 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-0
4194.842005 s:vx_zone_info:[tivxPlatformCreateTargetId:169]已添加目标 MPU-1
4194.842104 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-2
4194.842223 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-3
4194.842239 s:vx_zone_info:[tivxInitLocal:202]初始化完成!!!
4194.842256 s:vx_zone_info:全局禁用 vx_zone_info
4194.865933 s:vx_zone_error:[ownContextSendCmd:1001]命令 ack 消息返回失败 cmd_status:–1
4194.865979 s:vx_zone_error:[ownNodeKernelInit:704]对于节点 node_136、目标内核 TIVx_CMD_NODE_CREATE 失败
4194.865988 s:vx_zone_error:[ownNodeKernelInit:705]请确保已为此内核注册目标回调
4194.866003 s:vx_zone_error:[ownNodeKernelInit:706]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
4194.866016 s:vx_zone_error:[ownGraphNodeKernelInit:793]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
4194.866056 s:vx_zone_error:[ graph_116 ]节点内核初始化失败
4194.866066 s:vx_zone_error:[ graph_116 ]图形验证失败
4194.866196 s:vx_zone_error:[ownContextSendCmd:1001]返回命令 ack 消息失败 cmd_status:–1
4194.866215 s:vx_zone_error:[ownNodeKernelInit:704]对于节点 node_83、目标内核、TIVx_CMD_node_create 失败
4194.866226 s:vx_zone_error:[ownNodeKernelInit:705]请确保已为此内核注册目标回调
4194.866236 s:vx_zone_error:[ownNodeKernelInit:706]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
4194.866248 s:vx_zone_error:[ownGraphNodeKernelInit:793]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
4194.866261 s:vx_zone_error:[ TIDL 子图形 191 ]节点内核初始化失败
4194.866270 s:vx_zone_error:[ TIDL 子图 191 ]图形验证失败
回溯(最近一次呼叫):
文件/opt/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py、第 602 行、在中
RUN_model (model、mIdx)
文件“run_model 中的/opt/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py、第 366 行
SESS = RT.ConferenceSession(
^^^^^^^^^^^^^^^^^^^^μ s
文件“387"/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py“/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第 387 行、位于__init__
self._create_immussion_session(提供程序,提供程序选项,禁用优化器)
文件“/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第 439 行、位于_create_emption_session 中
sess.initialize_session(providers、provider_options、disabled_optimizers)
onnxruntime.capi.onnxruntime_pybind11_state.Fail:[ONNXRuntimeError]: 1 :失败:创建状态函数失败。 返回值:–1

 

如何使用 TIDLExecutionProvider 运行模型?

此致

Reshma

 

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

    尊敬的 Reshma:  

    您能分享一下您的 SDK 版本、模型配置、工件和模型、以便我在我们这边进行调查并运行吗?  

    此致、

    Christina

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

    尊敬的 Chrstina:

    我们使用的是 SDK 版本 11_01_06_00。 通过模型编译生成的 PFB 版本摘要

    ============================= 【版本摘要】=============================

    ----------------------------------------------------------------------------------------
    | TIDL 工具版本| 11_01_06_00 |
    ----------------------------------------------------------------------------------------
    | C7x 固件版本| 11_01_06_00 |
    ----------------------------------------------------------------------------------------
    |运行时版本| 1.15.0 |
    ----------------------------------------------------------------------------------------
    |型号选项版本|9|
    ----------------------------------------------------------------------------------------

    通过直接从 GitHub (GitHub - TexasInstruments/edgeai-tidl-tools、地址:11_01_06_00) 克隆、对此模型进行编译和运行、无需任何修改。 模型配置与 edgeai-tidl-tools/examples/osrt_python/model_configs.py 中的相同、位于 11_01_06_00·TexasInstruments/edgeai-tidl-tools·GitHub 。

    所需的目录和模型工件被复制到目标器件中、并使用 edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py(位于 11_01_06_00·TexasInstruments/edgeai-tidl-tools GitHub· 脚本)来运行示例。 在下面再次粘贴输出

    Root@j784s4-EVM:/opt/reshma/pre-compiled/examples/osrt_python/ort python3 onnxrt_ep.py -m cl-ort-resnet18-v1_low_delay
    可用的执行提供程序:['TIDLExecutionProvider '、'TIDLCompilationProvider '、'CPUExecutionProvider ']

    运行 1 个模型-['cl-ort-resnet18-v1_low_delay']


    Running_Model:cl-ort-resnet18-v1_low_delay

    libtidl_onnxrt_EP 已加载 0x1b279e20
    创建的子图的最终数量为:1、-卸载节点 — 52,节点总数 — 52
    应用程序:初始化...!!
    4862.965412 s:内存:初始化...!!
    4862.965465 s:MEM:初始化的 DMA 堆 (FD=5)!!
    4862.965622 s:内存:初始化...完成!!
    4862.965643 s:ipc: init ...!!</s>!
    4862.993986 s:ipc:初始化...完成!!!
    remote_service:初始化...!!</s>!
    remote_service:初始化...完成!!!
    4863.003184 s:GTC 频率= 200MHz
    应用程序:初始化...完成!!
    4863.005382 s:vx_zone_info:全局启用 vx_zone_error
    4863.005401 s:vx_zone_info:全局启用 vx_zone_warning
    4863.005411 s:vx_zone_info:全局启用 vx_zone_info
    4863.008029 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-0
    4863.008143 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-1
    4863.008235 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-2
    4863.008322 s:vx_zone_info:[tivxPlatformCreateTargetId:169]添加了目标 MPU-3
    4863.008333 s:vx_zone_info:[tivxInitLocal:202]初始化完成!!!
    4863.008347 s:vx_zone_info:全局禁用 vx_zone_info
    4863.040473 s:vx_zone_error:[ownContextSendCmd:1001]命令确认消息返回失败 cmd_status:–1
    4863.040524 s:vx_zone_error:[ownNodeKernelInit:704]对于节点 node_136、目标内核 TIVx_CMD_NODE_CREATE 失败
    4863.040536 s:vx_zone_error:[ownNodeKernelInit:705]请确保已为此内核注册目标回调
    4863.040546 s:vx_zone_error:[ownNodeKernelInit:706]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
    4863.040557 s:vx_zone_error:[ownGraphNodeKernelInit:793]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
    4863.040591 s:vx_zone_error:[ graph_116 ]节点内核初始化失败
    4863.040600 s:vx_zone_error:[ graph_116 ]图形验证失败
    4863.040718 s:vx_zone_error:[ownContextSendCmd:1001]返回命令 ack 消息 failure cmd_status:–1
    4863.040734 s:vx_zone_error:[ownNodeKernelInit:704]对于节点 node_83、目标内核、TIVX_CMD_NODE_CREATE 失败
    4863.040743 s:vx_zone_error:[ownNodeKernelInit:705]请确保已为此内核注册目标回调
    4863.040751 s:vx_zone_error:[ownNodeKernelInit:706]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
    4863.040760 s:vx_zone_error:[ownGraphNodeKernelInit:793]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
    4863.040772 s:vx_zone_error:[ TIDL 子图形 191 ]节点内核初始化失败
    4863.040780 s:vx_zone_error:[ TIDL 子图 191 ]图形验证失败
    回溯(最近一次呼叫):
    文件“/opt/reshma/pre-compiled/examples/osrt_python/ort/onnxrt_ep.py、第 550 行、在中
    RUN_model (model、mIdx)
    文件/opt/reshma/pre-compiled/examples/osrt_python/ort/onnxrt_ep.py、第 348 行、位于 run_model 中
    SESS = RT.ConferenceSession(
    ^^^^^^^^^^^^^^^^^^^^μ s
    文件“387"/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py“/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第 387 行、位于__init__
    self._create_immussion_session(提供程序,提供程序选项,禁用优化器)
    文件“/usr/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py、第 439 行、位于_create_emption_session 中
    sess.initialize_session(providers、provider_options、disabled_optimizers)
    onnxruntime.capi.onnxruntime_pybind11_state.Fail:[ONNXRuntimeError]: 1 :失败:创建状态函数失败。 返回值:–1
    root@j784s4-evm:/opt/reshma/pre-compiled/examples/osrt_python/ort

    此致
    Reshma

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

    尊敬的 Reshma:

    您是否同时复制了模型工件目录和模型目录? 我尝试按照 Github 上的说明在我这边运行它: https://github.com/TexasInstruments/edgeai-tidl-tools/tree/master?tab=readme-ov-file#benchmark-on-ti-soc 、并能够在器件上完成推理、如下所示

     

    root@j784s4-evm:/opt/edgeai-tidl-tools/examples/osrt_python/ort#
    t_ep.py -m cl-ort-resnet18-v1_low_latencyamples/osrt_python/ort# python3 ./onnxrt
    Available execution providers :  ['TIDLExecutionProvider', 'TIDLCompilationProvider', 'CPUExecutionProvider']
    
    Running 1 Models - ['cl-ort-resnet18-v1_low_latency']
    
    
    Running_Model :  cl-ort-resnet18-v1_low_latency
    
    libtidl_onnxrt_EP loaded 0x3b6e9470
    Final number of subgraphs created are : 1, - Offloaded Nodes - 52, Total Nodes - 52
    APP: Init ... !!!
      1951.309448 s: MEM: Init ... !!!
      1951.309503 s: MEM: Initialized DMA HEAP (fd=5) !!!
      1951.309635 s: MEM: Init ... Done !!!
      1951.309654 s: IPC: Init ... !!!
      1951.336821 s: IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
      1951.344748 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
      1951.344846 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR
      1951.344856 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING
      1951.344865 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO
      1951.345502 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-0
      1951.345633 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-1
      1951.345733 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-2
      1951.345833 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-3
      1951.345847 s:  VX_ZONE_INFO: [tivxInitLocal:202] Initialization Done !!!
      1951.345860 s:  VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO
    
     ,  0  23.846985  warplane, military plane ,,  1  22.416164  aircraft carrier, carrier, flattop, attack aircraft carrier ,,  2  19.077587  projectile, missile ,,  3  18.600647  missile ,,  4  16.215950  airliner ,
    
    Saving image to  ../../../output_images/
    
    Saving output tensor to  ../../../output_binaries/
    
    
    Completed_Model :     1, Name : cl-ort-resnet18-v1_low_latency                    , Total time :       3.14, Offload Time :       2.75 , DDR RW MBs : 48, Output Image File : py_out_cl-ort-resnet18-v1_low_latency_airshow.jpg, Output Bin File : py_out_cl-ort-resnet18-v1_low_latency_airshow.bin
    
    
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
      1952.573432 s: IPC: Deinit ... !!!
      1952.574433 s: IPC: DeInit ... Done !!!
      1952.574458 s: MEM: Deinit ... !!!
      1952.574538 s: DDR_SHARED_MEM: Alloc's: 26 alloc's of 17457248 bytes
      1952.574548 s: DDR_SHARED_MEM: Free's : 26 free's  of 17457248 bytes
      1952.574556 s: DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes
      1952.574568 s: MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    

    我还建议您首先在这里的 Docker 说明下创建工件: https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/docs/advanced_setup.md#docker-based-setup-for-x86_pc

    如果这一点、再加上干净的构建没有任何帮助、请与我分享您的模型工件。

    此致、

    Christina

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

    尊敬的 Christina:

    我使用了 SDK-J784S4 软件开发套件 (PROCESSOR-SDK-RTOS)| TI.com (11.00.00.06 版本)中的预编译 SDK 进行刷写。 对于 edgeai-tools、使用以下版本的 GitHub - TexasInstruments/edgeai-tidl-tools、地址为 11_01_06_00。 我已在 Docker 环境中完成设置、并能够在 Docker 环境中成功编译和运行模型推理。  

    之后、我将模型和工件复制到 EVM 中、并尝试运行、得到相同的错误。 请告诉我这里缺少什么。 由于它的限制、我无法上传工件。 为此我们深表歉意。 但我已经按照 GitHub 页面中给出的确切步骤进行了操作。

    您能告诉我您用来测试它的 SDK 版本和 edgeai-tidl-tools 版本吗?

    此致、

    Reshma

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

    加上上面的内容、

    我们已经尝试使用 edgeai-tidl-tools 版本 11_00_08_00、其中 c7x 版本也设置为 11_00_08_00。 但结果是相同的。 甚至我已经尝试通过在 主 TexasInstruments/edgeai-tidl-tools/docs/update_target.md 中执行 edgeai-tidl-tools 来更新目标上的固件··

    请帮助我解决此问题。

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

    尊敬的 Reshma:

    [引述 userid=“593468" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1570411/tda4vh-q1-edge-ai-tools-model-inference-errors/6056897 ] (11.00.00.06 版本)进行刷写。 对于 edgeai-tools、使用以下版本的 GitHub - TexasInstruments/edgeai-tidl-tools、网址为 11_01_06_00

    对于 11.00.00.06 映像、edgeai-tidl-tools 版本需要为 11.00.06.00、或按照您在 Github 上看到的说明更新固件后的版本需要为 11.00.08.00。

    Edgeai-tidl-tools 版本 11.01.06.00 仅适用于  Processor SDK Linux 11.01.00.03 或  Processor SDK RTOS 11.01.00.04

    您之前提到过您使用的是 SDK 11.01.06.00、但该版本没有 SDK。 只是想澄清这一点、因为 edgeai-tidl-tools 的版本需要与相应的版本配对。  https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/docs/version_compatibility_table.md

    能否说明您为 11.00.08.00 使用的预构建映像(版本)?

    此致、

    Christina