2.1 Установка на Windows

Поскольку CUDA — это программно-аппаратная вычислительная технология от компании NVidia, то логично, что для её работы потребуется графический процессор NVidia восьмого поколения (G80) и далее, это могут быть продукты линеек Quadro, Tesla и GeForce 8, 9, 200, 400 и 500 серии.

Проверить, поддерживает ли ваша видеокарта технологию CUDA можно на непосредственно по таблице на официальном сайте:
http://developer.nvidia.com/cuda-gpus. Там же можно и посмотреть на версию вычислительных возможностей (Compute Capability) вашего графического процессора.

Общие требования к установке CUDA на Windows или Linux — это:

1.
Графический процессор, поддерживающий CUDA;
2.
Специальный драйвер для устройства;
3.
Программное обеспечение NVidia, которое можно бесплатно загрузить с сайта http://www.nvidia.com/getcuda;
4.
Среда разработки программ (Microsoft Visual Studio, Netbeans, etc.).

Установка и интеграция с Microsoft Visual Studio

Следует учесть, что для использования CUDA на Windows (32- или 64-разрядную) необходимо иметь одну из следующих операционных систем:

При разработке программы под Microsoft Windows можно использовать Microsoft Visual Studio для отладки и компиляции проектов. В данном разделе мы рассмотрим пример включения инструментов CUDA в среду разработки. У вас должна иметься уже установленная программа Microsoft Visual Studio 2010. Надо иметь в виду, что устанавливать ПО CUDA следует после установки Visual Studio для успешной интеграции.

Установка драйвера CUDA

Вначале нам потребуется загрузить и установить драйвер для работы CUDA, он интегрирован в последние версии NVidia ForceWare, которые можно найти по адресу http://www.nvidia.com/drivers. Нужно обратить внимание, что версия драйвера должна соответствовать требованиям, указанным в примечаниях к релизу (Release Notes) CUDA Toolkit. Драйверы для разработчиков (CUDA Developer Drivers) находятся в разделе CUDA Toolkit на сайте NVidia: http://www.nvidia.com/ getcuda, но для полной работы с CUDA подойдёт и последний стабильный графический драйвер.

Загрузка CUDA Toolkit и GPU Computing SDK

Последняя версия CUDA Toolkit всегда доступна по адресу:
http://www.nvidia.com/getcuda. Этот программный пакет содержит инструменты, библиотеки, заголовочные файлы для компиляции программ с помощью Microsoft Visual Studio.

GPU Computing SDK содержит в себе демонстрационные примеры, которые уже предварительно сконфигурированы для удобной работы в среде Microsoft Visual Studio.

Данные пакеты поставляются как для 32-х разрядных, так и для 64-х разрядных версий Windows.

Установка программного обеспечения CUDA

1.
Установка CUDA Toolkit.

Запустите установочный пакет и поэтапно следуйте процессу установки. Инструментарий CUDA по умолчанию устанавливается в C:\Program Files\Computing SDK\CUDA\ v#.#, где #.# – это версия 3.2 или выше. Эта папка включает в себя следующие каталоги и файлы:

Bin\ – исполняемые файлы компилятора и рабочие библиотеки;

Include\ – заголовочные файлы, требуемые для успешной компиляции приложений на CUDA;

Lib\ – необходимые библиотеки для связи программ на CUDA;

Doc\ – документация по библиотекам CUDA, справочник и примеры по программированию на расширении языка C – CUDA C.

Важно:

(a)
Убедитесь, что при установке CUDA Toolkit вы не забыли поставить галочку напротив CUDA Toolkit Visual Studio Integration (должна быть установлена по умолчанию).
(b)
CUDA Toolkit версии 3.1 и ниже устанавливаются в C:\CUDA по умолчанию, предварительно требуя деинсталяции более ранних версий CUDA Toolkit. С версии 3.2 появилась возможность одновременной установки сразу нескольких версий пакета.
2.
Установка GPU Computing SDK

Запустите установочный пакет и поэтапно следуйте процессу установки. GPU Computing SDK по умолчанию устанавливается в C:\Documents and Settings\All Users\Application Data\ NVIDIA Corporation\NVIDIA GPU Computing SDK #.#\ в Windows XP и в %ProgramData%\NVIDIA
Corporation\NVIDIA GPU Computing SDK #.#\ в Windows Vista или позже. Данный программный комплект содержит не только исходные коды программ для множества примеров и задач, но и шаблоны для Microsoft Visual Studio.

Компиляция примеров и проверка работоспособности

Для проверки правильной работоспособности CUDA следует произвести компиляцию и запуск некоторых из включённых в SDK примеров.

Версия CUDA Toolkit может быть проверена в окне командной строки с помощью ввода nvcc V.

GPU Computing SDK включает в себя примеры программ как в исходной, так и в скомпилированной форме. Для проверки успешной установки программного и аппаратного обеспечения строго рекомендуется запуск программы bandwidthTest, расположенной в C:\ Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK #.#\C\bin\win32\ Release в Windows XP и в %ProgramData%\NVIDIA Corporation\ NVIDIA GPU Computing SDK #.#\C\bin\win32 в случае с Windows Vista и позже. (На 64-х разрядных версиях Windows путь к директории заканчивается на win64\Release).В случае если установка была произведена корректно, вы увидите на экране терминала примерно следующую картину:

PIC

Рис. 2.1 Допустимые результаты тестовой программы bandwidthTest

Название устройства (вторая строка) и пропускная способность отличаются от системы к системе. Здесь важно содержимое пары строк: второй, которая отображает имя модели устройства, и предпоследней, которая сообщает, что все требуемые тесты пройдены.

Если тесты пройдены неудачно, убедитесь, что ваше устройство действительно поддерживает CUDA, и что вы правильно установили всё необходимое программное обеспечение.

Для наглядной демонстрации возможностей CUDA вы можете запустить пример программы Particles, расположенной в каталоге:

Интеграция NVidia CUDA с Microsoft Visual Studio

1.
Для того чтобы файлы CUDA (.cu) корректно включались в наши будущие проекты, в Visual Studio 2010 идём в “Сервис -> Параметры” (Tools Options), выбираем “Проекты и решения Параметры проекта VC++” (Projects and Solutions VC++ Project Settings), ищем строчку “включаемые расширения” (Extensions To Include) и добавляем туда расширения “.cu” и “.cu.h” (без кавычек). Далее нужно перейти в “Сервис Параметры Текстовый редактор Файловые расширения” (ToolsOptions Text EditorFile Extension), добавить новое расширение “cu” и выбрать Microsoft Visual C++ в качестве редактора кода. Это позволит включить С++-подсветку синтаксиса в .cu-файлах;
2.
Подсветка синтаксиса CUDA (зарезервированные слова).

Скопируйте файл “usertype.dat”, который находится по адресу
\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\doc\syntaxhighlighting\visualstudio_8” в директорию “C:\Program Files\Microsoft Visual Studio 10.0\Common7\ IDE”

3.
Для того чтобы среда знала, как нужно компилировать .cu-файлы, следует использовать специальные правила компиляции этих проектов. CUDA SDK содержит такие файлы, называемые rules.
(a)
Скопируйте содержимое папки “C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\ visual_studio_integration\rules” в “C:\Program Files\Microsoft Visual Studio 10.0\VC\VCProjectDefaults”.
(b)
Также скопируйте файлы из каталога
“C:\Program Files\NVIDIA GPU Computing Toolkit\ CUDA\v4.0\extras\visual_studio_integration\ MSBuildExtensions” в “C:\Program Files\MSBuild\ Microsoft.Cpp\v4.0\BuildCustomizations”.

Внимание: на странице загрузки CUDA Toolkit 4.0 выложено исправление Build Customization для VS2010 (CUDA Toolkit 4.0 Build Customization Bug Fix), настоятельно рекомендуется загрузить архив и проследовать содержащимся в нём инструкциям.

Проверка работоспособности и настройка CUDA под Visual Studio

Для проверки правильной работоспособности можно запустить какой-нибудь готовый проект, например, из директории GPU Computing SDK, расположенной в “C:\Documents and Settings\All Users\Application Data\ NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\src” в Windows XP и в “%ProgramData%\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\src” в случае с Windows Vista и позже, но мы опишем полную процедуру настройки чистого проекта под CUDA.

Создайте новый проект — консольное приложение (Win32 Console Application), дайте ему имя, какое вы хотите. В настройках мастера отметьте галочкой ”Пустой проект” (Empty project) и снимите галочку с “Предварительно скомпилированные заголовки” (Precompiled headers). Добавьте в проект C++-файл, назовите его sample.cu.

Теперь настроим проект для компиляции .cu-файлов с помощью компилятора CUDA. Щёлкните правой кнопкой мыши на sample.cu в “Обозревателе решений” (Solution Explorer), выберите Build Customizations, отметьте галочкой CUDA 4.0(.targets, .props). Снова нажимаем на sample.cu в Solution Explorer правой кнопкой и идём в “Свойства Свойства конфигурации Общие Тип элемента” (Properties Configuration Properties General Item type) и выбираем CUDA C/C++.

В свойствах проекта выбираем “Все конфигурации” и “Все платформы” из выпадающего списка (Configurations All Configurations и Platforms All Platforms), после чего переходим в “Свойства проекта Свойства конфигурации Компоновщик Ввод” (Project Properties Configuration properties Linker Input). Ищем “Дополнительные зависимости” (Additional Dependencies), добавляем cudart.lib. Это подключит библиотеку среды выполнения CUDA (CUDA Runtime Library) к нашему проекту. Вы можете также подключить дополнительные библиотеки CUDA (cutil32D.lib, cutil64D.lib, cublas.lib).

После того, как вы открыли готовый или создали свой проект в Visual Studio на основе примеров программ из последующих глав, настроили его согласно вышеуказанной инструкции, щёлкните правой кнопкой мыши на проект в Solution Explorer, выберите Build Solution или нажмите F7, и если ошибок нет, то нажмите F5 и ваш проект запустится.