You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看运行的CUDA内核/代码?PyTorch场景下的方案问询

查看PyTorch运行时生成的CUDA内核代码方案

一、Windows环境下的可行方法

1. 通过NSight Compute捕获内核细节

  • 打开NSight Compute,创建新的性能分析会话,选择运行你的PyTorch脚本或附加到已启动的Python进程。
  • 当模型执行forward函数时,NSight Compute会捕获所有运行的CUDA内核。在Kernel Details面板中,你可以查看内核名称、参数,还能通过Source标签查看生成的PTX代码;对于PyTorch JIT动态生成的融合内核,部分场景下可以看到对应的CUDA C++源码。
  • 注意:PyTorch的ATen基础内核多为预编译版本,源码信息有限,但动态生成的优化内核(如融合操作)能提供更详细的代码内容。

2. PyTorch内置调试选项

  • 设置环境变量 TORCH_SHOW_CPP_STACKTRACES=1,可以辅助追踪内核调用链路,但无法直接输出CUDA源码。
  • 开启JIT profiling模式:执行以下代码后,用torch.jit.trace或torch.jit.script生成模型,通过module.graph_for(inputs)查看优化后的计算图,可推断哪些操作被融合,但不会直接生成CUDA代码:
    torch._C._jit_set_profiling_executor(True)
    torch._C._jit_set_profiling_mode(True)
    

二、Linux环境下的torch.compile/FX方案

若能切换到Linux环境,这是获取生成CUDA代码最直接的方式:

  • 使用torch.compile编译模型,例如:
    model = torch.compile(model, mode="max-autotune")
    
  • 设置环境变量TORCH_LOGS="compiler",可以查看编译过程中内核选中、融合的详细日志。
  • 设置TORCH_COMPILE_DEBUG=1,编译完成后,当前目录会生成tmp/torchinductor_<用户名>文件夹,其中包含所有生成的.cu文件,对应每个优化后的CUDA内核。
  • 借助FX Graph分析:用torch.fx.symbolic_trace追踪模型得到FX计算图,可手动分析节点融合情况,再结合inductor生成的.cu文件对应到具体的CUDA实现。

内容的提问来源于stack exchange,提问作者Andrei Gheorghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:06:08