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

Прямой Вопрос: Как создать простой проект hello world 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) -- my word. Делаю это сейчас.

но я предполагаю, что по крайней мере часть моих проблем связана с доморощенными спецификациями пользовательского инструмента сборки. несколько сайты поговорим о добавлении *.файл правил для сборки, но я понял, что это применимо только к VS 2008. В разделе "настройки сборки" я вижу CUDA 3.1 и 3.2, но когда я добавляю ядра в проект, они не строятся. другой сайт провозглашает, что ключ состоит из трех файлов:Cuda.реквизит соты.xml Cuda.цели, но он не говорит, как и где добавить эти файлы - или, скорее, я буду играть, что я просто не понимаю Примечания, указанные на веб-сайте.

Так кто-нибудь знает, как создать простой проект в VS 2010, который строит ядро CUDA-с помощью установки nSight 1.5 или NvCudaRuntimeApi.В3.2.файл правил, который поставляется с CUDA 3.2 RC?

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

3 ответов


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

файл настроек сборки (установлен в Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations directory)" учит " 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++ (правой кнопкой мыши на файле свойства, set Тип Элемента)
  • добавить библиотеку времени выполнения CUDA (щелкните правой кнопкой мыши на проекте и выберите свойства, затем в Компоновщик -> Ввод добавить cudart.lib до Дополнительные Зависимости)
  • тогда просто создайте свой проект и.файлы cu будут скомпилированы .obj и автоматически добавляется в ссылку

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


Примечание

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

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


этот ответ относится к 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++.
  • добавить a .CU файл к нему.
  • Выбрать файл проекта в обозревателе решений.
  • Открыть Настройки Проекта / Сборки...
  • Проверьте "CUDA 3.2 (.цели, .реквизит) " настройка.
  • выберите a .CU файл в вашем проекте и нажмите Alt-Enter, чтобы показать его свойства.
  • убедитесь, что тип элемента установлен в "CUDA C / C++"

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

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

Ade

BTW: я обновлю свой пост в блоге.


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

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

Если вы получите сообщение об ошибке "

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

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