Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_CUDA.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆
      1. Различие возможностей между поколениями cuda-устройств

С каждым новым поколением процессоров NVIDIA в них реализуются дополнительные возможности, доступные программисту через CUDA. Программист должен помнить о двух номерах версий. Первое – вычислительная способность (compute capability), а второе – версия среды выполнения и программного интерфейса драйверов.

Вычислительная способность описывает возможности аппаратной части и отражает набор инструкций, поддерживаемый устройством, вместе со спецификациями, такими как максимальное число потоков в связке или число регистров у мультипроцессора. В данный момент обеспечивается полная обратная совместимость, так что вычислительная способность большей версии (более новой) включает в себя все возможности вычислительной способности меньшей версии.

Рис. 1.2. Вывод характеристик GPU с вычислительной способностью 1.1 при помощи примера deviceQuery.

Вычислительную способность конкретного GPU можно запросить программно, что иллюстрируется в примере SDK – deviceQuery. Результат выполнения такой программы показан на рис. 1.2. Для доступа к информации используется функция под названием cudaGetDeviceProperties, возвращающая данные в виде структуры cudaDeviceProp.

На рис. 1.2 вывод соответствует GPU с вычислительной способностью 1.1. Наиболее важные составляющие вычислительной способности – это число мультипроцессоров в устройстве, число регистров у мультипроцессора, объем памяти и дополнительная функциональность.

Некоторые аппаратные особенности не описываются вычислительной способностью. К примеру, способность к выполнению CUDA-функции одновременно с асинхронной передачей данных между хостом и CUDA-устройством доступна на большинстве GPU с вычислительной способностью 1.1, но не на всех. В таких случаях также необходимо использовать функцию cudaGetDeviceProperties, но проверять отдельные поля возвращаемой этой функцией структуры данных. Так, способности к выполнению CUDA-функции одновременно с копированием соответствует поле deviceOverlap.

    1. Инструментарий cuda Toolkit

      1. Установка

Работа с платформой CUDA начинается с установки драйверов инструментария CUDA Toolkit и сборника примеров CUDA GPU Computing SDK, которые доступны на сайте компании NVIDIA по следующему адресу:

http://developer.nvidia.com/object/cuda_3_0_downloads.html#Windows

В состав инструментария входят:

  • CUDA C/C++ компилятор nvcc и его вспомогательные инструменты;

  • библиотеки CUDA времени выполнения;

  • вычислительные библиотеки CUBLAS и CUFFT;

  • визуальный профайлер CUDA;

  • визуальный профайлер OpenCL;

  • другие инструменты и документация.

Проверить совместимость своего видеоадаптера с архитектурой CUDA можно на странице: http://www.nvidia.com/object/cuda_gpus.html .

Инструментарий CUDA Toolkit по умолчанию устанавливается в каталог “C:\CUDA”, но при необходимости его можно перенести в другой каталог.

При установке пакета настраиваются следующие переменные:

  • CUDA_BIN_PATH (обычно имеет значение C:\CUDA\bin или C:\CUDA\bin64) – путь к исполняемым файлам компилятора и динамическим библиотекам.

  • CUDA_INC_PATH (обычно имеет значение C:\CUDA\include) – путь к заголовочным файлам, необходимым для компиляции CUDA-программ.

  • CUDA_LIB_PATH (обычно имеет значение C:\CUDA\lib или C:\CUDA\lib64) – путь к статическим библиотекам, используемых на этапе компоновки CUDA-программ.

Для операционной системы Windows XP примеры CUDA SDK по умолчанию устанавливаются в каталог “C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK” (далее будем опускать начало этого пути). Кроме 78 примеров для CUDA в этот SDK входят 4 примера для платформы DirectCompute, требующие установленного DirectX 11 SDK, и 30 примеров для платформы OpenCL.