关于模型推理DDR疑问

1.芯片型号:J5

2.天工开物开发包OpenExplorer版本:J5_OE_1.1.49

3.问题定位:模型转换

4.问题具体描述:在示例落地的时候,发生了卡IO情况。阅读地平线手册发现,模型转换时可将优化项设置为bandwidth,以降低DDR带宽需求。模型转换结果显示带宽要求降低约30%(如下图),单帧推理耗时增加3ms。理论上来说,AI模块降低了带宽使用,其他模块耗时应该下降,可能可以弥补AI模块增加的3ms耗时。但是实际发现,其他模块耗时并没有降低,整个pipeline耗时增加了约3ms。请问这个有什么排查方向与建议吗?

请问你这里提到的“其他模块”,具体是指哪些呢?像前后处理这种,和模型推理不是并行的,所以不会收模型带宽的影响。

融合等其他与ai并行的模块

出现这种情况,可能是因为之前DDR带宽瓶颈的时候,是模型的瓶颈,不是并行模块的瓶颈,所以在DDR带宽有余裕的时候,并行模块的耗时没有变化。

您好,想要再深入咨询讨论一下。首先,模型输入是10fps的点云,ai工具链显示读写带宽一帧是70M,那模型推理理论上带宽占用应该是700M/s。单通道16GBDDR4带宽应该不会被占满(J5上面的系统似乎看不到DDR的主频等相关信息,计算不出理论带宽)。其次,如果是AI导致的IO性能瓶颈,那降低了AI的带宽需求,其他模块的等待时间应该是会变少的吧?还想要再咨询一下:J5系统有带宽优先级的说法吗?为啥只启动AI模块与启动全部模块的情况下,模型推理耗时一致呢?

说明卡IO卡的是模型推理那边的IO,不是其他模块的IO。另外,模型编译的时候也可以设置compile_mode=balance,再设置balance_factor=0-100,数值越小表示越靠近带宽优化,可以多次尝试以找到最佳的平衡点。

我们目前使用的是天准的板子,标品。他们提供的读写测试显示DDR带宽为14GB/s,但是模型推理的时候带宽仅仅使用700M/s,为什么推理的时候会卡IO呢?是不是AI推理的时候带宽是"专享"的呢(推理的时候其他IO需求一直在等待)?

第一张图中红色+蓝色的值已经超过编译器给模型分配的读写带宽上限了

模型推理带宽不是700M/s,你看图中,红色加蓝色已经接近10G/s了

图中显示的接近10G,应该是FPS跑满的吧?我们实际上点云输入是10FPS/s,平均每帧70M,每秒700M。

我理解了,就是说在ai推理的15ms内,带宽为10G。谢谢谢谢