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

1.1.2. Архитектура современныхGpu

Рассмотрим архитектуру GPUна примере чипаGT200, который появился в 2008 году. Базовый элементGPUNVIDIA– ядро, называемоеSP(singleprocessingcore). КаждыйSP, состоит из двух арифметико-логических устройств (АЛУ) и одного математического сопроцессора для операций с плавающей точкой (floating point unit,FPU).SPне имеет своего кэша, так как в силу того, что самSPпригоден только для выполнения большого количества математических операций, его функциональность ограничена. Набор инструкций у такого процессора гораздо меньше, чем у центрального процессора.NVIDIAв своихGPUобъединяет большое количество такихSPв массив (см. рис. 1.1). На рисунке 1.1 представлен потоковый мультипроцессор (Streaming Multiprocessor,SM):

Рисунок 1.1. Потоковый мультипроцессор (SM)

SM– это массивSP(в данном случае 8SP) [2], а так же 2 специальных процессора (SpecialFunctionUnits,SFU). ВSMесть диспетчер исполнения командMT, предназначенный для распределения нагрузки между всемиSPиSFUв массиве. В дополнение к процессорным ядрам, вSMтак же присутствуют кэш инструкций и кэш данных очень маленького объёма, и общая память объёмом 16Кб.

Потоковые мультипроцессоры SMобъединяются в массивы, называемыеTPC(Texture/ProcessorCluster). ВGPUGT200 одинTPCсостоит из трёхSM. NVIDIA, разрабатывая архитектуруGPU, сделала её модульной, так, не ограничивая общности, следует сказать, что одинTPCможет состоять из любого числаSM.TPCсостоит из блоковSM, некоторой управляющей логики и текстурного блока. Текстурный блок включает в себя логику фильтрации и адресации текстур и кэшL1.

Продолжая модульную концепцию, массив потоковых процессоров (StreamingProcessorArray,SPA) состоит из некоторого числаTPC(см. рис. 1.2).

В случае GT200,SPAсостоит из 10TPC, каждыйTPCсостоит из трёхSM, каждый из которых состоит из восьмиSM. В общем счёте,SPAGT200 состоит из 240 ядерSP.

Рисунок 1.2. Массив потоковых процессоров (SPA) в GPUGT200

Наконец, GT200 изготовлен по 55 нм техпроцессу и состоит из 1,4 миллиарда транзисторов, размер кристалла равен 470 мм2.

Со времени выхода GT200 развитиеGPUсделало большой шаг вперед. В 2013 году вышел чипGK110, который предложил усовершенствованную архитектуру и увеличенную производительность. ВGK110 вместо блоковTPCиSMтеперь появились блоки нового поколения, называемыеSMX(NextGenerationStreamingMultiprocessor). АрхитектураSMXтребует дополнительного внимания (см. рис. 1.3).

Теперь, один SMXблок содержит 192 ядраCUDAконвейерной организации [3] (на рис. 1.3 обозначены зелёным цветом). Так же присутствуют 64 сопроцессораDPUnit(аналогFPU) для операций с числами с плавающей точкой двойной точности, согласно стандартуIEEE754-2008 (на рис. 1.3 обозначены желтым цветом). Как и прежде, присутствуют 32 специальных процессораSFUдля трансцендентных операций. К ним добавилось 32 блока инструкций получения/записи в память (Load/Store,LD/ST).

Рисунок 1.3. Потоковый мультипроцессор нового поколения (SMX)

Все вычислительные блоки соединяются посредством шины InterconnectNetworkс общей памятью и кэшемL1, общим объёмом 64Кб (см. Приложение 1, раздел 1.4.), кэшем данных, объёмом 48Кб и текстурными блоками.

Как видно, один потоковый мультипроцессор SMXимеет более сложную организацию, чем было вGPUпрошлых поколений, он сдержит гораздо больше ядерCUDAи других функциональных блоков. Поднимаясь на уровень выше, блокиSMXобъединяются на кристаллеGPUв количестве до 15 штук, что даёт в сумме 2880 ядерCUDA. Подсистема памятиGK110 включает кэшL2, объёмом 1536Кб.

Подробнее архитектура современных GPUна примереGT200 иGK110 описана в Приложении 1 (разделы 1.3 и 1.4.). В разделе 1.2. Приложения 1 рассматриваются этапы развития рынка графических адаптеров.