Неподдерживаемая ошибка 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. Приложен скриншот
с установленными компонентами.
Пожалуйста, дайте мне знать, требуется ли дополнительная информация. Я знаю тему , и поскольку я использую новейший инструментарий 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++ → Устройство → Генерация кода.