Почему nvcc не может найти мою установку Visual C ++? - PullRequest
2 голосов
/ 03 мая 2010

Я использую Windows 7 Pro x64 на Core i5 с NVIDIA 3100m, совместимой с CUDA.

Я пытался установить как 32-битные, так и 64-битные наборы инструментов CUDA от NVIDIA, к сожалению, ни с одним из них я не могу ничего скомпилировать; nvcc говорит: «не удается найти поддерживаемую версию cl. Поддерживаются только MSVC 8.0 и MSVC 9.0».

У меня есть компиляторы x86 и x86-64, установленные через Windows 7 SDK (версия компилятора 15.00.30729.01 для обеих арок). Оба компилятора работают правильно; Я создал и протестировал код на C и C ++, используя их. Я попытался запустить nvcc из командных оболочек, настроенных как для 32-разрядной, так и для 64-разрядной компиляции, и использовать параметр командной строки -ccbin для nvcc, чтобы указать его в каталоге установки Visual C ++.

Как правильно обращаться с этой настройкой? Есть ли какой-то способ сделать nvcc более подробным о том, что происходит? Флаг -v не очень полезен. В идеале какой-то способ заставить его показать, что он находит по сравнению с тем, что он ожидает найти. Будет ли это работать лучше, если я вместо этого установлю Visual C ++ Express? Или поддерживается только коммерческая версия VC ++ для использования с CUDA?

Ответы [ 4 ]

7 голосов
/ 11 ноября 2010

Включить эту строку

compiler-bindir = C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ Bin

в

C: \ CUDA \ bin64 \ nvcc.profile

4 голосов
/ 13 июня 2014

В CUDA v6.0 все еще требуется более старая версия Visual Studio (я использую 2010), но другие решения у меня не работали.

Чтобы это работало, добавьте в свой файл nvcc.profile следующее (C: / Program Files / NVIDIA GPU Computing Toolkit / CUDA / v6.0 / bin / nvcc.profile):

CUDA_NVCC_FLAGS += --compiler-bindir = "-IE:/PROGRA~2/MICROS~2.0/VC/bin"

У меня также установлена ​​VS 2013, и мне нужен был этот аргумент, чтобы nvcc не мог найти более новую (к сожалению несовместимую) версию cl.exe

2 голосов
/ 06 мая 2010

Похоже, вы не устанавливали Visual Studio 2005 или 2008, но номер версии вашего компилятора указывает, что это MSVC 9.0. Самый простой способ заставить все работать - это установить Visual Studiso, и я считаю, что Express будет работать.

Также, возможно, вы захотите взглянуть на эту тему на Nvidia Forum

1 голос
/ 22 декабря 2014

Я пытался заставить CUDA 6.5 работать с VS 2010 express. После удаления VS 2010 Express, установки Windows SDK 7.1 и переустановки VS 2010 Express, установки Windows SDK 7.1 в качестве набора инструментов и т. Д. Ничего не получалось. В конце концов, мне удалось добавить в CUDA_NVCC_FLAGS следующее:

--cl-version 2010

Вам также может понадобиться добавить:

--machine 32

Сначала я попробовал соответствующие флаги в командной строке.

Эта ссылка была очень полезной

...