3.1 Общие понятия

Технология CUDA — это программно–аппаратная архитектура, которая позволяет производить вычисления с использованием графических процессоров NVidia, основана на расширении языка Си, дает возможность организовывать доступ к набору инструкций графического ускорителя и управлять его памятью, разработать на нем сложные параллельные вычисления.

CUDA SDK (Software Development Kit)содержит множество примеров кода и хорошо документирован. В основе API лежит расширенный язык Си, а для трансляции кода с этого языка в состав CUDA SDK входит компилятор командной строки nvcc, созданный на основе открытого компилятора.

Рассмотрим основные характеристики CUDA:

1.
стандартный язык Си для параллельной разработки приложений на GPU;
2.
стандартные библиотеки численного анализа FFT (быстрое преобразование Фурье) и BLAS (линейная алгебра);
3.
оптимизированный обмен данными между CPU и GPU;
4.
взаимодействие с графическими драйверами OpenGL и DirectX;
5.
поддержка 32- и 64-битных операционных систем: Windows XP, Windows Vista, Windows 7, Linux и MacOS X;
6.
возможность разработки на низком уровне.

Среда разработки CUDA (CUDA Toolkit) включает:

1.
Си-компилятор nvcc;
2.
библиотеки FFT и BLAS;
3.
профилировщик;
4.
отладчик gdb для GPU;
5.
CUDA runtime драйвер;
6.
руководство по программированию.