假设我采用了一个 CUDA 程序——例如 CUDAvectorAdd
示例,并删除了内核的实现,但仍然有启动命令:
vectorAdd<<<blocksPerGrid, threadsPerBlock>>>(d_A, d_B, d_C, numElements);
并假设我编写自己的 PTX,因为我是一个 DIY 类型的人,所以现在我vectorAdd.cu
没有内核的 CUDA 代码和vectorAdd.ptx
.
我现在可以生成一个可执行文件,它可以像未修改的 vectorAdd 那样工作,但在 PTX 中运行代码吗?
(假设 PTX 没有尝试任何有趣的事情或做任何错误的讨论,同样的讨论。)
笔记:
这个问题是关于:
除此之外,在那个问题中,发帖人愿意使用驱动程序 API 来动态加载和编译使用驱动程序 API 的 PTX 文件。在这里,这不是一个选项:C++ 代码使用三人字形 CUDA 运行时启动,这不能改变。
我不介意创建涉及生成其他文件(例如 cubin)的可执行文件的过程。