用途:分析 ncu(NVIDIA Nsight Compute)对单个 CUDA 内核的性能剖析输出,判断内核为何变慢并指导优化。核心是用 SOL%(Speed of Light)衡量内核相对 GPU 理论峰值的达成度,据此做系统化瓶颈分类。
主要能力:计算 SOL% 与内存 SOL% 分类(计算受限、内存受限、延迟受限、均衡);roofline 分析(含 FP16、Tensor Core 分层 roofline);占用率诊断;内存层级与缓存命中率分析;warp 停顿与指令统计;支持 CSV 输出与 .ncu-rep 报告文件,并可用 ncu_report Python 模块程序化提取指标。
使用方式:先运行 ncu -v 验证环境。以 SpeedOfLight 段起步分类,例如 ncu --section SpeedOfLight --csv --kernel-name regex:"KERNEL" --launch-skip 5 --launch-count 3 -- COMMAND。再按分类追加针对性段:计算受限用 ComputeWorkloadAnalysis,内存受限用 MemoryWorkloadAnalysis,延迟受限用 LaunchStats 与 Occupancy,warp 停顿用 WarpStateStats、SchedulerStats。优先使用 --section 而非 --set 批量采集。JIT 编译内核(Triton/cuTile/CuTeDSL)需先预热 3-5 次,并用 cudaProfilerStart/Stop 配合 --profile-from-start off 只采集稳态。优化后重新剖析验证。
适用场景:CUDA 内核性能剖析、ncu 输出与 .ncu-rep 报告解读、GPU 内核优化。不适用于系统级剖析(用 Nsight Systems/nsys)、CUDA API 追踪或 CPU-GPU 时间线分析(用 nsys)、无剖析的 GPU 监控(用 nvidia-smi)。
限制:需 CUDA Toolkit >=11.0 且 ncu 版本匹配,GPU 为 Kepler+(推荐 Volta+);ncu 可能需要 sudo、CAP_SYS_ADMIN 或容器 --privileged 权限。ncu 开销为 10-100 倍,比 nsys 慢。资料强调数据完整性:引用指标前须展示实际命令与原始输出,不得编造数值,剖析失败应如实说明。具体收费与价格信息暂未提供。