Подтвердить что ты не робот

Как запустить приложение CUDA в Visual Studio 2010?

Прямой вопрос: Как создать простой проект CUDA в мире визуальной студии в Visual Studio 2010?

Фон: Я написал ядра CUDA. Я хорошо знаком с файлами .vcproj из Visual Studio 2005 - несколько раз подправил. В VS 2005, если я хочу построить ядро ​​CUDA, я добавляю правило пользовательской сборки, а затем явно определяю вызов nvcc для сборки файлов.

Я перешел на Win 7 и VS 2010, потому что я действительно хочу попробовать nSight. У меня установлен nSight 1.5. Но здесь я полностью потерялся. Если я буду действовать по-прежнему, nvcc сообщает, что он поддерживает только msvc 8.0 и 9.0. Но на веб-сайте четко указано, что он поддерживает VS 2010.

Я читал где-то еще, что мне нужно установить VS 2008 (msvc 9.0), - мое слово. Делайте это сейчас.

Но я предполагаю, что, по крайней мере, часть моих проблем связана с техническими характеристиками встроенного пользовательского набора. Несколько сайты говорят о добавлении файла *.rules в сборку, но я "Я понял, что это применимо только к VS 2008. В разделе" Настройка сборки "я вижу CUDA 3.1 и 3.2, но когда я добавляю ядра в проект, они не создаются. Еще один веб-сайт объявляет, что ключ состоит из трех файлов: Cuda.props Cuda.xml Cuda.targets, но это не так. "Скажите, как и где добавлять эти файлы, или, скорее, я буду играть, я просто не понимаю примечания, упомянутые на веб-сайте.

Значит, знает, как создать простой проект в VS 2010, который строит ядро ​​CUDA - используя либо установку nSight 1.5, либо файл NvCudaRuntimeApi.v3.2.rules, который поставляется с CUDA 3.2 RC?

Спасибо заранее! Я бы предложил щедрость, но у меня всего 65 очков.

4b9b3361

Ответ 1

CUDA TOOLKIT 4.0 и более поздние версии

Файл настроек сборки (установленный в каталог Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations) "учит" Visual Studio, как компилировать и связывать любые .cu файлы в вашем проекте в ваше приложение. Если вы решили пропустить установку настроек или установить VS2010 после CUDA, вы можете добавить их позже, выполнив инструкции в Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration.

  • Создайте новый проект с использованием стандартных мастеров MS (например, пустого проекта консоли)
  • Реализовать ваш хост (последовательный) код в файлах .c или .cpp
  • Добавьте настройку сборки NVIDIA (щелкните правой кнопкой мыши по проекту, настройте настройки, отметьте соответствующий блок CUDA)
  • См. примечание 1, если используется CUDA 4.0
  • Внедрите свои оболочки и ядра в файлы .cu.
  • Если вы добавили файлы .cu перед настройкой сборки, вам нужно установить тип файлов .cu на CUDA C/C++ (щелкните правой кнопкой мыши по файлу, свойствам, задайте тип элемента)
  • Добавьте библиотеку времени выполнения CUDA (щелкните правой кнопкой мыши по проекту и выберите "Свойства", затем в Linker → Input add cudart.lib в дополнительные зависимости)
  • Затем просто создайте проект и файлы .cu будут скомпилированы в .obj и автоматически добавлены в ссылку.

Кстати, я бы рекомендовал избегать cutil, если это возможно, вместо этого сверните собственную проверку. Cutil не поддерживается NVIDIA, он просто пытался сохранить примеры в SDK сфокусированными на фактической разработке программ и алгоритмов и избегать повторения одних и тех же вещей в каждом примере (например, синтаксический анализ командной строки). Если вы напишете свое, тогда у вас будет намного лучший контроль и будет знать, что происходит. Например, оболочка cutilSafeCall вызывает exit(), если функция не работает - реальное приложение (в отличие от образца) должно, вероятно, обрабатывать отказ более элегантно!


Примечание

  • Только для CUDA 4.0 вам может потребоваться применить это исправление к настройкам сборки. Этот патч исправляет следующее сообщение:

Результат "оценки значения" $(CudaBuildTasksPath)" атрибута AssemblyFile в элементе недействителен

Ответ 2

Этот ответ относится к CUDA 3.2, начиная с 4.0 и выше CUDA поддерживает компилятор VC 10 напрямую, см. другие ответы для получения дополнительной информации

Вам нужен VS 2008 или Windows SDK 6.1. Это потому, что NSight 1.5 RC или CUDA 3.2 SDK используют компилятор VC 9 под капотом. У меня это успешно работает с установленным 2008 годом, и мне сказали, что он должен работать с SDK, но не пробовал.

С NSight 1.5 и/или CUDA 3.2 SDK вам не нужно гадать с любыми пользовательскими правилами сборки. Я был там, и это было больно. С последними сборками все, что уходит:

  • Создайте свой проект VС++.
  • Добавьте к нему файл .CU.
  • Выберите файл проекта в Обозревателе решений.
  • Открыть проект | Настроить настройки...
  • Проверьте "CUDA 3.2 (.targets, .props) ".
  • Выберите файл .CU в своем проекте и нажмите Alt-Enter, чтобы показать его свойства.
  • Убедитесь, что для параметра Item Type установлено значение "CUDA C/С++"

Он должен просто построить. Дайте мне знать, если это поможет, и если у вас возникнут проблемы, так как это из памяти.

Хорошая новость о том, что CUDA работает с VS 2010, стала намного проще.

Ade

BTW: Я обновлю свое сообщение в блоге.

Ответ 3

Еще один хороший учебник здесь:

http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/

если вы получили сообщение об ошибке '<' обратите внимание на этот шаг (из предыдущего ответа):

Если вы добавили файлы .cu перед настройками сборки, вам нужно установить тип файлов .cu на CUDA C/С++ (щелкните правой кнопкой мыши по файлу, свойствам, задайте тип элемента)

Но если вы будете следовать их шагам, это должно сработать!