4263

Разница между CPU и GPU в параллельных расчётах

Доклад

Информатика, кибернетика и программирование

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

Русский

2012-11-15

68.36 KB

12 чел.

Разница между CPU и GPU в параллельных расчётах

Рост частот универсальных процессоров упёрся в физические ограничения и высокое энергопотребление, и увеличение их производительности всё чаще происходит за счёт размещения нескольких ядер в одном чипе. Продаваемые сейчас процессоры содержат лишь до четырёх ядер (дальнейший рост не будет быстрым) и они предназначены для обычных приложений, используют MIMD — множественный поток команд и данных. Каждое ядро работает отдельно от остальных, исполняя разные инструкции для разных процессов.

Специализированные векторные возможности (SSE2 и SSE3) для четырехкомпонентных (одинарная точность вычислений с плавающей точкой) и двухкомпонентных (двойная точность) векторов появились в универсальных процессорах из-за возросших требований графических приложений, в первую очередь. Именно поэтому для определённых задач применение GPU выгоднее, ведь они изначально сделаны для них.

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

Самое главное — эти несколько ядер мультипроцессора в GPU являются SIMD (одиночный поток команд, множество потоков данных) ядрами. И эти ядра исполняют одни и те же инструкции одновременно, такой стиль программирования является обычным для графических алгоритмов и многих научных задач, но требует специфического программирования. Зато такой подход позволяет увеличить количество исполнительных блоков за счёт их упрощения.

Итак, перечислим основные различия между архитектурами CPU и GPU. 1) Ядра CPU созданы для исполнения одного потока последовательных инструкций с максимальной производительностью, а GPU проектируются для быстрого исполнения большого числа параллельно выполняемых потоков инструкций. Универсальные процессоры оптимизированы для достижения высокой производительности единственного потока команд, обрабатывающего и целые числа и числа с плавающей точкой. При этом доступ к памяти случайный.

2) Разработчики CPU стараются добиться выполнения как можно большего числа инструкций параллельно, для увеличения производительности. Для этого, начиная с процессоров Intel Pentium, появилось суперскалярное выполнение, обеспечивающее выполнение двух инструкций за такт, а Pentium Pro отличился внеочередным выполнением инструкций. Но у параллельного выполнения последовательного потока инструкций есть определённые базовые ограничения и увеличением количества исполнительных блоков кратного увеличения скорости не добиться.

У видеочипов работа простая и распараллеленная изначально. Видеочип принимает на входе группу полигонов, проводит все необходимые операции, и на выходе выдаёт пиксели. Обработка полигонов и пикселей независима, их можно обрабатывать параллельно, отдельно друг от друга. Поэтому, из-за изначально параллельной организации работы в GPU используется большое количество исполнительных блоков, которые легко загрузить, в отличие от последовательного потока инструкций для CPU. Кроме того, современные GPU также могут исполнять больше одной инструкции за такт (dual issue). Так, архитектура Tesla в некоторых условиях запускает на исполнение операции MAD+MUL или MAD+SFU одновременно.

3) GPU отличается от CPU ещё и по принципам доступа к памяти. В GPU он связанный и легко предсказуемый — если из памяти читается тексель текстуры, то через некоторое время придёт время и для соседних текселей. Да и при записи то же — пиксель записывается во фреймбуфер, и через несколько тактов будет записываться расположенный рядом с ним. Поэтому организация памяти отличается от той, что используется в CPU. И видеочипу, в отличие от универсальных процессоров, просто не нужна кэш-память большого размера, а для текстур требуются лишь несколько (до 128-256 в нынешних GPU) килобайт.

4) Да и сама по себе работа с памятью у GPU и CPU несколько отличается. Так, не все центральные процессоры имеют встроенные контроллеры памяти, а у всех GPU обычно есть по несколько контроллеров, вплоть до восьми 64-битных каналов в чипе NVIDIA GT200. Кроме того, на видеокартах применяется более быстрая память, и в результате видеочипам доступна в разы большая пропускная способность памяти, что также весьма важно для параллельных расчётов, оперирующих с огромными потоками данных.

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

5) Есть также отличия в кэшировании. Универсальные центральные процессоры используют кэш-память для увеличения производительности за счёт снижения задержек доступа к памяти, а GPU используют кэш или общую память для увеличения полосы пропускания. CPU снижают задержки доступа к памяти при помощи кэш-памяти большого размера, а также предсказания ветвлений кода. Эти аппаратные части занимают большую часть площади чипа и потребляют много энергии. Видеочипы обходят проблему задержек доступа к памяти при помощи одновременного исполнения тысяч потоков — в то время, когда один из потоков ожидает данных из памяти, видеочип может выполнять вычисления другого потока без ожидания и задержек.

6) Есть множество различий и в поддержке многопоточности. CPU исполняет 1-2 потока вычислений на одно процессорное ядро, а видеочипы могут поддерживать до 1024 потоков на каждый мультипроцессор, которых в чипе несколько штук. И если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт.

7) Кроме того, центральные процессоры используют SIMD (одна инструкция выполняется над многочисленными данными) блоки для векторных вычислений, а видеочипы применяют SIMT (одна инструкция и несколько потоков) для скалярной обработки потоков. SIMT не требует, чтобы разработчик преобразовывал данные в векторы, и допускает произвольные ветвления в потоках.

Вкратце можно сказать, что в отличие от современных универсальных CPU, видеочипы предназначены для параллельных вычислений с большим количеством арифметических операций. И значительно большее число транзисторов GPU работает по прямому назначению — обработке массивов данных, а не управляет исполнением (flow control) немногочисленных последовательных вычислительных потоков. Это схема того, сколько места в CPU и GPU занимает разнообразная логика: 

В итоге, основой для эффективного использования мощи GPU в научных и иных неграфических расчётах является распараллеливание алгоритмов на сотни исполнительных блоков, имеющихся в видеочипах. К примеру, множество приложений по молекулярному моделированию отлично приспособлено для расчётов на видеочипах, они требуют больших вычислительных мощностей и поэтому удобны для параллельных вычислений. А использование нескольких GPU даёт ещё больше вычислительных мощностей для решения подобных задач.

Выполнение расчётов на GPU показывает отличные результаты в алгоритмах, использующих параллельную обработку данных. То есть, когда одну и ту же последовательность математических операций применяют к большому объёму данных. При этом лучшие результаты достигаются, если отношение числа арифметических инструкций к числу обращений к памяти достаточно велико. Это предъявляет меньшие требования к управлению исполнением (flow control), а высокая плотность математики и большой объём данных отменяет необходимость в больших кэшах, как на CPU.

В результате всех описанных выше отличий, теоретическая производительность видеочипов значительно превосходит производительность CPU. Компания NVIDIA приводит такой график роста производительности CPU и GPU за последние несколько лет: 

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


 

А также другие работы, которые могут Вас заинтересовать

26652. Целостность географической оболочки 22 KB
  В результате происходят сложные и непрерывные процессы обмена веществ и энергии приводящие к изменению и развитию составных частей и в целом всей географической оболочки. Эта закономерность прослеживается в пределах как всей географической оболочки так и в небольших комплексах и в отдельных компонентах природы. Целостность системы носит настолько всеобщий характер что если в географической оболочке изменится какойлибо один компонент природы то начнут меняться все остальные.
26653. Экологические проблемы современности 321.5 KB
  С момента изготовленияпервого примитивного орудия человек уже не довольствует предметамисозданными природой а начинает изготовлять вводить в свой обиходпредметы вещества и т. В результате потоки вещества и энергии вызываемые деятельностью человека стали составлять заметную долю от общей величины биогенного круговорота.Отходы побочные продукты производства и быта загрязняют биосферу вызывают деформации экологических систем нарушают глобальный круговорот веществ и создают угрозу для здоровья человека.тонн: 1200 взвешенных веществ 190...
26654. ЭКОЛОГИЧЕСКИЙ ПОТЕНЦИAЛ И ЕГО РAЗРУШЕНИЕ 121.5 KB
  Эксплуaтaция экологического потенциaлa природных систем трaдиционно не входит в кaтегорию природопользовaния, однaко чистый воздух, водa, продукты питaния - это тот же сaмый природный ресурс, столь же дефицитный нa одних территориях, богaтый нa других и точно в той же степени, кaк и прочие ресурсы, исчерпaемый
26655. Природа и общество: этапы взаимодействия 65.5 KB
  многие принципиально новые явления – начала и продолжает формироваться наука все более получающая права гражданства под именем экологии человека происходит экологизация человеческого знания экологизируется человеческое мышление и создаются предпосылки для формирования глобального экологического мировоззрения. Каков был переход от общеэкологических исследований к разработке проблематики экологии человека и как эта последняя формировалась постепенно в недрах общей экологии Наверное не столько разрушения нанесенные человечеством природе...
26656. ЭКОЛОГИЧЕСКИЙ ПОТЕНЦИAЛ И ЕГО РAЗРУШЕНИЕ 113.5 KB
  Чем большим потенциaлом устойчивости облaдaют экосистемы и тем больше чистого водухa воды пищи достaнется в конечном счете человеку. ПАДЕНИЯ УРОВНЯ АРАЛА Непосредственная физическая причина снижения уровня Аральского моря это нарушение водного баланса водоема: превышение расхода воды над приходом. Важную роль сыграли дополнительные потери воды на испарение с поверхности многочисленных водохранилищ построенных в бассейнах Амударьи и Сырдарьи. На сокращении стока Амударьи и Сырдарьи сказались также нерациональное и неэкономное использование...
26657. Актуальные экологические проблемы современности 84 KB
  Тщательное изучение последствий изменения климата приводит к выводу что развивающиеся страны окажутся наиболее уязвимы. Исследование опубликованное Кембриджским Университетом под названием Изменения климата: воздействие на разные страны и их сопричастность представлено учеными из 30 стран в т. Хотя влияние изменения климата не везде одинаково приведенные в исследовании примеры демонстрируют насколько драматичным оно может оказаться для ряда стран.
26658. ЛАНДШАФТ АНТРОПОГЕННЫЙ 43 KB
  Anthropos человек Genes рождающий рожденный Антропогенный ландшафт географический ландшафт: созданный в результате целенаправленной деятельности человека; или возникший в ходе непреднамеренного изменения природного ландшафта. К антропогенным ландшафтам относятся природнопроизводственные комплексы городские поселения и т. В современной ландшафтной архитектуре выделяют понятия природного и антропогенного ландшафта. Они весьма чутки к изменениям вызываемым процессом урбанизации промышленного и сельскохозяйственного освоения...
26659. Аральское море 70 KB
  Одновременно значительно сократились объем воды в Арале с 1093 до 330 км3 то есть на 763 км3 или более чем в три раза и площадь водоема с 68 500 до 36 500 км2 то есть на 32 000 км2 или почти вдвое табл. Пролив Берга соединявший ранее Малое и Большое моря превратился в небольшой но достаточно длинный проток по которому излишки воды из Малого сбрасывались в Большое море. О НЕПОСРЕДСТВЕННОЙ ПРИЧИНЕ ПАДЕНИЯ УРОВНЯ АРАЛА Непосредственная физическая причина снижения уровня Аральского моря это нарушение водного баланса водоема:...
26660. Биосфе́ра 84.5 KB
  Масса живого вещества сравнительно мала и оценивается величиной 24361012 т в сухом весе и составляет менее 10−6 массы других оболочек Земли. Эту геологическую роль живого вещества можно представить себе по месторождениям угля нефти карбонатных пород и т. Рассеянные атомы непрерывно создающиеся из всякого рода земного вещества под влиянием космических излучений. Биологическое разнообразие – основа формирования устойчивых биогеохимических циклов вещества и энергии в биосфере Земле.