问题标签 [nvrtc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
16 浏览

cuda - 为什么我们需要在 nvrtcGetLoweredName() 之前为该名称调用 nvrtcAddNameExpression()?

nvrtcGetLoweredName()函数返回一个 CUDA 内核的错位名称,我们事先使用nvrtcAddNameExpression()- 和在编译程序之后注册了它的名称(参见文档)。

但是……这是为什么呢?也就是说,AFAICT、CUDA 有一个统一的名称修改方案。事实上,我什至不清楚为什么需要传递一个 NVRTC 程序句柄——而不是简单地作为一对独立的函数进行修饰/去修饰。

0 投票
0 回答
7 浏览

cuda - 为什么 NVRTC 会从其他编译选项中“分离”此处的标头?

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

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

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

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

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

这引出了两个问题:

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