纹理<&燃气轮机;在VS 2012&;中不可接受;Cuda 5.0:

纹理<&燃气轮机;在VS 2012&;中不可接受;Cuda 5.0:,cuda,visual-studio-2012,gpu,Cuda,Visual Studio 2012,Gpu,我有一个现有的应用程序,可以在CUDA 4.2和VS 2010中编译并运行良好。我现在正在移植一个新系统,该系统拥有CUDA 5.0和VS 2012。不幸的是,我不得不使用VS 2012 我按照步骤在VS 2012和Nvidia论坛中设置CUDA,但是 我的代码中引用纹理的行未编译,例如: 文件:filter.cu texture < float, cudaTextureType2D, cudaReadModeElementType> texRefEachRes_0; texture

我有一个现有的应用程序,可以在CUDA 4.2和VS 2010中编译并运行良好。我现在正在移植一个新系统,该系统拥有CUDA 5.0和VS 2012。不幸的是,我不得不使用VS 2012

我按照步骤在VS 2012和Nvidia论坛中设置CUDA,但是 我的代码中引用纹理的行未编译,例如:

文件:filter.cu

texture < float, cudaTextureType2D, cudaReadModeElementType> texRefEachRes_0;
texture < float, cudaTextureType2D, cudaReadModeElementType> texRefEachRes_1;
texturetexRefEachRes\u 0;
纹理texRefEachRes\u 1;
如果我右键点击这个文件,我看不到它的属性是CUDA,等等。所以听起来VS仍然不知道CUDA


在VS 2012中,我还需要调整什么才能编译此代码?

在解决方案资源管理器中,右键单击该项目。选择Build Customizations。选择一个CUDA自定义文件。

我在CUDA 5.0.targets文件中键入了一个条目;在我的问题中引用的博客条目中给出的过程确实有效,但Cuda 5.0中包含的目标文件不正确。因此,修复了xml目标文件中的错误键入修复了问题。

我已经这样做了——选择了Cuda 5.0构建规则——正如引用的博客条目中所指定的那样——仍然没有被识别。经过大量的修改,我发现问题在于这是一个新系统,我只添加了VS 2012;Cuda规则组合在一起的命令行坚持使用MCSV 9或MCSV 10,而我在系统上的命令行只有MCSV 11,因此编译将终止。CUDA和VS 2012不能合作,或者需要进一步修改MCSV 11中允许C++编译所需的规则。