一个开源的CUDA 内核的内核内分析器:IKP github.com/yao-jz/intra-kernel-profiler
大多数 GPU 分析器(如 Nsight、NV Perf SDK)只会给出每次内核启动的单一数值:例如该内核执行了 1.2 万亿条指令,达到了 85% 的占用率。IKP 更深入。你可以在内核中用命名区域(如 load_A、compute、store)进行标记,每个指标——指令计数、内存流量、硬件计数器、停顿原因、时间——都会独立归属到每个区域。你可以看到内核的哪个阶段存在瓶颈,而不仅仅是内核整体运行缓慢。
IKP 提供三种互补的分析后端——Trace(纳秒级时间测量)、NVBit(SASS 级指令归属)、CUPTI(硬件计数器)——所有后端都支持区域感知,且可以合并。结果会流入 IKP Explorer,这是一个自包含的单页 HTML 仪表板,显示每个区域的详细指标,同时提供带注释的源代码、PTX 和 SASS。How I AI
