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.

[参考译文] TDA4VM:构建 SDK 8.5以及构建 tidl 库的一些问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1219669/tda4vm-building-sdk-8-5-and-some-issues-with-building-tidl-library

器件型号:TDA4VM

您好!  

我们将尝试在最后构建 SDK 8.5  

大多数构建过程都很顺利。 我们可以执行"make sdk -j4"以及"make vision_apps -j4"

它构建了一切。  

为了构建 tidl_j721e_08_05_00_16、我安装了文档中提到的 OpenCV、protobuf、所需版本的平面增益器等先决条件。 对 TIDL_INSTALL_PATH 运行"make all"可以完全安装所有组件。 没有错误。  

但是、当我查看 ti_dl/utils/tidlModelImport/out/的 out 目录时、我只有两个文件 tidl_model_import.out 和 tidl_model_import.so  

通常在以前的版本中、  这里还存在其他可执行文件、例如 tidl_model_import_onnx.so 和 tidl_model_import_tflite.so。 我是否遗漏了一些构建指令、或者这些可执行文件是否位于其他位置?

第二个问题:

与此帖子相似->(https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1206512/tda4vm-outargs-should-be-a-user_data_object-of-name-tidl_outargs?tisearch=e2e-sitesearch&keymatch=should%20be%20a%20user_data_object#)

我一直在安装 edgeai-tidl-tools https://github.com/TexasInstruments/edgeai-tidl-tools
我下载了 tidl_tools.tar 文件,并将缺少的 executuables/.so 文件链接到下载的文件。  

我使用以下命令来执行安装-> source ./setup.sh --skip_arm_gcc_download

当我转到示例文件夹并尝试运行其中一个示例时、它会给出以下日志。  

python3 onnxrt_ep.py -c
可用的执行提供程序:['TIDLExecutionProvider '、'TIDLCompilationProvider '、'CPUExecutionProvider ']

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


Running_Model:cl-ort-resnet18-v1


在模型/../../models/public/resnet18_opset9.onnx 上运行形状推理

2023-04-24 08:44:01.035260978 [W:onnxruntime:,graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer4.1.bn2.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035291499 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer4.1.bn1.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035299279 [W:onnxruntime:, graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer4.0.downsample.1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035305578 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer4.0.bn2.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035311571 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer3.1.bn1.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035317995 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer1.1.bn1.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035323983 [W:onnxruntime:,graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer1.0.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035329499 [W:onnxruntime:,graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer4.0.bn1.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035334867 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer3.0.bn2.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035340385 [W:onnxruntime:, graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer3.0.bn1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035346011 [W:onnxruntime:、graph.cc:3106 bnUnusedInitializers] Removing initializer 'Clean1.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035351654 [W:onnxruntime:,graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer1.0.bn1.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035356974 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer2.0.bn1.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035362759 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer1.1.bn2.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035368214 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer2.0.bn2.num_Clean_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035373729 [W:onnxruntime:, graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer2.0.downsample.1.num_batchs_tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035379597 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer2.1.bn1.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035385560 [W:onnxruntime:、graph.cc:3106 batches UnusedInitializers] Removing initializer 'layer2.1.bn2.num_Clean_Tracked'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035391203 [W:onnxruntime:, graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer3.1.bn2.num_batches_traced'。 它不被任何节点使用、应从模型中删除。
2023-04-24 08:44:01.035396945 [W:onnxruntime:, graph.cc:3106 CleanUnusedInitializers] Removing initializer 'layer3.0.downsample.1.num_batchs_tracked'。 它不被任何节点使用、应从模型中删除。

创建的初步子图= 1.
最终创建的子图数为:1、-卸载节点- 52、总节点- 52

***** 帧索引1:正在运行浮点导入*****
警告:[TIDL_E_datalow_info_NULL]网络编译器返回错误或未执行、此模型只能用于 PC/主机仿真模式、预计不能在目标/EVM 上运行。
**
** 1警告0错误**
**
软限制为2048
硬性限制为2048
内存:初始化... !!!
内存:初始化... 完成!!!
0.0s:vx_zone_init:已启用
0.7s:vx_zone_error:Enabled
0.10s:vx_zone_warning:已启用
0.1162s:vx_zone_init:[tivxInit:184]初始化已完成!!
0.27439s:vx_zone_error:[tivxTIDLValidate:193]"outArgs"应该是名称的 USER_DATA_OBSOLETE 对象:
TIDL_outArgs 的代码
0.27949s:vx_zone_error:[ownGraphNodeKernelValidate:531]节点内核验证在索引0处的内核 com.ti.tidl:1:1失败
0.27951s:vx_zone_error:[vxVerifyGraph:191]节点内核验证失败
0.27953s:vx_zone_error:[vxVerifyGraph:2109] Graph verify failed.(0.27953s:vx_zone_error:[vxVerifyGraph:2109]图验证失败。
TIDL_RT_OVX:错误:正在验证 TIDL 图形... 失败!!!
TIDL_RT_OVX:错误:验证 OpenVX 图形失败
0.28502:vx_zone_error:[tivxTIDLValidate:193]"outArgs"应该是名称的 user_data_object:
TIDL_outArgs 的代码
0.28508s:vx_zone_error:[ownGraphNodeKernelValidate:531]节点内核验证在索引0处的内核 com.ti.tidl:1:1失败
0.28510s:vx_zone_error:[vxVerifyGraph:191]节点内核验证失败
0.28511s: vx_zone_error:[vxVerifyGraph:2109] Graph verify failed.(0.28511s:vx_zone_error:[vxVerifyGraph:2109]图验证失败。
0.28533s: vx_zone_error:[ownScheduleGraphWrapper:799]图未处于需要调度的状态
0.28535s:vx_zone_error:[vxProcessGraph:734]调度图失败
0.28537s:vx_zone_error:[vxProcessGraph:739]等待图失败
错误:正在运行 TIDL 图形... 失败!!!

***** 帧索引1:运行浮点推理****
0.106875s:vx_zone_error:[tivxTIDLValidate:193]"outArgs"应该是名称的 USER_DATA_OBJECT:
TIDL_outArgs 的代码
0.106889s:vx_zone_error:[ownGraphNodeKernelValidate:531]节点内核验证在索引0处的内核 com.ti.tidl:1:1失败
0.106891s:vx_zone_error:[vxVerifyGraph:191]节点内核验证失败
0.106893s:vx_zone_error:[vxVerifyGraph:2109] Graph verify failed.(0.106893s:vx_zone_error:[vxVerifyGraph:2109]图验证失败。
0.106916s:vx_zone_error:[ownScheduleGraphWrapper:799]图未处于需要调度的状态
0.106918s:vx_zone_error:[vxProcessGraph:734]调度图失败
0.106920s:vx_zone_error:[vxProcessGraph:739]等待图失败
错误:正在运行 TIDL 图形... 失败!!!

***** 帧索引2:运行定点模式进行校准****

~~~~~μ A 在 PC 仿真模式下运行 TIDL、以收集每层的激活范围~~~~~

正在处理配置文件#0:/data/niranjan/tda4vm_envs/sdk_release_8.5/tda4vm_8_5_sd_card_env/sdk_files/ti-processor-sdk-rtos-j721e-evm-08_05_00_11/tidl_j721e_08_05_00_16/ti_dl/test/onnxrt/edgeai-tidl-tools/model-artifacts/cl-ort-resnet18-v1/tempDir/191_tidl_io_.qunat_stats_config.txt
---------------- TIDL 进程,带有 REF_only 流程-------------------------------------------------------

# 0。 .. T 3929.57… ... ... … ...
# 1 . .. T 3963.86 ... ... … ...
~~~~~μ A 在 PC 仿真模式下运行 TIDL、以收集每层的激活范围~~~~~

正在处理配置文件#0:/data/niranjan/tda4vm_envs/sdk_release_8.5/tda4vm_8_5_sd_card_env/sdk_files/ti-processor-sdk-rtos-j721e-evm-08_05_00_11/tidl_j721e_08_05_00_16/ti_dl/test/onnxrt/edgeai-tidl-tools/model-artifacts/cl-ort-resnet18-v1/tempDir/191_tidl_io_.qunat_stats_config.txt
---------------- TIDL 进程,带有 REF_only 流程-------------------------------------------------------

# 0。 .. T 4369.02… ... ... … ...
# 1 . .. T 4356.36… ... ... … ...


** 校准迭代次数0已完成


---------------- 网络编译器跟踪-------------------------------------------------------
成功分配内存
**
**所有型号检查均已通过**
**

Completed_Model : 1, Name : cl-ort-resnet18-v1,总时间:-3746935235371.39,卸载时间: 0.08 , DDR RW MBs : 0,输出文件: py_out_cl-ort-resnet18-v1_ADE_val_00001801.jpg


内存:Deinit ... !!!
内存:alloc:7个48301252字节的 alloc
Mem: free's : 7 free's of 48301252 bytes.
内存:open's:0个字节的分配数
内存:Deinit ... 完成!!!

我认为问题在于  TIvxTIDL 验证。 它可能必须与 RT 库执行一些操作。 或者、也许我为它配置了错误的方式? 对此、您有什么建议吗? 调用用于 SDK 8.0的推理同样如此。 因此、我想这不会造成任何误差是合理的。  

您可以回答上面的两个问题吗?

谢谢你

Niranjan

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

    嗨、Niranjan:

    问题1)根据我们的文档:  

    TI 深度学习产品用户指南:构建说明

    将其设置为 TIDL_BUILD_TFLITE_import_LIB=1

    将其设置为 TIDL_BUILD_ONNX_IMPORT_LIB=1

    将其设置为 TIDL_BUILD_RELAY_IMPORT_LIB=1

    但是、这些文件应位于 tidl_j7xxx/ti_dl/utils/tidlModelImport/Out 以及开箱即用软件包中(可能您清理了吗?)

    问题2)您尝试使用的是哪个标签? 如果不同、可以尝试使用 PSDK8.6标签吗?

    edgeai-tidl-tools/version_compatibility_table.md 位于主 TexasInstruments/edgeai-tidl-tools GitHub 上 ··

    谢谢!

    Paula.

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

    您好、Paula、  

    来解决问题1。 谢谢您的解决方案修复了它。  

    问题2的解决方案。 我做了一个源代码./ setup.sh -- skip_cpp_builds。 它解决了问题。 我再也不知道推理失败的问题了。 谢谢你的帮助,我们的问题。  

x 出现错误。请重试或与管理员联系。