РуЛиб - онлайн библиотека > Некрасов Кирилл > Околокомпьютерная литература > Параллельные вычисления общего назначения на графических процессорах > страница 3

Читаем онлайн «Параллельные вычисления общего назначения на графических процессорах» 3 cтраница

обработка данных SIMD
Выбор концепции SIMD для графических процессоров обусловлен
тем, что она обеспечивает параллельное использование большого ко‑
личества «вычислителей» без явного управления ими: распределения
задач, синхронизации вычислений и коммуникации между параллель‑
ными расчетами. Разработчикам GPU это позволяет за счет упроще‑
ния архитектуры добиваться большей производительности, а при про‑
граммировании сокращает работу.
C 2001 по 2006 годы графические процессоры включали в себя «вы‑
числители» двух типов: вер ш инные и пиксел ьные конв ейеры (или
шейдеры, см. пояснения ниже) [7–8]. Первые были предназначены для
проектирования на плоскость экрана вершин, задающих отображае‑
мые поверхности, а вторые — для расчета цветов пикселей на экране.
Так выпущенные в 2006 году процессоры ATI Radeon X1900–1950 име‑
ли 8 вершинных и 48 пиксельных конвейеров, которые к тому же были
суперскалярными (одновременно обрабатывали по 4 компоненты век‑
тора).
В 2007 году производители GPU перешли от различающихся вер‑
шинных и пиксельных конвейеров к унифицированным потоковым
процессорам, заменяющим как вершинные, так и пиксельные конвей‑
еры. Графические процессоры 2014–2015 годов выпуска ATI Radeon
Fiji XT и NVIDIA GM200–400 включают 4096 и 3072 потоковых процес‑
7
1. Структура и возможности вычислительной системы с графическим процессором
сора (для 32‑битовых вычислений «одинарной» точности) при несколь‑
ко различной внутренней архитектуре. При этом производительность
графических процессоров продолжает быстро увеличиваться.
1.2.2. Взаимодействие графического и центрального процессоров
Графический процессор не имеет средств прямого взаимодействия
с устройствами ввода-вывода (кроме монитора), а также доступа к опе‑
ративной памяти компьютера. Поэтому управление графическим про‑
цессором осуществляется только через центральный процессор. Схема
взаимодействия центрального и графического процессоров приведе‑
на на рис. 1.3.
Графический ускоритель (видеокарта)
Регистры и разделяемая память вычислительных блоков
GPU
• • • Языки для GPU: HLSL, CUDA
Кеш для
констант
Вычислительные
блоки GPU
Программа
для GPU
Общая память GPU (видеопамять)
Шина
данных(обычно
PCI-Express
либо AGP
Шина
данных
− PCI-Express)
• • Драйвер графического процессора
• Языки программирования высокого
уровня для CPU
Оперативная память
компьютера
CPU
Пользователь
Внешние устройства
Рис. 1.3. Схема взаимодействия CPU и GPU с памятью и между собой
Графические ускорители подключаются к системной плате персо‑
нального компьютера через высокоскоростную шину данных (в на‑
стоящее время PCI-Express). Посредством этой шины центральный
процессор получает доступ к видеопамяти, а также к некоторым раз‑
делам кеш-памяти, расположенной на самом графическом процессо‑
ре. Через эту же шину CPU загружает в графический процессор про‑
грамму и запускает ее.
8
1.2. Архитектура графического процессора (GPU)
Перед запуском программы, исполняемой на GPU, центральный
процессор передает графическому процессору данные двух видов:
· значения констант, используемых в программе;
· один или несколько больших массивов данных для потоковой
обработки.
К константам необходим постоянный и быстрый доступ, поэто‑
му они записываются в кеш-память (или регистры), расположенную
на кристалле графического процессора. Массивы данных часто быва‑
ют настолько велики, что целиком в кеш-память не помещаются. Од‑
нако при простейшей потоковой обработке каждый из элементов мас‑
сивов данных используется только один раз. Так что для хранения этих
массивов предназначена видеопамять (общая память), представляю‑
щая собой отдельные микросхемы на плате графического ускорителя.
Она работает медленнее кеш-памяти и регистров, зато имеет бόльший
объем, до нескольких гигабайтов.
Результаты своей работы графический процессор может сразу за‑
писывать в раздел видеопамяти, называемый буфером кадра, откуда
они передаются на монитор. Но существует также возможность вооб‑
ще не отображать расчет на экране, а копировать результаты из видео‑
памяти в оперативную память компьютера, где они становятся доступ‑
ными для дальнейшей обработки центральным процессором. На этом
и основано использование графических процессоров для вычислений
общего назначения, не связанных с обработкой графики.
На схеме (рис. 1.3) указаны также типы программ, которые исполня‑
ются центральным и графическим процессорами на различных этапах
обработки данных. Такие программы будут далее подробно рассмотрены.
1.2.3. Иерархия памяти, доступной центральному
и графическому процессорам
Как показано на схемах (рис. 1.1, рис. 1.3), в программах для гра‑
фических процессоров используется память нескольких разновидно‑
стей с различными характеристиками и