问题标签 [cubin]
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 - 我可以将“静态”CUDA 内核启动与 PTX 代码结合起来并获得一个工作二进制文件吗?
假设我采用了一个 CUDA 程序——例如 CUDAvectorAdd
示例,并删除了内核的实现,但仍然有启动命令:
并假设我编写自己的 PTX,因为我是一个 DIY 类型的人,所以现在我vectorAdd.cu
没有内核的 CUDA 代码和vectorAdd.ptx
.
我现在可以生成一个可执行文件,它可以像未修改的 vectorAdd 那样工作,但在 PTX 中运行代码吗?
(假设 PTX 没有尝试任何有趣的事情或做任何错误的讨论,同样的讨论。)
笔记:
这个问题是关于:
除此之外,在那个问题中,发帖人愿意使用驱动程序 API 来动态加载和编译使用驱动程序 API 的 PTX 文件。在这里,这不是一个选项:C++ 代码使用三人字形 CUDA 运行时启动,这不能改变。
我不介意创建涉及生成其他文件(例如 cubin)的可执行文件的过程。
cuda - NVRTC 编译何时应生成 CUBIN?
如果我正确理解了NVRTC 文档中的工作流程描述,那么它是如何工作的(假设是 CUDA 源):
- 从源文本创建 NVRTC 程序。
- 编译 NVRTC 程序以获取 PTX 代码。
- 使用 NVIDIA 的驱动程序 API (
cuLinkCreate
,cuLinkAddData
,cuLinkComplete
) 对 PTX 代码进行设备链接以获取 cubin。
但是...从 CUDA 11.3 开始,NVRTC 具有以下 API 调用:
那么我怎样才能在编译后拥有一个 cubin 呢?