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

如何在Nsight Systems中显示嵌套CUDA Kernel调用

解决Nsight Systems无法显示CUDA嵌套内核运行时间的问题

你的问题源于嵌套内核的编译要求和Nsight Systems的采集配置未适配设备端内核启动场景,具体解决步骤如下:

1. 编译时启用可重定位设备代码

设备端发起的内核启动(即kernel_1内调用kernel_2)需要CUDA编译器生成可重定位设备代码(RDC),否则即便程序能正常运行,Nsight Systems也无法追踪到设备端发起的内核事件。编译时添加以下选项:

nvcc -rdc=true your_code.cu -o your_program

2. 配置Nsight Systems采集参数

图形界面操作

  • 打开Nsight Systems新建采集任务
  • 在采集配置的CUDA分类下,确保勾选:
    • Trace CUDA Runtime API and Kernel Execution
    • Device-side Kernel Launch Tracking(部分版本需展开CUDA详细配置项)
  • 将采集级别设置为Full,避免轻量模式遗漏事件

命令行采集(nsys profile)

使用以下命令确保追踪设备端内核启动:

nsys profile --trace=cuda --cuda-kernel-trace=all ./your_program

完成上述配置后,重新采集程序运行数据,就能在Nsight Systems的时间线中看到kernel_2的运行时间条,空白间隙会被正确填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:08:10