【发布时间】:2021-04-07 16:18:48
【问题描述】:
我正在使用 NVRTC 编译内核。相关的 API 调用是:
nvrtcResult nvrtcCreateProgram (
nvrtcProgram* prog,
const char* src,
const char* name,
int numHeaders,
const char** headers,
const char** includeNames )
如您所见,源是原始字符串,与文件无关。这意味着当您--generate-line-info 时,您会得到行号,但没有相关的文件名。 那个意味着如果你使用 NSight Compute - 你将无法看到你的内核源代码。
显然,无论是 NSight Compute 本身还是 NVRTC 本身,都无法确定原始源镜像在某个文件中。但是必须有一些方法来解决这个问题:
- 也许我在 NVRTC API 中遗漏了一些可以使源 文件关联的内容?
- 也许我们可以操纵生成的编译程序(合理地,而不是手动,或编写我自己的新 API)来建立关联?
- 也许我们可以以某种方式将源代码塞入编译后的程序中?
【问题讨论】:
标签: compilation cuda debug-information nvrtc nsight-compute