Оглавление 4




Скачать 391.07 Kb.
НазваниеОглавление 4
страница2/9
Дата18.04.2013
Размер391.07 Kb.
ТипДокументы
1   2   3   4   5   6   7   8   9

Глава 1. Архитектура графических акселераторов, средства отображения на них вычислительных алгоритмов и исследуемые алгоритмы

    1. Краткое описание архитектуры графических акселераторов


Предметом исследования данной работы являются особенности отображения вычислительных алгоритмов на графические акселераторы («GPU-устройства») nVidia, представляющие собой набор вычислительных узлов – мультипроцессоров, имеющих доступ к данным, хранящимся в памяти самого GPU-устройства (рис. 2). Каждый мультипроцессор состоит из некоторого числа арифметико-логических устройств (АЛУ), набора регистров, кэша для специальных видов памяти и общей памяти, играющей роль управляемого кэша.

Мультипроцессоры работают по принципу Single Instruction, Multiple Thread (SIMT) [15], очень похожему на известный принцип организации параллельных архитектур Single Instruction, Multiple Data (SIMD). Ключевое отличие SIMT-организации архитектуры от SIMD состоит в том, принцип SIMD предполагает распараллеливание по данным на уровне инструкций, выполняющихся на векторном сопроцессоре и вызывающихся из одного потока управления. На мультипроцессоре SIMT-архитектуры, напротив, каждое АЛУ имеет свой собственный поток управления, но при этом наилучшая производительность достигается тогда, когда все АЛУ одного мультипроцессора выполняют одинаковую последовательность инструкций над разными наборами данных, расположенных в памяти GPU-устройства.

В данной работе использовались акселераторы GeForce 9800M GTX, 8800 GTX, которые имеют соответственно двенадцать и шестнадцать мультипроцессоров, по восемь АЛУ в каждом мультипроцессоре.



Рис. 2. Архитектура GPU-устройства.

Для решения задач общего назначения в GPU-устройствах мультипроцессоры конфигурируется определенным образом для выполнения заданной последовательности команд на множестве входных данных, то есть перед разработчиком стоит задача формирования последовательности инструкций, решающей поставленную задачу, конфигурации устройства и передачи в устройство потока входных данных.
    1. Средства отображения алгоритмов на архитектуру графических акселераторов


При использовании nVidia CUDA SDK, процедура отображения алгоритма на GPU-устройство выглядит следующим образом (рис. 3): разработчик описывает вычислительное ядро (kernel), то есть процедуру, которая будет исполняться на GPU-устройстве над потоком данных. При запуске ядра на графическом акселераторе разработчик задает его конфигурацию на основе описанной ниже иерархии. Каждый поток, физически выполняющийся на АЛУ мультипроцессора, исполняет инструкции, описанные в ядре. При этом, благодаря SIMT-архитектуре, на каждом мультипроцессоре несколько потоков параллельно выполняют одну и ту же последовательность инструкций. Логически потоки объединяются в блоки, ограничивающие возможность обмена данными между потоками. Потоки могут обмениваться данными через общую память только внутри одного блока. Кроме того, потоки из одного блока выполняются на одном и том же мультипроцессоре.



Рис. 3. Иерархия элементов конфигурации GPU-устройства

Таким образом, перед запуском ядра разработчик задает его конфигурацию (grid): размер блока и общее число блоков. Для более удобного структурирования конкретных задач в CUDA предусмотрена возможность конфигурирования блоков и потоков в двумерные сетки. Данная возможность обеспечивает удобство при обработке данных, имеющих двумерную структуру: изображений, матриц и т.д.

Отметим так же еще один важный структурный элемент конфигурации ядра – основу (warp). Под основой (в терминологии nVidia) подразумевается набор потоков, инструкции которых выполняются на мультипроцессоре одновременно. Размер основы определяется архитектурой конкретного GPU-устройства и размер блока, определяемый при конфигурировании ядра должен быть пропорционален размеру основы.

Ключевым моментом отображения вычислительного алгоритма на GPU-архитектуру является определение вычислительного ядра, соответствующего решению поставленной задачи. При этом следует учитывать, что каждый из потоков, исполняющих код ядра, для получения входных данных должен обращаться к своей области памяти устройства. На рис. 4 представлена общая схема преобразования последовательного циклического алгоритма в его GPU-реализацию.



Рис. 4. Общая схема отображения вычислительного алгоритма на GPU-устройство

При исполнении на CPU-системе алгоритм многократно последовательно вычисляет некоторую функцию на различных наборах данных . При исполнении на GPU указанная функция преобразуется к виду , удобному для исполнения в рамках одного потока и затем вычисляется на GPU параллельно, на разных наборах данных. Разумеется, данный подход является эффективным лишь в том случае, когда итерации цикла, вычисляющего , независимы.

Заметим также, что при описании вычислительного ядра необходимо учитывать ряд важных особенностей работы GPU-устройств. Во-первых, SIMT-архитектура накладывает ограничения на использование ветвящихся конструкций (if,else). Это связано с тем, что потоки, исполняющиеся на одном и том же мультипроцессоре, должны оперировать одной и той же последовательностью инструкций, что может нарушаться при несовпадении условий ветвления у разных потоков. При нарушении этого ограничения может происходить сильное ухудшение производительности. Во-вторых, следует учитывать особенности работы GPU-устройств с памятью: реализация ядра таким образом, чтобы одновременно выполняющиеся потоки читали данные из соседних участков памяти, существенно увеличивает производительность. Кроме того, необходимо учитывать трудоемкость обращения к памяти GPU-устройства: например, чтение из памяти для акселераторов nVidia занимает 400-600 тактов, тогда как операция сложения занимает всего 4 такта. В-третьих, следует учитывать архитектуру конкретного GPU-устройства, на котором выполняется вычислительная задача. Например, неэффективно задавать конфигурацию ядра с числом блоков меньшим числа мультипроцессоров, имеющимся на устройстве. Более подробно эти и остальные особенности GPU-архитектуры описаны в [13].

1   2   3   4   5   6   7   8   9

Похожие:

Оглавление 4 iconЮжно-Уральский государственный университет
После того, как документ готов, здесь следует вставить оглавление (меню "Вставка", команда "Оглавление и указатели…").]
Оглавление 4 iconОглавление оглавление 1 введение 2 постановка задачи 3 анализ методов решения задачи 3
Всемирная тенденция к объединению компьютеров в сети обусловлена рядом важных причин, таких
Оглавление 4 iconОглавление оглавление 2 введение 3
Так, в западной экономической системе сфера услуг играет главенствующую роль, а в промышленности на первый план выходят наукоемкие...
Оглавление 4 iconПрограмма начального общего образования сош с. Перекопное 2011 г. Оглавление. Муниципальное общеобразовательное учреждение 1 Оглавление. 2 Раздел 1 Пояснительная записка. 6 Закон РФ «Об Образовании»
«средняя общеобразовательная школа с. Перекопное ершовского района саратовской области»
Оглавление 4 iconОглавление оглавление 1
В двадцать первом веке объемы учебного материала, высокие требования к современному ученику и учителю подталкивают педагога к поиску...
Оглавление 4 iconОбщие Требования, предъявляемые к учебной литературе Общие требования
Федеральному государственному образовательному стандарту. Оглавление учебника должно соответствовать всему перечню разделов учебной...
Оглавление 4 iconИсследовательская работа 2010 год. Оглавление Сотовый телефон в нашей жизни. 1 Оглавление 2 Глава 1 Теоретическая часть «Сотовый телефон в нашей жизни»
«Осторожно! Высокое напряжение», и находится там продолжительное время. В результате, организм человека работает уже не в тех оптимальных...
Оглавление 4 icon3 оглавление

Оглавление 4 iconРуководство по Mysql оглавление

Оглавление 4 icon2011 201 оглавление
Лекция 3
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница