
- •Аннотация
- •Оглавление
- •Введение
- •1. Графические ускорители – как эффективный путь повышения производительности вычислительных архитектур
- •1.1. Этапы развития графических ускорителей и их устройство
- •1.1.1. Основная терминология и устройство графического адаптера
- •1.1.2. Архитектура современныхGpu
- •1.2. Подход к использованию графических ускорителей для вычислений общего назначения
- •1.2.1.GpgpUподход
- •1.2.2. Гибридные вычислительные системы
- •1.2.3. Программная модельCuda
- •1.3.OpenAcc. Новейший стандарт разработкиGpgpu-приложений
- •1.3.1. Возможности стандарта
- •1.3.2. Модель выполнения
- •1.3.3. Модель памяти
- •1.4. Выводы по разделу 1
- •2. Постановка задачи магистерской диссертации
- •2.1. Цели и задачи исследования
- •2.2. Математическая постановка задачи решения трехдиагональной системы линейных уравнений методом блочной прогонки
- •2.3. Разработка параллельного алгоритма для решения трехдиагональной системы линейных уравнений
- •2.4. Выводы по разделу 2
- •3. Реализация и исследование разработанного алгоритма
- •3.1. Структура параллельной программы и особенности реализации
- •3.2. Результаты тестирования
- •3.3. Анализ результатов
- •3.4. Выводы по разделу 3
- •Заключение
- •Список использованных источников
- •Приложение 1. История развития графических ускорителей и их устройство
- •1.1. Устройство графического адаптера
- •1.2. Рынок графических адаптеров
- •1.3. АрхитектураGpugt200
- •1.4. Современное положение дел
- •Приложение 2. Основная часть программного кода разработанного приложения
1.3. АрхитектураGpugt200
Рассмотрим подробно архитектуру GPUна примере чипаGT200, который появился в 2008 году. Как и прежде, будем оперировать терминологией, предложенной компаниейNVIDIA.
Начнём рассмотрение с базового элемента GPUNVIDIA– ядра, называемогоSP(singleprocessingcore). КаждыйSPявляется полностью конвейерным, состоит из двух арифметико-логических устройств (АЛУ) и одного математического сопроцессора для операций с плавающей точкой (floating point unit,FPU).SPне имеет своего кэша, так как в силу того, что самSPпригоден только для выполнения большого количества математических операций, его функциональность ограничена. Набор инструкций у такого процессора гораздо меньше, чем у центрального процессора.
Сам по себе, SPсовершенно бесполезен, ноNVIDIAв своихGPUобъединяет большое количество такихSPв массив (см. рис. 1.1); это особенно полезно, если учитывать, что, например, задача рендеринга графики является очень хорошо параллелизуемой.
На рисунке 1.1 представлен потоковый мультипроцессор (Streaming Multiprocessor, SM):
Рисунок 1.1. Потоковый мультипроцессор (SM)
SM– это массивSP(в данном случае 8SP), а так же ещё 2 специальных процессора (SpecialFunctionUnits,SFU). КаждыйSFUсостоит из четырёх вычислительных устройств, предназначенных для трансцендентных операций и интерполяции, последнее применяется в таких операциях, как анизотропная фильтрация текстур. Так же вSMесть диспетчер исполнения командMT, предназначенный для распределения нагрузки между всемиSPиSFUв массиве. При таком наборе ядер в одномSM, грамотное управление их работой очень важно, для того, чтобы решить всю задачу эффективно.
В дополнение к процессорным ядрам, в SMтак же присутствуют кэш инструкций и кэш данных очень маленького объёма, и общая память объёмом 16Кб.
Потоковые мультипроцессоры SMобъединяются в массивы, называемыеTPC(Texture/ProcessorCluster). На рис. 1.2 показаныTPCдля двух разныхGPU:
Рисунок 1.2. TPCдля двух разныхGPU:G80/G92 (слева) иGT200 (справа)
В GPUGT200 одинTPCсостоит из трёхSM. NVIDIA, разрабатывая архитектуруGPU, сделала её модульной, так, не ограничивая общности, следует сказать, что одинTPCможет состоять из любого числаSM.
TPCсостоит из блоковSM, некоторой управляющей логики и текстурного блока. Текстурный блок включает в себя логику фильтрации и адресации текстур и кэшL1.
Продолжая модульную концепцию, массив потоковых процессоров (StreamingProcessorArray,SPA) состоит из некоторого числаTPC(см. рис. 1.3).
В случае GT200,SPAсостоит из 10TPC, каждыйTPCсостоит из трёхSM, каждый из которых состоит из восьмиSM. В общем счёте,SPAGT200 состоит из 240 ядерSP.
Возникает законный вопрос: как обеспечить нормальную работу SPA? С одной стороны,GPUимеет планировщики и управляющую логику для распределения нагрузок между всеми ядрами и контроллер шины PCI-Express. С другой стороны, имеется шинаInterconnectNetwork, которая соединяетSPAс кэшемL2 и блоками растеризации (RasterOperationUnit,ROP).
Рисунок 1.3. Массив потоковых процессоров (SPA) в GPUGT200
Наконец, GT200 изготовлен по 55 нм техпроцессу и состоит из 1,4 миллиарда транзисторов, размер кристалла равен 470 мм2.