首先可以按Profiling中的数据计算出MTE实际带宽:搬运数据量 / 对应搬运耗时,“搬运数据量”需根据实际情况确认(不包含重复搬运涉及的数据量),“搬运耗时”可通过Profiling分析导出的数据中获得。
以搬入不同的数据宽度为例,如图1 不同搬运数据量的带宽对比图所示。
当数据单次搬移(无复用)时,可以参照上述场景合理进行数据分配。
N |
MTE2 BW(TB/s) |
缓存命中率 |
---|---|---|
4096 |
3.87 |
93.77% |
8192 |
3.73 |
93.71% |
10240 |
3.52 |
89.27% |
12288 |
2.13 |
57.57% |
16384 |
1.62 |
32.31% |
M = 2560,K = 8192 |
可以观察到随着矩阵增大,缓存命中率逐渐降低,此时我们可以修改对应的任务分配算法以提升数据在缓存中的利用率来提高缓存命中;例如在当前用例中,重排任务分配得到带宽前后对比图,如图2 带宽前后对比图所示。
通常在优化带宽后,会观察当前实际带宽相较于理论带宽的利用率,若当前带宽利用率>90%则为较优。