Cuda не работает visual studio

параллельная обработка — Использование CUDA с Visual Studio 2017

Я пытаюсь установить CUDA, но получаю сообщение «Не найдено поддерживаемой версии Visual Studio». Я думаю, что это потому, что я использую Visual Studio 2017 (сообщество), а 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 ,

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

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

Теперь вы хотите получить «No supported version of 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:

  1. На последнем шаге вам нужно будет отредактировать ваш Cuda проекты по распознаванию задач сборки NVidia от Visual Studio 2017 , Открыть свой .vcxproj файл в текстовом редакторе и найти все вхождения CUDA 8.0.props , Заменить макрос в начале строки $(VCTargetsPath14) так что фрагмент XML будет выглядеть следующим образом:

Не забудьте отредактировать путь пользовательских целей в конце файла:

Удостоверьтесь, что дважды проверили свою конифурацию пути!
Если вы используете nvcc из командной строки вы не можете звонить cl.exe от Visual Studio папка!

Теперь вы можете создать свой проект Cuda из Visual Studio 2017.

Части этого решения от Блог Олега Тарасова .

Другие решения

На данный момент, похоже, Microsoft все еще выпускает версию сообщества VS2015 Update 2. Вы должны присоединиться к программе «dev essentials», но она кажется бесплатной.

Я смог загрузить установщик с Вот относительно недавно.

Обновление: CUDA 9 RC был доступен вчера на developer.nvidia.com для зарегистрированных разработчиков и поддерживает VS 2017.

Спасибо всем за вашу помощь. Я просто хотел дополнить этот пост последними частями головоломки. CUDA v9.0 RC ищет VS2017 для идентификации как 1910, но последнее обновление фактически идентифицирует как 1911. Чтобы исправить, откройте … / CUDA / v9.0 / include / crt / host_config.h и измените эту строку:
#if _MSC_VER 1910
к этому:
#if _MSC_VER 1911

Вам также может понадобиться добавить следующее в свои списки CMakeLists:
list(APPEND CUDA_NVCC_FLAGS —cl-version=2017)

Для людей, видящих это последнее.

Сначала попробуйте установить 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 > .

Для того, чтобы получить работающий компилятор 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) все работает нормально.

Но это не перестанет показывать ошибку.

Понятия не имею почему, но попытки запустить его на VS2015 приводят к ошибкам о том, что v141 не устанавливается … поэтому из-за какой-то извращенной логики я пытался не использовать v141 там, где он был установлен … и все работало !!

Оставьте это здесь, так как это может помочь кому-то еще в такой же ситуации. (хотя я действительно не понимаю, почему, как, когда, кто или что из решения.

Последнее обновление (правильное по состоянию на 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/installing-an-earlier-release-of-vs2017
  4. Запустить установщик

Перейти к отдельным компонентам. Нажмите на Windows 10 SDK 10.0.15063
введите описание изображения здесь

  • Вам может понадобиться скачать патч.
  • Источник

    Использование 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 .

    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.

    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:

    1. на последнем шаге вам нужно будет изменить свой Cuda проекты для распознавания задач сборки NVidia из Visual Studio 2017 . Открой свой .vcxproj файл в текстовом редакторе и найти все вхождения CUDA 8.0.props . Замените макрос в начале строки на $(VCTargetsPath14) чтобы фрагмент XML выглядел следующим образом:

    не забудьте отредактировать заказ целевой путь в конце файла:

    убедитесь, что дважды проверьте свой путь конифурации!
    Если вы используете 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 1910
    на это:
    #if _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) все работает нормально.

    но он не перестает показывать ошибку.

    Не знаю почему, но попытка запустить его на 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. запустите установщик

    перейти к отдельным компонентам. Нажмите на Windows 10 SDK 10.0.15063 Введите описание изображения здесь

  • вам может потребоваться загрузить патч.
  • Я хотел отредактировать мои программы CUDA с помощью текстового редактора (т. е. Sublime) и скомпилировать их из командной строки, но я столкнулся с ошибкой компилятора nvcc. Я установил Visual Studio 2017 с ОС Windows 10, но после компиляции он сказал: «разрешена только версия VS 2012, 13, 15 и 17.»Так что я сделал, чтобы intall VC++ 2015 toolkit из установочного пакета установщика VS 2017 (см. изображение верхнего сообщения). Я не прошел через весь его процесс, вместо этого я только скопировал путь мой сл.exe-файл из вновь созданной папки VS 14.0 в переменную среды. Этот.exe можно найти здесь:

    Источник

    CUDA под Windows: советы в начале работы

    Софт: Windows 7, 64bit; CUDA Toolkit 6.0; Microsoft Visual Studio 2008

    Начал осваивать CUDA с чтения книги:

    Сандерс Дж., Кэндрот Э. Технология CUDA в примерах. Введение в программирование графических процессоров. — М.: ДМК Пресс, 2013. — 232 с.: ил. — ISBN: 978-5-94074-504-4.

    Что необходимо для работы с CUDA

    Для работы с CUDA необходимо иметь:

    1. графический процессор (видеокарту), поддерживающий архитектуру CUDA;
    2. драйвер для этого устройства от NVIDIA;
    3. компилятор языка C;
    4. комплект средств разработки CUDA (CUDA Toolkit).

    Пункты 1-3 у меня были, включая компилятор из набора Visual Studio 2008.

    CUDA Toolkit можно скачать здесь. Вместе с ним поставляются многочисленные примеры, которые находятся в папке

    C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0

    В папке 0_Simple\template находится заготовка для стандартного CUDA-проекта.

    Как создавать проекты CUDA в Visual Studio и запускать примеры из книги

    В VS при создании нового проекта выбираем тип NVIDIA/CUDA 6.0 и из шаблонов: CUDA Runtime 6.0.

    После этого VS формирует заготовку проекта, содержащую единственный исходный файл kernel.cu . Он нам не нужен. Вместо него вставляем пример из книги:

    Расширение файла .CU имеет значение! Только в таких файлах можно пользоваться CUDA-расширениями языка C++.

    Чтобы настроить подсветку синтаксиса в файлах .CU как в C++, нужно в окне Tools -> Options -> Text Editor -> File Extension указать расширение .cu и в списке Editor:Microsoft Visual C++. После перезапуска VS получим подсветку синтаксиса.

    Сообщения об ошибках

    В примере из Главы 4 «Вычисление фрактала Джулиа на GPU» (который, вообще говоря, называется множество Жюлиа), при компиляции появляются сообщения вида:

    Для исправления нужно добавить квалификатор __device__ в конструктор структуры:

    Решение проблемы «Видеодрайвер nVidia перестал отвечать и был успешно восстановлен»

    Такое сообщение появилось у меня при выполнении примера «Вычисление фрактала Джулиа на GPU» (глава 4). Драйвер видеокарты стоял самый новый, конфликтов с предыдущими версиями драйвера не обнаружилось. Видеокарта работала штатно и не была перегрета. Тем не менее сообщение появлялось.

    Обзор возможных способов решения этой проблемы приведен здесь. В моем случае помог следующий рецепт.

    Необходимо настроить в системном реестре два параметра:

    • TdrLevel – управляет восстановлением. По умолчанию равен «3», что означает „TdrLevelRecover – Recover on timeout”, т. е. автоматическое восстановление по истечению времени задержки ( TdrDelay ). Значение «0» соответствует „TdrLevelOff – Detection disabled”, т. е. отключению детектирования ошибок драйвера.
    • TdrDelay – время задержки (в секундах), иначе: время реагирования на бездействие драйвера. Значение по умолчанию равно «2». При отключении детектирования ошибок ( TdrLevel = 0 ) значение TdrDelay игнорируется.

    Желательно не отключать проверку ошибок, а увеличить время задержки, установив его равным 3-м или более секундам. Значение подбирается экспериментально: можно начать с 10, и постепенно уменьшать время задержки.

    Ключи TdrLevel и TdrDelay устанавливаются в редакторе реестра, в ветке HKLM\System\CurrentControlSet\Control\GraphicsDrivers . Возможно, что их придется создать. Ключи имеют тип REG_DWORD, не забудьте указать галочку «десятичная система счисления» при редактировании параметра.

    Изменения в реестре вступят в силу после перезагрузки системы.

    В результате получим:

    Читайте также

    Комментарии

    Дмитрий Храмов
    Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.

    Источник

    Оцените статью