roofline model分析?Nsight Compute的roofline model分析?
Roofline:以 算术强度(Arithmetic Intensity,AI = FLOPs/Byte,即每字节数据能做的浮点运算数)为横轴、可达性能(GFLOPS 等)为纵轴;曲线由算力上限(ridge point 左侧)和带宽上限(右侧)组成,形成「屋顶」。AI 小时受内存带宽限制(带宽 bound);AI 大时受算力限制(compute bound)。用于判断 kernel 或算子落在哪一侧、优化方向是省带宽还是提算力。
Nsight Compute(ncu)可对单 kernel 做详细分析,并给出 Roofline 图:标出该 kernel 的 AI 与实际达到的吞吐在屋顶上的位置。若在带宽 roof 下方,说明内存受限,优化方向为减少全局内存访问、合并访问、用共享内存等;若在算力 roof 下方,说明计算受限,可考虑提高 occupancy、更多算术等。ncu 还提供 Memory Workload Analysis、Compute Workload Analysis 与具体瓶颈建议。
ncu --set full -o report python train.py 等采集 kernel;在 Nsight Compute 中打开,看 Roofline 与 Top Recommendations。结合 Nsight Systems 的 timeline 确定要重点看的 kernel(热点或 gap 附近),再用 ncu 做单 kernel roofline 与建议优化。| 返回模块 | 返回总览 |