Использование CUDA с Visual Studio 2017

Я пытаюсь установить CUDA, но я получаю сообщение о том, что "не найдена поддерживаемая версия visual studio". Я думаю, что это потому, что я использую Visual Studio 2017 (сообщество), а CUDA в настоящее время поддерживает только до Visual Studio 2015. К сожалению, Microsoft не позволяет мне загружать старые версии Visual Studio без оплаты абонентской платы.

есть ли способ обойти проблему совместимости с VS 2017, или я не могу использовать CUDA?

7 ответов


  1. если вы хотите установить 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.

install additional components for Visual Studio 2017

  1. вам также необходимо установить .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.

enter image description here

  1. скачать CUDA toolkit дистрибутив и извлечь его где-нибудь на вашем диске.
  2. если бы у вас не было CUDA toolkit установлен, сделайте это сейчас. Если у вас есть только Visual Studio 2017 установлен, снимите флажок Visual Studio integration флажок.


Теперь вы хотите получить "No supported version of visual studio was found" ошибка.

но для успешного создания проектов CUDA toolkit в Visual Studio 2017 вам также необходимо выполнить шаги 5 и 6.

  1. перейти к CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
    папка в извлеченном дистрибутиве, скопируйте все файлы и вставьте их в
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:

msbuild

  1. на последнем шаге вам нужно будет изменить свой 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 С !

another cl.exe might be in path

теперь вы можете создать свой проект 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 вам нужно сделать следующее

  1. установите правильную версию набора инструментов из отдельного компонента для VS 2017 -VC++ 2017 version 15.4 v.14.11 toolset

  2. запуск в оболочке windows после "c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11

  3. вы можете скомпилировать 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 не работают вместе. Инструкции, приведенные в решении выше, не работают. Вот что сработало для меня:

  1. Удалить Visual Studio.
  2. Удалить Установщик Visual Studio
  3. загрузить Visual Studio 2017.6 (обратите внимание, что Microsoft, как известно, изменяет ссылки и изменения без уведомления) https://docs.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017
  4. запустите установщик
  5. перейти к отдельным компонентам. Нажмите на Windows 10 SDK 10.0.15063 Введите описание изображения здесь

  6. скачать CUDA Toolkit с официального сайта: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

  7. вам может потребоваться загрузить патч.

Я хотел отредактировать мои программы 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

надеюсь, что это помогает!