我最近从msvc 2005升级到2015。 我用cuda toolkit的修订版4.2编译了我的代码。我现在正在努力学习视觉和cuda之间没有前向兼容性的方法,但谷歌表明存在一些强制编译的技巧(弄乱.props和.targets文件)。
根据我的理解,cuda 4.2是不行的。 nvcc似乎对msvc修订版进行了硬编码检查。 我的问题是:
有没有办法用cuda 5.x或6.x编译?
最糟糕的情况是我必须更新到cuda 7.5,它甚至可以工作吗?
感谢您的帮助。
答案 0 :(得分:9)
更新:CUDA 8RC正式支持VS2015 Update 1(不是更新2)。 对于CUDA 8RC之前的CUDA工具包,没有人正式将MSVC 2015列为受支持的环境,包括CUDA 7.5(目前最新的生产工具包)。
对于最近的CUDA工具包,官方支持矩阵在the windows getting started guide or installation guide中给出,您必须查看每个工具包版本,以找到对该版本的支持。
由于对VS版本的支持意味着CUDA工具包将对VS环境进行更改(例如,安装CUDA构建自定义规则,您所谓的“搞乱.props和.targets”)并提供适当的项目定义每个cuda示例项目的文件,如果你想解决这个问题,你必须自己复制这些函数。可能有非标准的方法来执行此操作,但您将在不受支持的区域中操作。
答案 1 :(得分:1)
CUDA 8是第一个支持MSVC 2015的版本,包括社区版(交叉编译除外)。在撰写本文时,如果您已注册NVIDIA“加速计算开发人员计划”,则可以使用CUDA 8作为候选版本。