Использование CUDA с Visual Studio 2017
Я пытаюсь установить CUDA, но получаю сообщение "не найдена поддерживаемая версия visual studio". Я думаю, что это связано с тем, что я использую Visual Studio 2017 (Community), а 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и выберите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из папкиVisual Studio!![]()
Теперь вы можете создайте свой проект Cuda из Visual Studio 2017.
Части этого решения взяты из блога Олега Тарасова.
На данный момент Microsoft все еще, кажется, делает VS2015 Update 2 community edition доступным. Вы должны присоединиться к программе "dev essentials", но это, кажется, бесплатно.
Недавно мне удалось загрузить установщик из здесь.
Обновление: CUDA 9 RC был доступен вчера по адресу developer.nvidia.com зарегистрированным разработчикам, и он имеет поддержку VS 2017.
Спасибо всем за вашу помощь. Я просто хотел дополнить этот пост последними кусочками головоломки. CUDA v9.0 RC ищет VS2017, чтобы идентифицировать его как 1910, но последнее обновление фактически идентифицирует его как 1911. Чтобы исправить открытую .../Соты/В9.0/включать/ЭЛТ/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 Studio\2017\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 там, где он был установлен... и все работало!!
Оставив это здесь как есть может помочь кому-то еще в такой же ситуации. (хотя я действительно не понимаю, почему, как, когда, кто или что из решения.
Последнее обновление (исправлено по состоянию на 12.06.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Надеюсь, это поможет!




Comments