Неподдерживаемая ошибка CUDA 9 в Visual Studio 2017

Недавно я обновил свой VS 2017, и теперь я даже не могу создать проект CUDA по умолчанию (тот, который содержит векторное дополнение).

Я подозреваю, что это связано со следующей ошибкой:

Severity    Code    Description Project File    Line    Suppression State
Error   C1189   #error:  -- unsupported Microsoft Visual Studio version! 
 Only the versions 2012, 2013, 2015 and 2017 are supported! ver2    
c:\program files\nvidia gpu computing 
toolkit\cuda\v9.0\include\crt\host_config.h 133 

Другие ошибки неактуальны и исчезнут после исправления этого. Обратите внимание, что я могу создавать и запускать simpleCUFFT из образцов CUDA.

До обновления мне удалось создать проект CUDA по умолчанию, но мне не удалось создать проект CUDA Sample. Я обновил свой VS2017 с помощью установщика VS и установил CUDA SDK 10.0.15063.0. Приложен скриншот screenshot с установленными компонентами.

Пожалуйста, дайте мне знать, требуется ли дополнительная информация. Я знаю тему , и поскольку я использую новейший инструментарий CUDA, мне не нужно вносить изменения в host_config.h.

Спасибо, Михаил

Изменить: Моя версия VS (как показано в установщике VS) - 15.5.0 Моя версия nvcc - это выпуск 9.0, V9.0.176

Edit2: я попытался изменить host_config.h строку 133 на:

  #if _MSC_VER < 1600 || _MSC_VER > 1912

Эта ошибка больше не отображается, однако в файле type_trails появляется множество ошибок "выражение должно иметь постоянное значение". Я не знаю, как это исправить.

Ответ 1

После некоторого мучительного времени я смог решить проблему. Вот ответ для тех, у кого похожая проблема:

1) Убедитесь, что у вас есть VC++ 2015.3 v140 toolset (его можно установить из Интернета или из установщика Visual Studio)

2) В свойствах проекта (общие) → Набор инструментов платформы выберите Visual Studio 2015 (v140).

Редактирование (21.05.2008): я только что обновил Visual studio 2017 до последней версии 15.7.1. Теперь я могу выбрать набор инструментов VS 2017 v141, и он отлично работает.

Ответ 2

В обновлении VS 15.4.3 Обновленный номер версии Microsoft их компилятора CL до 14.12 (https://www.visualstudio.com/ru-ru/news/releasenotes/vs2017-relnotes#15.4.4)

Вот почему CUDA 9.0.176 отказывается компилировать. Сегодня NVIDIA обновила CUDA до 9.1.85, поэтому просто обновите просто обновите CUDA до 9.1 https://developer.nvidia.com/cuda-downloads

Ответ 3

Я использую CUDA 9.2 и VS 2017 (версия 15.7.5). Простое изменение host_config.h (обычно в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9. *\Include\crt, можно найти в выводе VS из сборки) работает для меня.

Измените строку

#if _MSC_VER < 1600 || _MSC_VER > 1913

в

#if _MSC_VER < 1600 || _MSC_VER > 1914

или что-то подобное, в зависимости от версии cl.exe

Ответ 4

Для тех, кто читает этот вопрос, обновите его в CUDA 10. Он работает прямо из коробки. Нет необходимости устанавливать предыдущие наборы инструментов компилятора и т.п., упомянутые в других ответах. Просто скачайте CUDA 10, установите его и удалите предыдущие версии CUDA. Затем создайте новый проект CUDA 10 и разместите свой код. Это будет работать.

Если вы получаете ошибки, не забудьте установить compute_xx,sm_xx соответствующим образом, в Свойствах проекта → CUDA C/C++ → Устройство → Генерация кода.