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:目标平台上的 TIDL 错误"此器件不支持输出转换"

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1395859/tda4vm-tidl-error-on-target-platform-output-transpose-is-not-supported-on-this-device

器件型号:TDA4VM
主题中讨论的其他器件: TDA4VL、TDA4VH

工具与软件:

您好、TI 团队:

我们使用 edgeAI (9.2.7.0)进行 onnx 模型编译、并使用 PSDK9.2在 TDA4VM 上执行(使用 python 脚本来进行推理、类似于 edgeAI)。

对 edgeAI 编译后、我们将模型工件复制到目标并执行推理。 在使用 edgeAI 的 x86上运行推理时、我们没有看到任何问题

但是在目标上看到以下错误-

[C7x_1 ]   689.105965 s:此设备不支持输出转置。
[C7x_1 ]   689.106015 s:Workloadcont拉 Exec_Init:initParams->linkInitParams[linkIdx].initFuncPtr 失败、链接 ID 30735860640

问题在于 Softmax(58)或 Innerproduct(59)。 有关流程的更多详细信息、请参阅 SVG 文件。
请参阅以下 SVG 文件。 (使用前删除.txt)和附加的快照-

e2e.ti.com/.../subgraph_5F00_0_5F00_tidl_5F00_net.bin.svg.txt


问题可能是由于 softmax 和 Innerproduct 的输出格式不同所致。

如果需要、模型、输入和脚本将分别共享。


请查看随附的编译器(x86)和推理日志(tda4x)
_c -->编译器、_tda -->目标

e2e.ti.com/.../2_5F00_seg1_5F00_default_5F00_929_5F00_EA_5F00_L2_5F00_C3_5F00_c.txte2e.ti.com/.../2_5F00_seg1_5F00_default_5F00_929_5F00_EA_5F00_L2_5F00_C3_5F00_tda.txt

此致

Gajanan

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

    大家好、Gajanan、

       您能否确认您将最终演示用于哪个器件? TDA4VM 不支持 Softmax 的某些特定配置(它应与 TDA4VL/TDA4VH 配合使用)。 如果它适用于 TDA4VM、则对网络进行的以下修改应该适用于 您正在使用的发行版:  

    1) 1)在 softmax 之前添加转置层

    2)将 softmax 层的轴线更改为增加而不是增加。

    此致、

    Anshu

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

    尊敬的 Anshu:

    是的、它是 TDA4VM。 感谢快速响应。
    我们将提出建议并与您联系

    此致

    Gajanan

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

    每6/7次调用、

    TI 分享了特定于 TDA4VM 的 softmax 操作员限制、还讨论了可能的变通办法。

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

    感谢分享备选方法、我们已实施建议的修改、但仅在 onnxrt 或 delagate 模式下的最终结果存在偏差  

    我们可以提供更多关于呼叫的细节,但要让你知道,使 softmax 层的功能增加,而不是地重,使轴=2从轴=2 给我们偏离最终结果  

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

    Abhilash、

    您是否可以附加 IR 用于转置->softmax-转置用例的 Opset/Opset 表?  

    这里讨论的是版本兼容性表

    链接: https://github.com/onnx/onnx/blob/main/docs/Versioning.md

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

     

    根据您的建议使用 Softmax 前后的 Transpose 并将轴从宽度更改为高度。

    信息1 -

    有效的正轴值:

       0或-4 (批量尺寸)
       1或-3 (通道尺寸)
       2或-2 (高度尺寸) -->固定
       3或-1 -->(宽度尺寸)-->旧

    屏幕截图1 -


    当我们在 edgeAI 中为两个版本进行导入时(更改之前和之后)、我们在导入期间不会看到构建日志中的更改。

    当我们运行固定 onnx 生成的模型伪影时、我们看到同样的先前错误-

    "此设备不支持输出转置"

    我们怀疑 TI 工具在导入步骤过程中正在进行优化。 在优化过程中、它会将轴从高度更改为宽度、并移除转置。 您建议的解决方法基本上是无效的。

    有关更多详细信息、请参阅日志-

    100a_segv1.onnx -->在 softmax +转置修复之前
    102a_segv1.onnx -->修正 softmax +转置后

    e2e.ti.com/.../2_5F00_100a_5F00_default_5F00_L2_5F00_c.txte2e.ti.com/.../1_5F00_102a_5F00_default_5F00_L2_5F00_c.txt

    有关 python 脚本和 onnx 文件的更多详细信息、我们将直接通过电子邮件分享-

    我假设您将此问题列为优先事项、并回复您的反馈。

    其他信息-
    两种型号在委派模式下运行时都没有问题

    还可以从 onnxruntime 找到有关节点和轴的日志与2个模型的比较-

    e2e.ti.com/.../100a.txte2e.ti.com/.../102a.txt

    请参阅以下 SVG 文件-(使用前删除.txt)

    e2e.ti.com/.../100a_5F00_subgraph_5F00_0_5F00_tidl_5F00_net.bin.svg.txte2e.ti.com/.../102a_5F00_subgraph_5F00_0_5F00_tidl_5F00_net.bin.svg.txt

    建议有任何方法可以避免优化更改轴和移除仅用于临时实验/验证器件的转置

    此致

    Gajanan

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

    大家好、Gajanan、

    作为明天的会议准备您可以尝试几个实验吗? 我们将在通话中讨论 softmax 问题。

    1)将 Softmax 卸载到 ARM (似乎您已经尝试过)

    2)将 TopK 卸载到 ARM  

    发布这些授权您能检查您是否能够获得功能性工作模型吗? 让我们进入一个我们具有功能工作模型的阶段  

    谢谢  

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

    Pratik、您好!

    1 -我想知道为什么 softmax 实验之前发布是不工作的,并得出结论。

    2 -将 softmax 卸载到 ARM 内核-->它运行(结果还有待使用 x86 edgeAI 结果再次验证)。 请参阅以下在 tda4x 上的编译和执行

    e2e.ti.com/.../0044.2_5F00_100a_5F00_default_5F00_L2_5F00_c.txte2e.ti.com/.../6_5F00_100a_5F00_default_5F00_L2_5F00_tda.txt

    3 -观察-->在生成的 SVG 文件中、观察到的整形和数据转换运算符在其操作期间与 onnx 文件中显示的尺寸不同、并在连接到其他运算符之前更正自身。 我希望这是预期行为。

    4 -我要求您在从下面的日志中导入我们的完整模型时使用拒绝列表实验完成所有警告-

    e2e.ti.com/.../7_5F00_100_5F00_default_5F00_L2_5F00_c.txte2e.ti.com/.../7_5F00_100_5F00_default_5F00_L2_5F00_dl_5F00_softmax_5F00_topk_5F00_Add_5F00_Mul_5F00_c.txte2e.ti.com/.../7_5F00_100_5F00_default_5F00_L2_5F00_dl_5F00_softmax_5F00_Topk_5F00_c.txt

    运行完整模型时出现以下错误-

    *****  TIDL_subgraphRtInvoke Done ****  

    free():tCache 2中检测到 double free
    已中止(已转储内核)

    所有必需的详细信息均在此处通过电子邮件共享。 如果您需要更多详细信息、敬请告知-

    此致

    Gajanan

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

    每天的呼叫。

    对 lucid 执行操作

    1)共享头+尾模型文件

    2) 2)为 TOPK 创建测试用例  

    3)寻找方法,把模型分成小的

    行动

    1)试用102型号,验证 softmax 观察

    2)重新生成 seg 故障问题(lucid 共享模型)

    同意让 ARM 委派的图启动并运行、以确保功能流得到验证、然后研究可能的优化

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

    1)试用102型号,验证 softmax 观察

    已完成 RCA、并按进行跟踪

    jira.itg.ti.com/.../TIDL-4631

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

    此线程中是否有任何更新???

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

    您好!

    我们针对车道检测模型运行此模式作为参考(未优化)、并为此操作承受大量周期。 该问题是否有任何进一步的更新。 是否有可能随时获得目标的固定库?

    谢谢

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

    现在根据性能测量、这也是非常高的优先级。

    我们有两个 softmax 操作、每帧总共消耗~24ms。

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

    尊敬的 Ramesh、Deepanshu:

    感谢您的反馈、我将把这个与 TT 相关的内容传递给您。 澄清一下、当您的意思是优化和24ms 时、这是将该层委派给 A72内核时您将获得的速度?  

    此致!

    Asha

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

    在 TIDL 上但在参考代码上使用的 Asha Bhandarkarstill (未优化)

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

    尊敬的 Asha:

    我们在 C7x 参考代码上运行 Softmax、而不是在文件"tidl_softmax.c"中运行优化的代码

    - if (((commonParams->createParams->flowCtrl & TIDL_flow_CTRL_REF_ONLY)!= TIDL_flow_CTRL_REF_ONLY)&&(forceRef!= 1))
    + if (false &&((commonParams->createParams->flowCtrl & TIDL_FLOW_CTRL_REF_ONLY)!= TIDL_FLOW_CTRL_REF_ONLY)&&(forceRef!= 1))
    + TIDL_refSoftmaxProcess ()函数调用

    这会影响 C7x 性能。

    请注意-
    1 -我们不能将 softmax 委派给 A72、因为它在我们结束时不能按预期工作、并且在此阶段不会优先查看。
    2 -我们尝试了上述方法,因为我们想继续我们的开发,而不是只是被阻止。

    请提高该 TT 的优先级。

    此致

    Gajanan

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

    你有机会看看这个?

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

    大家好!

    很抱歉耽误您的时间-  

    我已经将该主题转给 Chris、告知预期的修复日期。

    此致!

    Asha

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

    在 Softmax 上被阻止、因为我们正在使用的参考代码每帧耗时12ms (12x2 =>24ms)。

    您能否分享您从开发团队获得的更新以及我们何时可能拥有补丁?

    此致、

    Ramesh

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

    大家好、Ramesh、我将于周一在 TIDL CCB 中介绍该系统。  这可能是 MMALIB 修复、但我们 需要了解转置函数为何依赖于混合符号。  我将在 CCB 之后更新该主题。

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

    TIDL 团队 将 在  2024年10月15日 上修复 MMALIB 之前执行部分仅转置修复。 TIDL 修复没有相应的 MMALIB 修复程序的缺点是会损失1位分辨率。   

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

    大家好、

    感谢您的跟进和分享详细信息。 我假设该部分转置修复是用于解析

    "Output Transpose is not supported on this device"(此设备不支持输出转置)问题??

    此致

    Gajanan

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

    大家好、Gajanan、

    是的、回答正确;这是转置修复。  对不清楚表示歉意。

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

    感谢您的确认。

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

    补丁发布的 CDDS 链接今天传递给 Bob A.。   

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

    大家好、Chris、感谢您的最新消息。 问题在 v10_0_0_8版本中得到解决。