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

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

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

Ответ 1

  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

  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 и нажмите ОК.

enter image description here

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


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

Но для успешной сборки проектов инструментария Cuda в 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 из папки Visual Studio !

another cl.exe might be in path

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

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

  2. Запустите в оболочке Windows следующую "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11

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

  1. Удалите Visual Studio.
  2. Удалить установщик Visual Studio
  3. Загрузите Visual Studio 2017.6 (обратите внимание, что Microsoft, как известно, меняет ссылки и редакции без предварительного уведомления) https://docs.microsoft.com/en-us/visualstudio/productinfo/install-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. Вам может понадобиться скачать патч.

Ответ 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

Надеюсь это поможет!