0

使用 NVRTC,您可以创建如下程序:

nvrtcResult nvrtcCreateProgram (&prog, src, prog_name, numHeaders, header_sources, header_fake_paths)

指定几个“here-headers”,或从您提供的字符串而不是从磁盘上的文件中获取的标题。

然后,您注册要从编译结果中访问的实体的名称(内核、设备全局变量)。

然后,你像这样编译你的程序:

nvrtcCompileProgram(prog, numOptions, options);

现在,AFAICT,在程序的创建和编译之间您绝对无能为力。并且 - 为以后查找而注册的全局变量实际上并没有使用或依赖“here-headers”。

这引出了两个问题:

  1. 如果它们仅在编译期间有用,为什么我们要在创建时指定此处的标头?除了编译选项之外,将它传递给nvrtcCompile().
  2. 事实上,为什么在编译之前还要有一个程序呢?为什么不创建和编译:源、名称、要跟踪的命名表达式、编译选项和此处的标题?
4

0 回答 0