器件型号: J784S4XEVM
您好、
我正在分析使用 TIDL 编译的几个 ONNX 模型、并对延迟、编译器和一些运行时行为有一些问题。 我将附加分层性能分析 Excel 文件以供参考。
1 - YOLOX 与 AODNet:延迟与 GMAC 不成比例
我比较了 YOLOX 和 AODNet:
YOLOX:~13.31GMAC、122 层、总层延迟~18.6ms
AODNet:~0.58 GMAC、17 层、总层延迟~10.8ms
YOLOX 的 GMAC×高×μ s、但延迟仅高 1.7 μ s。 AODNet 是一个全卷积网络,它只使用 5 个卷积层加上凹凸,输入分辨率为 640×512,没有池化层。
为什么 AODNet 由于其 GMAC 更低且层更少而不显著加快?
AODNet 是否受到内存带宽的限制、或者是否有诸如 DMA、平铺效率低下等开销在这种拓扑中占主导地位?
2- Concat/EltWise 延迟高于预期
在 ESTNORNNet 中、ConcatLayer 和 EltWiseLayer 与 Conv 相比表现出非常低的 GMAC、但它们测得的延迟很高、尤其是在第 26-27–28 层附近。
在 TIDL 上、Concat/EltWise 可能比 Conv 慢的常见原因是什么?
如果存在导致这些操作在较慢路径上运行的已知模式、我应该在编译日志中查找什么?
3:转置卷积与标准卷积性能
如果内核大小、跨度等等相等、TIDL 是否执行与 Conv 具有类似性能的 ConvTranspose、或者由于实施差异或与硬件的映射不同、ConvTranspose 通常会变慢?
BatchNorm 层在 TIDL 编译后出现
我的原始网络不包含 BatchNorm 图层,但编译后我看到插入了 BN 类图层。 TIDL 为什么添加这些滤波器?
5-不同的培训框架
您建议使用 edgeai-tensorlab (https://github.com/TexasInstruments/edgeai-tensorlab)进行培训/导出、还是可以使用我自己的培训框架和 ONNX 导出器?
如果使用我自己的管道:
estnornn_cycle_report.xlsxyolox_model_report.xlsxaodnet_model_report.xlsxaodnet_cycle_report.xlsxyolox_cycle_report.xlsxestnornn_model_report.xlsx 哪些导出器设置或 ONNX 约束对于实现最佳 TIDL 性能(OPSET,支持的操作,避免动态形状,凹痕模式等)最重要?
是否有任何关于图形模式的指导来帮助 TIDL 优化和避免 CPU 回退?
感谢您的支持。
此致