问题标签 [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.
cuda - 为什么我们需要在 nvrtcGetLoweredName() 之前为该名称调用 nvrtcAddNameExpression()?
该nvrtcGetLoweredName()
函数返回一个 CUDA 内核的错位名称,我们事先使用nvrtcAddNameExpression()
- 和在编译程序之后注册了它的名称(参见文档)。
但是……这是为什么呢?也就是说,AFAICT、CUDA 有一个统一的名称修改方案。事实上,我什至不清楚为什么需要传递一个 NVRTC 程序句柄——而不是简单地作为一对独立的函数进行修饰/去修饰。
cuda - 为什么 NVRTC 会从其他编译选项中“分离”此处的标头?
使用 NVRTC,您可以创建如下程序:
指定几个“here-headers”,或从您提供的字符串而不是从磁盘上的文件中获取的标题。
然后,您注册要从编译结果中访问的实体的名称(内核、设备全局变量)。
然后,你像这样编译你的程序:
现在,AFAICT,在程序的创建和编译之间您绝对无能为力。并且 - 为以后查找而注册的全局变量实际上并没有使用或依赖“here-headers”。
这引出了两个问题:
- 如果它们仅在编译期间有用,为什么我们要在创建时指定此处的标头?除了编译选项之外,将它传递给
nvrtcCompile()
. - 事实上,为什么在编译之前还要有一个程序呢?为什么不创建和编译:源、名称、要跟踪的命名表达式、编译选项和此处的标题?