问题标签 [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.

0 投票
1 回答
149 浏览

cuda - 我可以将“静态”CUDA 内核启动与 PTX 代码结合起来并获得一个工作二进制文件吗?

假设我采用了一个 CUDA 程序——例如 CUDAvectorAdd示例,并删除了内核的实现,但仍然有启动命令:

并假设我编写自己的 PTX,因为我是一个 DIY 类型的人,所以现在我vectorAdd.cu没有内核的 CUDA 代码和vectorAdd.ptx.

我现在可以生成一个可执行文件,它可以像未修改的 vectorAdd 那样工作,但在 PTX 中运行代码吗?

(假设 PTX 没有尝试任何有趣的事情或做任何错误的讨论,同样的讨论。)

笔记:

  • 这个问题是关于:

    如何创建可执行文件以在给定的 PTX 文件中运行内核?

    除此之外,在那个问题中,发帖人愿意使用驱动程序 API 来动态加载和编译使用驱动程序 API 的 PTX 文件。在这里,这不是一个选项:C++ 代码使用三人字形 CUDA 运行时启动,这不能改变。

  • 我不介意创建涉及生成其他文件(例如 cubin)的可执行文件的过程。

0 投票
1 回答
54 浏览

cuda - NVRTC 编译何时应生成 CUBIN?

如果我正确理解了NVRTC 文档中的工作流程描述,那么它是如何工作的(假设是 CUDA 源):

  • 从源文本创建 NVRTC 程序。
  • 编译 NVRTC 程序以获取 PTX 代码。
  • 使用 NVIDIA 的驱动程序 API ( cuLinkCreate, cuLinkAddData, cuLinkComplete) 对 PTX 代码进行设备链接以获取 cubin。

但是...从 CUDA 11.3 开始,NVRTC 具有以下 API 调用:

那么我怎样才能在编译后拥有一个 cubin 呢?