Other Parts Discussed in Thread: TDA4VM
器件型号: TDA4VM
大家好!
我将为 TDA4VM 板试用 TIDL 自动混合精密算法。 我使用的是 TI 提供的 EdgeAI TIDL 工具版本 10_01_04_00 cl-ort-resnet18-v1 使用的模型 MIXED_PRECISION_FACTOR 参数设置为 1.3(与 8 位推理相比、延迟可以增加 30%)。 但是、该算法在量化过程中失败、并存在以下误差:
----- 在浮动模式下运行校准以收集张量统计量-----
分段故障(核心转储)
[TIDL Import] 错误:运行校准通过失败、系统命令返回错误:35584 -[tidl_import_core.cpp、678]
[TIDL Import] 错误:运行校准失败 — 函数中失败:tidlRunQuantStatsTool --[tidl_import_core.cpp、1746]
[TIDL Import]【量化】错误: — 函数中失败: TIDL_quantStatsFixedOrFloat --[tidl_import_quantize.cpp、3969]
[TIDL Import] 错误: — 函数中失败: TIDL_executeAutomatedMixedPrecision --[tidl_import_core.cpp、4037]
[TIDL Import] 错误: — 函数中失败: TIDL_import_backend --[tidl_import_core.cpp、4419]
[TIDL Import] 错误: — 函数中失败: TIDL_runtimesPostProcessNet --[tidl_runtims_import_common.cpp、1414]
[TIDL Import]【解析器】错误: — 函数中失败: TIDL_subgraphImport --[tidl_onnxRtImport_EP.cpp、1737]
[TIDL Import]【解析器】错误: — 函数中失败: TIDL_computeInvokeFunc --[tidl_onnxRtImport_EP.cpp、2511]
我将问题追溯到哪里 PC_DSP_TEST_dl_algo.out 调用该工具来收集模型量化的统计信息。 该工具在 c7x-mma-tidl/ti_dl/algo/tidl_alg.c 中调用函数 getLayerIdToExecute () 后遇到分段故障 src 此函数返回 超出边界的层 Id、因此随后访问了无效数据。 我怀疑,网络二进制文件,这是由该工具使用,以某种方式被损坏,但我不知道在哪里和为什么。 棘手的一点是、这是一种随机行为、因此有时算法运行时没有出现问题。 我尝试了其他(客户特定)车型、并观察到相同的行为、因此我认为这不是该车型的问题。
我正在使用 EdgeAI TIDL 工具文档中建议的 Docker 环境、因此我可以排除潜在的 I 环境问题。
是否有人观察到了类似的行为、您是否知道如何解决?
注意: 我还尝试在较新的 EdgeAI TIDL 工具版本 (11_01_06_00) 上运行模型质量化、但问题是相同的。
此致、
Mladen