Cuda 如何从uu全局函数I';你写了什么?

Cuda 如何从uu全局函数I';你写了什么?,cuda,nvcc,Cuda,Nvcc,假设我想在我编写的某个源代码上使用CUDA的低级驱动程序API。我知道culunchkernel,但我似乎在文档中找不到关于如何从\uuu全局\uu函数将cuFunction传递给它的确切解释 您可以使用。如果您不使用C链接,则传递的函数名必须是被损坏的C++名称。您可以在设备源代码的编译版本上使用cuobjdump来获得它。您可以使用。如果您不使用C链接,则传递的函数名必须是被损坏的C++名称。您可以在设备源代码的编译版本上使用cuobjdump来实现这一点。查看使用驱动程序API的CUDA示

假设我想在我编写的某个源代码上使用CUDA的低级驱动程序API。我知道
culunchkernel
,但我似乎在文档中找不到关于如何从
\uuu全局\uu
函数将
cuFunction
传递给它的确切解释

您可以使用。如果您不使用C链接,则传递的函数名必须是被损坏的C++名称。您可以在设备源代码的编译版本上使用cuobjdump来获得它。

您可以使用。如果您不使用C链接,则传递的函数名必须是被损坏的C++名称。您可以在设备源代码的编译版本上使用cuobjdump来实现这一点。

查看使用驱动程序API的CUDA示例代码,例如。该项目被设置为将内核(vectoraddrv_kernel.cu中的
\uuu global\uuu
函数)编译为ptx,并通过vectoraddrv.cpp文件中的API序列加载ptx形式的内核。《编程指南》的部分也将用作参考。请查看使用驱动程序API的CUDA示例代码,例如。该项目被设置为将内核(vectoraddrv_kernel.cu中的
\uuu global\uuu
函数)编译为ptx,并通过vectoraddrv.cpp文件中的API序列加载ptx形式的内核。《编程指南》的第页也可以作为参考。但我是否必须从文件中加载模块,或者我是否神奇地将模块内置到我的可执行文件中/默认加载/等等?您可以从预先构建的cubin或fat二进制文件中加载预编译的二进制文件,或从源代码编写或编译的PTX代码。如果您有要链接的设备代码库,您也可以启动运行时设备链接器会话。我明白了,但我不能让我的可执行文件也成为fat二进制文件吗?我的意思是,这就是运行时API的基本功能,对吗?不,你不能真的这么做。运行时API使用了几个内部函数和许多编译器驱动的样板文件来发挥其魔力。你实际上是在发明自己的运行时API,这似乎毫无意义。这就是我所缺少的。好吧,太糟糕了。但是我必须从文件中加载模块吗,或者我是否神奇地将模块内置到我的可执行文件中/默认加载/等等?您可以从cubin或fat二进制文件中加载预编译的二进制文件(您事先构建),或者从源代码中编写或编译PTX代码。如果您有要链接的设备代码库,您也可以启动运行时设备链接器会话。我明白了,但我不能让我的可执行文件也成为fat二进制文件吗?我的意思是,这就是运行时API的基本功能,对吗?不,你不能真的这么做。运行时API使用了几个内部函数和许多编译器驱动的样板文件来发挥其魔力。你实际上是在发明自己的运行时API,这似乎毫无意义。这就是我所缺少的。嗯,太糟糕了。