繁体   English   中英

在VS 2010中将CUDA代码编译为C ++文件中的二进制文件

[英]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.cut264.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM