PCIe
最简单就是增大压力,PCIe时间明显变长,其他时间变化不大;
PCIe的耗时在timeline文件中的耗时就是图中的model@inputcopy。

实际速率指标:通过summary信息在pcie_*.csv文件汇总(profiling抓PCIe信息,参考:www.hiascend.com,相关变量为--sys-interconnection-profiling);比如下图中的Tx_p_avg就是input的数据,平均速率为99.628MB/s。

理论数据计算:假设是PCIe5.0版本,每条PCIe Lane的双向传输速率接近 8GB/s,一般卡是x4的接口,则理论最大速率接近32GB/s,实际根据传输的文件大小不同,速率不一样;一般认为最大能达到80%的理论带宽;实际带宽根据发送数据的shape和大小强相关。
分析方向
- 一个CPU对应多少张卡,是否可以通过numa node节点绑定等操作,减少PCIe抢占带来的耗时
- 增大batchsize,减少PCIe传输头开销的占比
- 数据格式,从float32降低到float16也能有效解决(需要关注精度是否达标,或者客户接受)
- host侧先把数据攒到一起,把小份数据传输转换为大份数据传输(GE框架已自带该功能,如果客户调用aclrt接口需要自己实现)
父主题: 不同的瓶颈点