Jump to content

Одна инструкция, несколько потоков

Одна инструкция, несколько потоков ( SIMT ) — это модель выполнения, используемая в параллельных вычислениях , где одна инструкция, несколько потоков (SIMD) сочетается с многопоточностью . Он отличается от SPMD тем, что все инструкции во всех «потоках» выполняются синхронно. Модель выполнения SIMT была реализована на нескольких графических процессорах и актуальна для вычислений общего назначения на графических процессорах (GPGPU), например, некоторые суперкомпьютеры объединяют центральные процессоры с графическими процессорами.

Процессоры, скажем, число p , похоже, выполняют гораздо больше, чем p задач. Это достигается за счет того, что каждый процессор имеет несколько «потоков» (или «рабочих элементов» или «последовательности операций полосы SIMD»), которые выполняются синхронно и аналогичны полосам SIMD . [1]

Самый простой способ понять SIMT — представить себе многоядерную систему, в которой каждое ядро ​​имеет свой собственный файл регистров, свои собственные ALU (как SIMD, так и скалярный) и свой собственный кэш данных, но в отличие от стандартной многоядерной системы, которая имеет Несколько независимых кэшей и декодеров инструкций, а также несколько независимых регистров счетчика программ, инструкции синхронно передаются всем ядрам SIMT из одного устройства с одним кэшем инструкций и одним декодером инструкций, который считывает инструкции с использованием одного счетчика программ.

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

SIMT был представлен Nvidia в микроархитектуре Tesla GPU с чипом G80. [2] [3] Немного позже, 14 мая 2007 года, компания ATI Technologies , ныне AMD , выпустила конкурирующий продукт — TeraScale 1 на базе R600 графический процессор .

Описание

[ редактировать ]

Поскольку время доступа всех распространенных типов оперативной памяти (например, DDR SDRAM , GDDR SDRAM , XDR DRAM и т. д.) все еще относительно велико, инженерам пришла в голову идея скрыть задержку, которая неизбежно возникает при каждом доступе к памяти. Строго говоря, скрытие задержки — это функция планирования с нулевыми издержками, реализованная в современных графических процессорах. Это может считаться, а может и не считаться свойством самого SIMT.

SIMT предназначен для ограничения накладных расходов на выборку команд . [4] т.е. задержка, которая возникает при доступе к памяти и используется в современных графических процессорах (например, Nvidia и AMD ) в сочетании со «скрытием задержки», чтобы обеспечить высокопроизводительное выполнение, несмотря на значительную задержку в операциях доступа к памяти. Здесь процессор перегружен вычислительными задачами и может быстро переключаться между задачами, когда в противном случае ему пришлось бы ждать в памяти. Эту стратегию можно сравнить с многопоточностью процессоров (не путать с многоядерностью ). [5] Как и в случае с SIMD, еще одним важным преимуществом является совместное использование логики управления многими каналами данных, что приводит к увеличению плотности вычислений. Один блок логики управления может управлять N линиями данных вместо того, чтобы повторять логику управления N раз.

Обратной стороной выполнения SIMT является тот факт, что поток управления для конкретного потока выполняется с использованием «маскирования», что приводит к плохому использованию, когда потоки процессора следуют по разным путям потока управления. Например, для обработки блока IF - ELSE , в котором различные потоки процессора выполняют разные пути, все потоки должны фактически обрабатывать оба пути (поскольку все потоки процессора всегда выполняются синхронно), но для отключения и включения используется маскирование. различные темы по мере необходимости. Маскирования избегают, когда поток управления согласован для потоков процессора, т. е. все они следуют одному и тому же пути выполнения. Стратегия маскировки — это то, что отличает SIMT от обычного SIMD и обеспечивает недорогую синхронизацию между потоками процессора. [6]

Терминология SIMT
Нвидиа КУДА OpenCL Хеннесси и Паттерсон [7]
Нить Рабочий элемент Последовательность операций SIMD-полосы
Деформация Волновой фронт Поток инструкций SIMD
Блокировать Рабочая группа Тело векторизованного цикла
Сетка NDRange Векторизованный цикл

См. также

[ редактировать ]
  1. ^ Майкл МакКул; Джеймс Рейндерс; Арч Робисон (2013). Структурированное параллельное программирование: шаблоны для эффективных вычислений . Эльзевир. п. 52.
  2. ^ «Информационный документ по вычислительной архитектуре NVIDIA Fermi» (PDF) . www.nvidia.com/ . Корпорация NVIDIA. 2009 . Проверено 17 июля 2014 г.
  3. ^ Линдхольм, Эрик; Николлс, Джон; Оберман, Стюарт; Монтрим, Джон (2008). «NVIDIA Tesla: унифицированная графическая и вычислительная архитектура». IEEE микро . 28 (2):6 (Требуется подписка.) . дои : 10.1109/MM.2008.31 . S2CID   2793450 .
  4. ^ Рул, Шон; Вандирендонк, Ганс; Д'Хэн, Джорис; Де Босшер, Коэн (2010). Экспериментальное исследование переносимости производительности ядер OpenCL . Симп. Ускорители приложений в высокопроизводительных вычислениях (SAAHPC). hdl : 1854/LU-1016024 .
  5. ^ «Продвинутые темы по CUDA» (PDF) . cc.gatech.edu . 2011 . Проверено 28 августа 2014 г.
  6. ^ Майкл МакКул; Джеймс Рейндерс; Арч Робисон (2013). Структурированное параллельное программирование: шаблоны для эффективных вычислений . Эльзевир. стр. 209 и далее.
  7. ^ Джон Л. Хеннесси; Дэвид А. Паттерсон (1990). Компьютерная архитектура: количественный подход (6-е изд.). Морган Кауфманн. стр. 314 и далее. ISBN  9781558600690 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7756f4125c4a6e45c97dc83b17abf014__1706217840
URL1:https://arc.ask3.ru/arc/aa/77/14/7756f4125c4a6e45c97dc83b17abf014.html
Заголовок, (Title) документа по адресу, URL1:
Single instruction, multiple threads - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)