и разделяемая (существует также локальная память, но программист,
вообще говоря, не может управлять этим видом памяти). Скорость
доступа к глобальной памяти (VRAM) является достаточно низкой,
однако эта скорость может быть повышена при помощи связывания
нескольких логических запросов к памяти (запросов от разных пото-
ков) в один аппаратный (физический) запрос. Для обеспечения свя-
зывания необходимо при организации доступа к памяти следить, по
возможности, за выполнением некоторых специальных условий.
При выполнении задания графическим процессором, обработка
потоков блока мультипроцессором проводится порциями —
варпами
(warp), при этом варп делится пополам на два полуварпа [2]. Пред-
полагается, что потоки внутри одного полуварпа выполняются одно-
временно. Размер варпа не является строго определенной величиной
и зависит от конкретного оборудования, однако для всех на данный
момент существующих устройств размер варпа положен равным 2.
Под связыванием запросов понимается [2] связывание логических
запросов к памяти от различных потоков полуварпа в один физиче-
ский запрос. При этом все запросы должны попадать в одну область
памяти определенного размера с начальным адресом, имеющим опре-
деленную кратность. Кроме того, номер потока в полуварпе должен
соответствовать номеру ячейки в области памяти (рис. 2). На рис. 2
изображено классическое условие обеспечения связанности при ра-
боте с четырехбайтовыми величинами. Набор верхних ячеек на этом
рисунке соответствует номерам потоков, а нижний набор — номерам
ячеек в глобальной памяти видеоадаптера; 16 потоков полуварпа обра-
щаются к 16 идущим подряд ячейкам памяти.
Разделяемая память является более предпочтительной для работы
по сравнению с VRAM в основном из-за большей скорости доступа к
ней, но при этом ее размер весьма ограничен. Кроме того, необходимо
Рис. 2. Условия обеспечения связывания при работе с глобальной памятью
ISSN 1812-3368. Вестник МГТУ им. Н.Э. Баумана. Сер. “Естественные науки”. 2011. № 3
75