КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Архитектура графического процессораОсобенности графических процессоров как систем для параллельных вычислений общего назначения детально изложены, например, в описании [4]. Здесь мы ограничимся кратким обсуждением основных принципов распараллеливания вычислений на графических процессорах. Конструктивно графический процессор (GPU) представляет собой отдельную вычислительную микросхему, работающую параллельно с центральным процессором. На персональных компьютерах GPU обычно входят в состав графических ускорителей (или видеокарт) – дополнительных устройств, изначально предназначенных для визуализации двух- и трехмерной графики. Графические ускорители, помимо GPU, включают в себя микросхемы видеопамяти (см. ниже) и собственную систему охлаждения. Они подключаются к системной плате через шины данных PCI-Express либо AGP, которые обеспечивают центральному процессору доступ к видеопамяти и GPU. На рис. 3.1, в качестве примера, показана архитектура графического процессора G80 [4] – одного из процессоров NVIDIA, поддерживающих архитектуру CUDA [4]. Как и другие, этот GPU представляет собой систему из параллельных вычислительных блоков (потоковых мультипроцессоров), каждый из которых исполняет одну и ту же программу (англ. kernel, вычислительное ядро) применительно к различным исходным данным. Параллельная архитектура графических процессоров ориентирована на исполнение алгоритмов, в которых одна и та же последовательность операций должна быть многократно исполнена либо для обработки элементов больших массивов данных (распараллеливание вычислений по данным), либо для моделирования одной и той же системы с различными параметрами (один из вариантов распараллеливания по задачам). В настоящем пособии мы рассмотрим только процессоры архитектуры CUDA, выпускаемые компанией NVIDIA, как наиболее удобные для неграфических вычислений. Название CUDA – Compute Unified Device Architecture (архитектура универсального вычислительного устройства) подчеркивает тот факт, что эти процессоры предназначены не только для обработки графики, но и для выполнения алгоритмов общего назначения. Рис. 3.1. Архитектура графического процессора NVIDIA G80 [1] Концепцию вычислений, реализованную в архитектуре CUDA, NVIDIA характеризует понятием SIMT – Single Instruction for Multiple Threads (одна инструкция для множества потоков). Это название, модифицированное по сравнению с известной аббревиатурой SIMD (Single Instruction for Multiple Data, одна инструкция для множества данных) подчёркивает тот факт, что конкретные вычислительные потоки в CUDA не «привязаны» к конкретным элементам массивов исходных данных. Напротив, потоки хорошо управляемы, имеют уникальные идентификаторы, доступные программисту, осуществляют произвольный доступ к данным из памяти, посредством разделяемой памяти могут взаимодействовать друг с другом.
|