Visual Studio 2017和Cuda 9 RC仍然无法协同工作

时间:2017-09-08 16:19:08

标签: cuda visual-studio-2017

尽管宣布支持Visual Studio 2017,但我仍然收到此错误消息:

self.subscribers = {}
...
def subscribe(self, message_type, callback):
    self.subscriptions.setdefault(message_type, [])
    self.subscriptions[message_type].append(callback)

def notify(self, message_type, data):
    for callback in self.subscriptions[message_type]:
        # call the callback, sending it the data
        callback(data)

当我尝试编译像这样的简单测试程序时

nvcc fatal   : Host compiler targets unsupported OS.

即使更新到CUDA 9 RC。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

对VS 2017和CUDA 9 RC的困难道歉。

微软在CUDA 9 RC发布后于2017年8月14日发布VS 2017 Update 3(15.3)。不幸的是,此更新导致与CUDA 9 RC不兼容。 NVIDIA预计CUDA 9 GA(未来)版本将解决这种特殊的不兼容问题。与此同时,如果您切换到使用VS 2017 RTM(VS 2017的第一个版本)而没有更新,它应该与CUDA 9 RC一起使用。我并不是说这很容易或者很难(事实上它可能是不可能的,除非您之前已经存档了离线安装程序来执行此操作),或者提供确切的步骤来获取VS 2017(原始)RTM。

在其他方面,支持的环境应该在CUDA 9 RC附带的Windows安装指南中详细说明,并且也可以从developer.nvidia.com上的CUDA 9 RC下载页面链接。基于此,另一个选择似乎是切换到VS 2015(still available),或者切换到VS 2015 toolchain within VS 2017

答案 1 :(得分:0)

我设法用VS2017和CUDA 9.0编译类似的代码。您似乎忘了将cuda_runtime.h包含在您的文件中。

#include "cuda_runtime.h"
#include <stdio.h>


__global__ void kernel() {
    printf("hello world from GPU \r\n");
}

int main() {
    printf("hello world from CPU \r\n");
    kernel <<< 1, 10 >>>();
return 0;
}