Использование CUDA с Visual Studio 2017
Я пытаюсь установить CUDA, но я получаю сообщение о том, что "не найдена поддерживаемая версия visual studio". Я думаю, что это потому, что я использую Visual Studio 2017 (сообщество), а CUDA в настоящее время поддерживает только до Visual Studio 2015. К сожалению, Microsoft не позволяет мне загружать старые версии Visual Studio без оплаты абонентской платы.
есть ли способ обойти проблему совместимости с VS 2017, или я не могу использовать CUDA?
7 ответов
- если вы хотите установить
CUDA 8.0
сVisual Studio 2017
необходимо установить дополнительные компоненты для Visual Studio 2017.
Нажмите в меню Пуск и введите установщик Visual Studio. Откройте Установщик Visual Studio
открытьIndividual components
tab и выберитеVC++ 2015.3 v140 toolset
подCompilers, build tools and runtimes
.
- вам также необходимо установить
.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 и нажмите OK.
- скачать
CUDA toolkit
дистрибутив и извлечь его где-нибудь на вашем диске. - если бы у вас не было
CUDA toolkit
установлен, сделайте это сейчас. Если у вас есть толькоVisual Studio 2017
установлен, снимите флажокVisual Studio integration
флажок.
Теперь вы хотите получить "No supported version of visual studio was found"
ошибка.
но для успешного создания проектов CUDA toolkit в Visual Studio 2017 вам также необходимо выполнить шаги 5 и 6.
- перейти к
CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
папка в извлеченном дистрибутиве, скопируйте все файлы и вставьте их вC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:
- на последнем шаге вам нужно будет изменить свой
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
С !
теперь вы можете создать свой проект Cuda из Visual Studio 2017.
части этого решения от блог Олега Тарасова.
на данный момент Microsoft по-прежнему делает VS2015 Update 2 community edition доступным. Вы должны присоединиться к программе "Dev essentials", но она кажется бесплатной.
Я смог загрузить установщик из здесь недавно.
Update: CUDA 9 RC был доступен вчера на developer.nvidia.com для зарегистрированных разработчиков, и он имеет поддержку VS 2017.
спасибо всем за вашу помощь. Я просто хотел дополнить этот пост последними кусочками головоломки. CUDA v9.0 RC ищет VS2017 для идентификации как 1910, но последнее обновление фактически идентифицирует как 1911. Чтобы исправить open ...CUDA / v9.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)
для того, чтобы получить рабочий компилятор Cuda nvcc
в оболочке windows вам нужно сделать следующее
установите правильную версию набора инструментов из отдельного компонента для VS 2017 -
VC++ 2017 version 15.4 v.14.11 toolset
запуск в оболочке windows после
"c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11
вы можете скомпилировать
nvcc
код без ошибок из оболочки Windows
я столкнулся с той же проблемой, используя CUDA 9.1 и VS2017 Enterprise.
после изменения компилятора VC++ на v140 (вместо 141) все работает нормально.
уже были флаги
#if _MSC_VER < 1600 || _MSC_VER > 1911
но он не перестает показывать ошибку.
Не знаю почему, но попытка запустить его на VS2015 приводит к ошибкам о том, что v141 не установлен... поэтому из-за какой-то извращенной логики я попытался не использовать v141, где он был установлен... и все сработало!!
оставив это здесь, поскольку это может помочь кому-то еще в той же ситуации. (хотя я действительно не понимаю, почему, как, когда, кто и какие решения.
последнее обновление (исправлено с 06/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/installing-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
- вам может потребоваться загрузить патч.
Я хотел отредактировать мои программы CUDA с помощью текстового редактора (т. е. Sublime) и скомпилировать их из командной строки, но я столкнулся с ошибкой компилятора nvcc. Я установил Visual Studio 2017 с ОС Windows 10, но после компиляции он сказал: "разрешена только версия VS 2012, 13, 15 и 17."Так что я сделал, чтобы intall VC++ 2015 toolkit из установочного пакета установщика VS 2017 (см. изображение верхнего сообщения). Я не прошел через весь его процесс, вместо этого я только скопировал путь мой сл.exe-файл из вновь созданной папки VS 14.0 в переменную среды. Этот.exe можно найти здесь:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
надеюсь, что это помогает!