工具/软件:
TDA4 能够支持 TIDL 用例应用、
1.我们是否可以控制更改/调度 在“C7x"上“上运行 用于 MMA 处理的任务
2.如果是,请指出 SDK 下的源代码文件和相关文档(如果有)
3.当我 为 SDK 中包含的 YUV 文件运行 app_tidl_od 时、 我会观察到检测时序在 100ms 至 500ms 或更长时间的范围内。 根据 TI、假设使用 SDK 中提供的 tidl_od 模型在 FCW(正向碰撞警告)下使用、检测车辆所需的平均时间是多少。
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.
工具/软件:
TDA4 能够支持 TIDL 用例应用、
1.我们是否可以控制更改/调度 在“C7x"上“上运行 用于 MMA 处理的任务
2.如果是,请指出 SDK 下的源代码文件和相关文档(如果有)
3.当我 为 SDK 中包含的 YUV 文件运行 app_tidl_od 时、 我会观察到检测时序在 100ms 至 500ms 或更长时间的范围内。 根据 TI、假设使用 SDK 中提供的 tidl_od 模型在 FCW(正向碰撞警告)下使用、检测车辆所需的平均时间是多少。
尊敬的 Komal:
1. 最好让 TIDL 处理 C7x/MMA 调度。 可以更改此值、但我们不建议也不支持。
2.我们不建议这样做,所以文档非常有限,我们只以二进制形式发布 MMA(无源代码)
3.这一切取决于设备上运行的模型、设备和其他进程。 Model Zoo 中有一组已发布的基准测试可供参考。
https://github.com/TexasInstruments/edgeai-tensorlab/tree/main/edgeai-modelzoo
此致、
Chris
尊敬的 Komal:
我无法具体评论您的模型是如何构建的。 但是、在 A 核心上运行某些层 的做法是正确的、这会导致速度变慢、上下文切换确实会产生一定的成本。 您可以在配置中使用“拒绝列表“将上下文切换的数量降至最低。 只需 在此列表的 A 核心上设置一个图层块、而不是单独的不同图层。 存储器部分不会像转换共享公共存储器那样成为大问题、因此不同的内核只是获取一个指向存储器的指针、从而更大限度减少存储器副本。
这里的关键是策略性地使用拒绝列表来最大程度地减少模型和上下文切换的碎片。
此致、
Chris
尊敬的 Komal:
可用存储器取决于器件、每个器件型号的存储器会有所不同。 请查看应用中器件的 TRM、以获取可用存储器。 对于 deny_list、这里是 OSRT 指令。 您可以拒绝一类图层、比如 MaxPool、所有的 MaxPool 图层都将在 ARM 上运行。 也可以特定于特定层、例如/model/backbone/some_other_path_element/MaxPool_0、只有 MaxPool 层将在 ARM 内核上运行。
以下选项可强制将特定层卸载到 TIDL DSP/ARM。 这些操作既可用于调试目的、也可在需要时通过创建理想仪表组来提高性能
| Name | 说明 | 支持的值/范围 | 选项类型 | 其他详细信息 |
|---|---|---|---|---|
| deny_list:layer_type | 此选项强制禁止使用层类型将特定运算符卸载到 TIDL DSP | 逗号分隔字符串 | 模型编译 | 此选项当前不适用于 TVM、请参阅 deny_list 选项。 |
| deny_list:layer_name | 此选项强制禁止使用层名称将特定运算符卸载到 TIDL DSP | 逗号分隔字符串 | 模型编译 | 此选项当前不适用于 TVM、请参阅 deny_list 选项 |
| deny_list | 此选项提供的功能与 deny_list:layer_type 相同 | 逗号分隔字符串 | 模型编译 | 为了向后兼容性而进行维护、不建议用于 Tflite/ONNX 运行时 |
| allow_list:layer_name | 此选项强制支持使用层名称将特定运算符卸载到 TIDL DSP | 逗号分隔字符串 | 模型编译 | 只有指定的图层/图层被加速、其他图层被委派给 ARM。 Tflite/ONNX 运行时处于实验阶段、目前不适用于 TVM |
注意:不能同时启用 allow_list 和 deny_list 选项
使用示例:
指定 layer_type 作为选项的一部分:
指定 layer_name 作为选项的一部分:
此致、
Chris