Использование CUDA с Visual Studio 2017
Я пытаюсь установить CUDA, но я получаю сообщение о том, что "Нет поддерживаемой версии визуальной студии". Я думаю, что это связано с тем, что я использую Visual Studio 2017 (Community), а CUDA в настоящее время поддерживает только до Visual Studio 2015. К сожалению, Microsoft не разрешит загружать старые версии Visual Studio без оплаты абонентской платы.
Есть ли способ обойти проблему совместимости с VS 2017, или я не могу использовать CUDA?
Ответы
Ответ 1
- Если вы хотите установить
CUDA 8.0
с Visual Studio 2017
вам нужно установить дополнительные компоненты для Visual Studio 2017.
Нажмите на меню "Пуск" и введите установщик Visual Studio. Откройте установщик Visual Studio
Откройте вкладку " Individual components
" и выберите VC++ 2015.3 v140 toolset
под Compilers, build tools and runtimes
.
![install additional components for Visual Studio 2017]()
- Вам также необходимо установить
.NET Framework 3.5
если он у вас не установлен.
Сборка Nvda.Build.CudaTasks.v8.0.dll
зависит от MS.NET Framework 3.5.
Откройте классическую панель управления, перейдите в Programs and features
и нажмите Turn Windows features on or off
. Проверьте .NET Framework 3.5 и нажмите ОК.
![enter image description here]()
- Скачайте полный дистрибутив
CUDA toolkit
и распакуйте его где-нибудь на своем диске. - Если у вас не был установлен
CUDA toolkit
, сделайте это сейчас. Если у вас установлена только Visual Studio 2017
, снимите флажок " Visual Studio integration
.
Теперь вы хотите получить сообщение об ошибке "No supported version of the visual studio was found"
.
Но для успешной сборки проектов инструментария Cuda в Visual Studio 2017
вам также необходимо выполнить шаги 5 и 6.
- Перейдите в
CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
папку в распакованном дистрибутиве, скопируйте все файлы и вставьте их в
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:
![msbuild]()
- На последнем шаге вам нужно будет отредактировать ваши проекты
Cuda
чтобы распознавать задачи сборки NVidia из Visual Studio 2017
. Откройте файл .vcxproj
в текстовом редакторе и найдите все вхождения CUDA 8.0.props
. Замените макрос в начале строки на $(VCTargetsPath14)
чтобы фрагмент XML выглядел следующим образом:
<ImportGroup Label="ExtensionSettings"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.props"/></ImportGroup>
Не забудьте отредактировать путь пользовательских целей в конце файла:
<ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.targets"/></ImportGroup>
Удостоверьтесь, что дважды проверили свою конифурацию пути!
Если вы используете nvcc
из командной строки, вы можете не вызывать cl.exe
из папки Visual Studio
!
Теперь вы можете создать свой проект Cuda из Visual Studio 2017.
Части этого решения взяты из блога Олега Тарасова.
Ответ 2
В настоящий момент Microsoft по-прежнему делает доступной версию сообщества VS2015 Update 2. Вы должны присоединиться к программе "dev essentials", но, похоже, она бесплатна.
Мне недавно удалось скачать установщик из здесь.
Обновление: CUDA 9 RC был выпущен вчера на developer.nvidia.com зарегистрированным разработчикам, и он поддерживает VS 2017.
Ответ 3
Спасибо всем за вашу помощь. Я просто хотел дополнить этот пост последними кусочками головоломки. CUDA v9.0 RC ищет VS2017 для определения как 1910, но последнее обновление фактически идентифицирует как 1911. Чтобы исправить открытые... /CUDA/v 9.0/include/crt/host_config.h и изменить эту строку:
#if _MSC_VER < 1600 || _MSC_VER > 1910
к этому:
#if _MSC_VER < 1600 || _MSC_VER > 1911
Вам также может потребоваться добавить следующее в ваш CMakeLists:
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)
Ответ 4
Для людей, видящих это последнее.
Сначала попробуйте установить CUDA 10 (CUDA Toolkit 10.0).
Если он все еще не работает без каких-либо модов, убедитесь, что у вас есть столько наборов инструментов VC++, сколько вы видите в списке. Посмотрите это видео, остановитесь в 8:41 и сравните списки.
Если по какой-то причине вам нужно использовать CUDA 9.0 - 9.2, вам нужно будет сделать несколько прыжков:
- Для сборок cmd установите vcvars_ver = 14.11 - смотрите этот ответ
- Для сборок IDE установите Platform Toolset (в свойствах проекта - Общие) в
- Visual Studio 2017 (v141)) или
- Visual Studio 2015 (v140))
Если у вас очень настроенная сборка на основе cmd, #if _MSC_VER
(в .../CUDA/.../include/crt/host_config.h
) и удалите завершающий || _MSC_VER >...
|| _MSC_VER >...
Ответ 5
Чтобы заставить работать Cuda-компилятор nvcc
в оболочке Windows, вам нужно сделать следующее
-
установить соответствующую версию набора инструментов из отдельного компонента для VS 2017 - VC++ 2017 version 15.4 v.14.11 toolset
-
Запустите в оболочке Windows следующую "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11
-
Вы можете скомпилировать код nvcc
без ошибок из оболочки Windows
Ответ 6
Я столкнулся с той же проблемой, используя CUDA 9.1 и VS2017 Enterprise.
После смены компилятора VС++ на v140 (вместо 141) все работает нормально.
Уже были флаги
#if _MSC_VER < 1600 || _MSC_VER > 1911
Но это не остановит показ ошибки.
Не знаю, почему, но попытка запустить его на VS2015 приводит к ошибкам о том, что v141 не установлен... поэтому из-за какой-то извращенной логики я пытался не использовать v141, где он был установлен... и все сработало!!
Оставив это здесь, поскольку это может помочь кому-то еще в той же ситуации. (хотя я действительно не понимаю, почему, как, когда, кто или что из этого решения.
Ответ 7
Последнее обновление (правильное по состоянию на 12/12/2018) последняя версия Cuda - 9.2, а последняя версия Visual Studio - 2017.7 НЕ работают вместе. Инструкции, приведенные в решении выше, не работают. Вот что сработало для меня:
- Удалите Visual Studio.
- Удалить установщик Visual Studio
- Загрузите Visual Studio 2017.6 (обратите внимание, что Microsoft, как известно, меняет ссылки и редакции без предварительного уведомления) https://docs.microsoft.com/en-us/visualstudio/productinfo/install-an-earlier-release-of-vs2017
- Запустить установщик
-
Перейти к отдельным компонентам. Нажмите на Windows 10 SDK 10.0.15063, введите описание изображения здесь
-
Загрузите cuda Toolkit с официального сайта: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
- Вам может понадобиться скачать патч.
Ответ 8
Я хотел отредактировать свои программы CUDA с помощью текстового редактора (т.е. Sublime) и скомпилировать их из командной строки, но я столкнулся с ошибкой компилятора nvcc. Я установил Visual Studio 2017 с ОС Windows 10, но после компиляции он сказал, что "разрешены только версии VS 2012, 13, 15 и 17". Итак, я решил добавить VC++ 2015 toolkit из установочного пакета установщика VS 2017 (см. Изображение верхнего поста). Вместо этого я не прошел весь его процесс, я только скопировал путь моего файла cl.exe из только что созданной папки VS 14.0 в переменную среды. .Exe можно найти здесь:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
Надеюсь это поможет!