Other Parts Discussed in Thread: SK-TDA4VM
器件型号: SK-TDA4VM
您好、
我在具有 TIDL 工具标签 11.01.05.00 的 SDK 版本 11.00.08 上移植了适用于 SK-TDA4VM 的 YOLOPX。
该模型确实会运行、但由于代码位于 python 中、因此速度非常慢。
我尝试使用 Optiflow 框架运行该模型、方法是向/opt/edgeai-dl-inferer 添加代码、并执行此 E2E 链接中提到的步骤。
这种添加代码的过程本身是成功的,这意味着我可以看到我的模型正在运行(或至少正在初始化),并可以看到我的后处理构造函数被调用。 然而,我经常得到一个分段错误,有时甚至在调用构造函数之前。
我将使用终端输出附加文件、其中包含所述的分段故障、并在 gdb 中运行反向跟踪。
此外、当代码运行时没有任何分段故障、我还有一个带有输出的文件。
我需要以下方面的帮助:
- 如何激活日志记录级别、而不是 DL_SUMMEM_LOG_ERROR? 如何获取调试信息? /opt/edgeai-gst-apps/configs/yolopx.yaml 中对以下内容进行了更改
- 我尝试将调试设置为掩码 7、但没有生成调试打印件或目录。
- 更改 LOG_LEVEL 似乎也没有任何区别
- 您可以在附加的文件中看到、通过模型进行的首次迭代(在 GStreamer 流水线打印部分的上方)对不同的模型输出使用不同的地址。 但在这 4 个输出之后使用相同的地址、另外 2 个输出使用不同的地址。
- 这是否意味着前 4 个输出一个接一个地被覆盖? 即检测正在被 stride8 覆盖、以此类推?
- 分段和通道之间的地址差远小于这些输出的大小、这意味着即使这些输出被覆盖。
- 我需要弄清楚缓冲区分配实际上在哪里被调用、但似乎在某种程度上没有正确分配单个存储器的输出数量。
- 如何查看调用 DL 函数的代码被调用的位置? SDK 的其他部分是否可以在与 OptiFlow 一起运行时看到实际创建的馈送者和后处理器实例?
- 我在/opt/edgeai-dl-inferer/tests 下找到了一些代码、说明了如何调用一切、但位于 bin/Release 下的 app_dl_inferer_test 不起作用、因为它会引发一些存储器分配错误。 我甚至使用 edgeai-tidl-tools 示例中提供的 Sematic 分段模型来尝试此操作、以确保错误不是因为我的模型导致的。 还会附加一个具有反向跟踪的文件。
e2e.ti.com/.../post_5F00_process_5F00_yolopx.cpp
e2e.ti.com/.../post_5F00_process_5F00_yolopx.h
由于尺寸限制、我无法上传模型工件和相关 YAML 文件。 请告诉我如何与您分享这些信息,如果您需要任何其他信息。此致,
Charanjit Singh
编辑:添加的文件。 /opt/edgeai-dl-inferer/post_process/include 和 src 下