Как запустить приложение CUDA в Visual Studio 2010? - PullRequest
23 голосов
/ 23 сентября 2010

Прямой вопрос: Как создать простой проект CUDA hello world в 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 очков.

Ответы [ 3 ]

44 голосов
/ 02 сентября 2011

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 (щелкните правой кнопкой мыши проект и выберите Свойства , затем в Линкер -> Ввод добавьте cudart.lib к Дополнительные зависимости )
  • Затем просто соберите свой проект, и файлы .cu будут скомпилированы в .obj и автоматически добавлены в ссылку

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


Примечание

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

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

7 голосов
/ 12 января 2012

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

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

, если вы получаете сообщение об ошибке «<», отметьте этот шаг (из предыдущего ответа): </p>

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

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

7 голосов
/ 01 октября 2010

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

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

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

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

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

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

Ade

Кстати: я обновлю свой блог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...