ScholarGate
Ассистент

Параллельная и многоядерная архитектура

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта область охватывает аппаратные организации для параллелизма: многопроцессорные системы на кристалле и многоядерные конструкции, системы с общей памятью и требуемые ими когерентность и согласованность, SIMD- и векторные процессоры для параллелизма на уровне данных, а также архитектуры графических процессоров. Она рассматривает, как создается параллельное аппаратное обеспечение и как масштабируется его производительность. Она исключает программную сторону параллельного и распределенного программирования и распределенные системы кластерного масштаба, которые рассматриваются в разделе «Распределенные и параллельные вычисления», а также одноядерный исполнительный механизм, рассматриваемый в разделе «Микроархитектура процессора».

Sub-topics

Core questions

  • Как параллельное аппаратное обеспечение масштабирует производительность и что ограничивает это масштабирование?
  • Как несколько ядер интегрируются на чипе и подключаются к общей памяти?
  • Какие гарантии согласованности и когерентности памяти должно обеспечивать аппаратное обеспечение с общей памятью?
  • Как SIMD, векторные и графические процессоры используют параллелизм на уровне данных?
  • Как параллельные архитектуры сопоставляются с рабочими нагрузками для максимизации полезной пропускной способности на ватт?

Key concepts

  • многопроцессорная система на кристалле
  • параллелизм на уровне потоков
  • параллелизм на уровне данных
  • SIMD и векторная обработка
  • GPU и многоядерные системы
  • общая память и когерентность
  • согласованность памяти
  • сеть межсоединений
  • закон Амдала и масштабируемость
  • аппаратная синхронизация

Key theories

Закон Амдала
Ускорение от распараллеливания вычислений ограничено той частью, которая должна выполняться последовательно: даже при неограниченном количестве процессоров последовательная часть ограничивает общее ускорение, что определяет, как проектируются и оцениваются параллельные архитектуры.
Таксономия параллелизма по Флинну
Параллельное аппаратное обеспечение организовано по тому, как объединяются потоки инструкций и данных — например, одноинструкционный многопоточный (SIMD) для параллелизма данных и многоинструкционный многопоточный (MIMD) для многоядерных и многопроцессорных систем — классификация, которая определяет архитектурные решения.

Mechanisms

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

Clinical relevance

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

History

Параллельные машины появились в виде векторных суперкомпьютеров, таких как Cray-1 в 1970-х годах, и исследовательских многопроцессорных систем 1980-х и 1990-х годов. Окончание масштабирования частоты примерно в середине 2000-х годов подтолкнуло индустрию к многоядерным чипам как к стандарту. Графические процессоры эволюционировали от графических конвейеров с фиксированными функциями до программируемых многоядерных ускорителей, а архитектуры, параллельные по данным, стали основополагающими для современного машинного обучения.

Debates

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

Key figures

  • Gene Amdahl
  • Michael J. Flynn
  • John L. Hennessy
  • David A. Patterson
  • David E. Culler

Related topics

Seminal works

  • hennessy2019
  • amdahl1967
  • patterson2020

Frequently asked questions

Почему процессоры перешли на многоядерную архитектуру?
Увеличение тактовой частоты одного ядра достигло пределов по мощности и тепловыделению в середине 2000-х годов. Добавление большего количества ядер увеличило общую пропускную способность в рамках того же бюджета мощности, поэтому многоядерность стала доминирующим способом поддержания роста производительности — хотя это перекладывает бремя ускорения на параллельное программное обеспечение.
Чем графический процессор (GPU) отличается от многоядерного центрального процессора (CPU)?
ЦП имеет несколько мощных ядер, оптимизированных для выполнения общих задач с низкой задержкой. ГП имеет множество более простых ядер, оптимизированных для высокопроизводительной параллельной обработки данных, выполняя одну и ту же операцию над множеством элементов данных, что подходит для графики и плотных численных вычислений, но не для всех рабочих нагрузок.

Methods for this concept

Related concepts