[英]compiling CUDA code to binary inside C++ file in VS 2010
我正在努力为3d应用程序生成一个插件,该插件使用该应用程序SDK
在通常情况下的“个人测试项目”中,我将.cu文件分离,并将其项目类型转换为CUDA C / C ++,将.cpp文件转换为项目类型C / C ++编译器
在这里,我想要.cpp文件中的整个代码,并且可以毫无问题地对其进行编译,
我也想使代码(二进制),以便我可以隐藏ptx(或内核)
尚不清楚为什么要将CUDA代码放入.cpp文件中。 如果原因是由于您使用的SDK的某些要求,并且您不想使用nvcc
,那将无法正常工作。
如果您只想允许.cpp文件包含设备代码并通过nvcc
而不是直接进入主机编译器,则可以在nvcc
编译命令上使用-x cu
选项:
nvcc -x cu t264.cpp -o t264
上面的命令将生成与您执行此操作相同的可执行文件:
nvcc t264.cu -o t264
(假设t264.cu
和t264.cpp
是相同的文件。)
如果要去除ptx,可以这样编译:
nvcc -gencode arch=compute_10,code=sm_10 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 ....
这将告诉nvcc创建一个胖文件,其中包含sm_10,sm_20或sm_30设备的可执行二进制文件,但不包含PTX。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.