Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование параллелизма при решении двухточечной краевой задачи на графических ускорителях NVIDIA (магистерская диссертация).docx
Скачиваний:
72
Добавлен:
28.06.2014
Размер:
1.59 Mб
Скачать

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.