Специализированная архитектура
Доменно -специфическая архитектура (DSA) — это программируемая компьютерная архитектура, специально предназначенная для очень эффективной работы в пределах данного домена приложения. Этот термин часто используется в отличие от архитектур общего назначения, таких как процессоры , которые предназначены для работы с любой компьютерной программой . [1]
История
[ редактировать ]В связи с полупроводниковым бумом, начавшимся в 1960-х годах, перед компьютерными архитекторами была поставлена задача найти новые способы использования все большего числа доступных транзисторов. Закон Мура и масштабирование Деннарда позволили архитекторам сосредоточиться на повышении производительности микропроцессоров общего назначения в программах общего назначения. [2] [3]
Эти усилия привели к нескольким технологическим инновациям, таким как многоуровневые кэши , выполнение вне очереди , глубокие конвейеры команд , многопоточность и многопроцессорность . Влияние этих инноваций измерялось по общим критериям, таким как SPEC , и архитекторы не интересовались внутренней структурой или конкретными характеристиками этих программ. [1]
Конец Dennard Scaling подтолкнул компьютерных архитекторов к переходу от одного очень быстрого процессора к нескольким процессорным ядрам . Улучшения производительности уже нельзя было добиться простым увеличением рабочей частоты одного ядра. [4]
Конец закона Мура сместил акцент с архитектур общего назначения на более специализированное оборудование. Хотя ЦП общего назначения, вероятно, найдет свое место в любой компьютерной системе, гетерогенные системы, состоящие из компонентов общего назначения и специализированных компонентов, являются самой последней тенденцией для достижения высокой производительности. [ нужна ссылка ]
Хотя аппаратные ускорители и ASIC использовались в очень специализированных областях приложений с момента зарождения полупроводниковой промышленности, они обычно реализуют конкретную функцию с очень ограниченной гибкостью. Напротив, переход к архитектуре, ориентированной на предметную область, направлен на достижение лучшего баланса гибкости и специализации. [5]
Ярким ранним примером программируемой архитектуры для конкретной предметной области являются графические процессоры. Это специализированное оборудование было разработано специально для работы в области обработки изображений и компьютерной графики . [6] Эти программируемые процессоры нашли широкое распространение как в игровых консолях , так и в персональных компьютерах. С улучшением стека аппаратного и программного обеспечения для графических процессоров NVIDIA и AMD эти архитектуры все чаще используются для ускорения выполнения массово и до невозможности параллельных задач, даже за пределами области обработки изображений. [7]
С момента возрождения искусственного интеллекта на основе машинного обучения в 2010-х годах было разработано несколько предметно-ориентированных архитектур для ускорения вывода для различных форм искусственных нейронных сетей . Некоторые примеры: от Google TPU , NVDLA от NVIDIA. [8] и ARM . MLP компании [9]
Рекомендации по проектированию DSA
[ редактировать ]Джон Хеннесси и Дэвид Паттерсон изложили пять принципов проектирования DSA, которые приводят к повышению эффективности использования площади и экономии энергии. Целью этих типов архитектуры часто также является снижение затрат на единовременное проектирование (NRE), чтобы инвестиции в специализированное решение можно было легче окупить. [1]
- Минимизируйте расстояние, на которое перемещаются данные: перемещение данных в иерархиях памяти общего назначения требует значительного количества энергии, чтобы попытаться минимизировать задержку доступа к данным. В случае предметно-ориентированных архитектур ожидается, что понимание предметных областей приложений разработчиками аппаратного обеспечения и компиляторов позволит создать более простые и специализированные иерархии памяти, в которых перемещение данных в основном обрабатывается программным обеспечением, с адаптированной памятью для конкретных функций внутри области. домен. [1]
- Инвестируйте сэкономленные ресурсы в арифметические единицы или большую память: поскольку значительное количество аппаратных ресурсов можно сэкономить, отказавшись от архитектурных оптимизаций общего назначения, таких как выполнение вне очереди, предварительная выборка адресов , объединение и спекуляции с оборудованием, сэкономленные ресурсы следует реинвестируются, чтобы максимально использовать доступный параллелизм , например, путем добавления большего количества арифметических единиц или решения любых проблем с пропускной способностью памяти путем добавления памяти большего размера. [1]
- Используйте самую простую форму параллелизма, соответствующую домену: поскольку домены целевых приложений почти всегда представляют собой внутреннюю форму параллелизма, важно решить, как воспользоваться преимуществами этого параллелизма и предоставить его программному обеспечению. Если, например, архитектура SIMD может работать в предметной области, программисту будет проще использовать ее, чем архитектуру MIMD . [1]
- Уменьшите размер и тип данных до простейших, необходимых для предметной области: по возможности использование более узких и простых типов данных дает несколько преимуществ. Например, это снижает стоимость перемещения данных для приложений, ограниченных памятью , а также может уменьшить количество ресурсов, необходимых для реализации соответствующих арифметических единиц. [1]
- Используйте предметно-ориентированный язык программирования для переноса кода в DSA: одной из проблем для DSA является простота использования, а точнее, возможность эффективного программирования архитектуры и запуска на ней приложений. По возможности рекомендуется использовать существующие предметно-ориентированные языки (DSL), такие как Halide. [10] и ТензорФлоу [11] чтобы упростить программирование DSA. Повторное использование существующих наборов инструментов компилятора и программных инфраструктур делает использование нового DSA значительно более доступным. [1]
DSA для глубоких нейронных сетей
[ редактировать ]Одной из областей применения, в которой DSA добился наибольшего успеха, является искусственный интеллект . В частности, было разработано несколько архитектур для ускорения глубоких нейронных сетей (DNN). [12] В следующих разделах мы приведем несколько примеров.
![]() Тензорный процессор 3.0 | |
Дизайнер | |
---|---|
Представлено | май 2016 г. |
Тип | Нейронная сеть Машинное обучение |
ТПУ
[ редактировать ]Google TPU был разработан в 2015 году для ускорения вывода DNN, поскольку компания прогнозировала, что использование голосового поиска потребует удвоения вычислительных ресурсов, выделяемых в то время для вывода нейронной сети. [13]
TPU был спроектирован как сопроцессор, обменивающийся данными через шину PCIe , который можно легко встроить в существующие серверы. В первую очередь это механизм умножения матриц, следующий за CISC (компьютер со сложным набором команд) ISA . Механизм умножения использует систолическое выполнение для экономии энергии, уменьшая количество операций записи в SRAM . [14]
TPU был изготовлен по 28-нм техпроцессу и работал на частоте 700 МГц. Часть приложения, работающая на TPU, реализована в TensorFlow. [14]
TPU вычисляет в основном целые числа пониженной точности, что дополнительно способствует экономии энергии и повышению производительности. [14]
Microsoft Катапульта
[ редактировать ]Microsoft Проект «Катапульта» [15] поместить FPGA, подключенную через шину PCIe, к серверам центров обработки данных с идеей использования FPGA для ускорения различных приложений, работающих на сервере, используя возможности реконфигурации FPGA для ускорения множества различных приложений.
В отличие от TPU от Google, Catapult FPGA необходимо было программировать с использованием языков описания оборудования, таких как Verilog и VHDL . По этой причине основной проблемой для авторов платформы была ограниченная программируемость. [16]
Microsoft разработала ускоритель CNN для платформы Catapult, который в первую очередь был разработан для ускорения функции ранжирования в поисковой системе Bing . Предложенная архитектура обеспечивала реконфигурируемую конструкцию во время выполнения на основе двумерного систолического массива. [17] [18]
НВДЛА
[ редактировать ]NVDLA — это ускоритель вывода глубокого обучения NVIDIA. Это аппаратная конструкция с открытым исходным кодом, доступная в ряде конфигураций с широкими возможностями параметризации. Модель small-NVDLA предназначена для развертывания в сценариях с ограниченными ресурсами, таких как Интернет вещей , где основными проблемами являются стоимость, площадь и мощность. Наоборот. модель большого NVDLA больше подходит для сценариев высокопроизводительных вычислений . NVDLA предоставляет собственную специализированную инфраструктуру обучения, инструменты компиляции и пакет программного обеспечения для выполнения. [19]
DSA для других доменов
[ редактировать ]Помимо применения в области искусственного интеллекта, DSA применяются во многих областях научных вычислений, обработки изображений и сетей. [20] [21]
Пиксельное визуальное ядро
[ редактировать ]Pixel Visual Core (PVC) — это на базе ARM, процессор обработки изображений разработанный Google . PVC — это полностью программируемая изображений , видения и искусственного интеллекта многоядерная доменно-ориентированная архитектура (DSA) для для мобильных устройств и, в будущем, для Интернета вещей . Впервые он появился в Google Pixel 2 и 2 XL , представленных 19 октября 2017 года. Он также появился в Google Pixel 3 и 3 XL . Начиная с Pixel 4 , этот чип был заменен на Pixel Neural Core . [22]
Антон3
[ редактировать ]
Anton3 — это DSA, предназначенный для эффективного моделирования молекулярной динамики . Он использует специализированную сеть межсоединений с топологией 3D- тора для соединения нескольких вычислительных узлов. [21] Каждый вычислительный узел содержит набор из 64 ядер, соединенных между собой посредством сетки . Ядра реализуют специализированный глубокий конвейер для эффективного расчета силового поля между молекулами. Эта гетерогенная система сочетает в себе аппаратное обеспечение общего назначения и специализированные компоненты для достижения рекордной скорости моделирования. [23]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г час Хеннесси, Джон Л.; Паттерсон, Дэвид А. (2019). Компьютерная архитектура: количественный подход . Крсте Асанович (6-е изд.). Кембридж, Массачусетс: Morgan Kaufmann Publishers, издательство Elsevier. п. 540. ИСБН 978-0-12-811905-1 .
- ^ Мур, GE (январь 1998 г.). «Втиснение большего количества компонентов в интегральные схемы» . Труды IEEE . 86 (1): 82–85. дои : 10.1109/jproc.1998.658762 . ISSN 0018-9219 .
- ^ Деннард, Р.Х.; Генслен, Ф.Х.; Ю, Хва-Ниен; Райдаут, ВЛ; Басус, Э.; Леблан, Арканзас (октябрь 1974 г.). «Проектирование ионно-имплантированных МОП-транзисторов с очень малыми физическими размерами» . Журнал IEEE твердотельных схем . 9 (5): 256–268. Бибкод : 1974IJSSC...9..256D . дои : 10.1109/jssc.1974.1050511 . ISSN 0018-9200 . S2CID 283984 .
- ^ Шауэр, Брайан. «Многоядерные процессоры – необходимость» (PDF) . Архивировано из оригинала (PDF) 25 ноября 2011 г. Проверено 6 июля 2023 г.
- ^ Барр, Кейт Эллиотт (2007). Проектирование ASIC в кремниевой песочнице: полное руководство по созданию интегральных схем смешанных сигналов . Нью-Йорк: МакГроу-Хилл. ISBN 978-0-07-148161-8 .
- ^ «Что такое графический процессор?» . Виртуальный рабочий стол . Проверено 7 июля 2023 г.
- ^ «Ускоренные приложения NVIDIA» . NVIDIA . Проверено 6 июля 2023 г.
- ^ «NVDLA — Микроархитектуры — Nvidia — WikiChip» . ru.wikichip.org . Проверено 6 июля 2023 г.
- ^ «Процессор машинного обучения (MLP) — Микроархитектуры — ARM — WikiChip» . ru.wikichip.org . Проверено 6 июля 2023 г.
- ^ Рэган-Келли, Джонатан. «Халид» . halide-lang.org . Проверено 6 июля 2023 г.
- ^ «ТензорФлоу» . ТензорФлоу . Проверено 6 июля 2023 г.
- ^ Гаюми, Мехди (12 октября 2021 г.), «Основы и архитектура глубоких нейронных сетей (DNN)» , Глубокое обучение на практике , Бока-Ратон: Чепмен и Холл / CRC, стр. 77–107, doi : 10.1201/9781003025818-5 , ISBN 9781003025818 , S2CID 241427658 , получено 6 июля 2023 г.
- ^ Хеннесси, Джон Л.; Паттерсон, Дэвид А. (2019). Компьютерная архитектура: количественный подход . Крсте Асанович (6-е изд.). Кембридж, Массачусетс: Morgan Kaufmann Publishers, издательство Elsevier. п. 557. ИСБН 978-0-12-811905-1 .
- ^ Перейти обратно: а б с Хеннесси, Джон Л.; Паттерсон, Дэвид А. (2019). Компьютерная архитектура: количественный подход . Крсте Асанович (6-е изд.). Кембридж, Массачусетс: Morgan Kaufmann Publishers, издательство Elsevier. п. 560. ИСБН 978-0-12-811905-1 .
- ^ «Проект Катапульта» . Исследования Майкрософт . Проверено 6 июля 2023 г.
- ^ Патнэм, Эндрю; Колфилд, Адриан М.; Чанг, Эрик С.; Чиу, Дерек; Константинид, Кипр; Демме, Джон; Исмаилзаде, Хади; Фауэрс, Джереми; Гопал, Гопи Прашант; Грей, Ян; Хазельман, Майкл; Хаук, Скотт; Привет, Стивен; Хормати, Амир; Ким, Джу Ён (28 октября 2016 г.). «Реконфигурируемая структура для ускорения предоставления услуг крупномасштабных центров обработки данных» . Коммуникации АКМ . 59 (11): 114–122. дои : 10.1145/2996868 . ISSN 0001-0782 . S2CID 3826382 .
- ^ Хеннесси, Джон Л.; Паттерсон, Дэвид А. (2019). Компьютерная архитектура: количественный подход . Крсте Асанович (6-е изд.). Кембридж, Массачусетс: Morgan Kaufmann Publishers, издательство Elsevier. п. 573. ИСБН 978-0-12-811905-1 .
- ^ «Клев между пингвинами» . Бинг . Проверено 6 июля 2023 г.
- ^ «Букварь NVDLA — Документация NVDLA» . nvdla.org . Проверено 6 июля 2023 г.
- ^ «Модули обработки данных NVIDIA BlueField (DPU)» . NVIDIA . Проверено 6 июля 2023 г.
- ^ Перейти обратно: а б Шоу, Дэвид Э.; Адамс, Питер Дж.; Азария, Асаф; Банк, Джозеф А.; Бэтсон, Брэннон; Белл, Алистер; Бергдорф, Майкл; Бхатт, Джанви; Баттс, Дж. Адам; Коррейя, Тимоти; Диркс, Роберт М.; Дрор, Рон О.; Иствуд, Майкл П.; Эдвардс, Брюс; Эвен, Амос (14 ноября 2021 г.). «Антон 3: Двадцать микросекунд моделирования молекулярной динамики перед обедом». Материалы Международной конференции по высокопроизводительным вычислениям, сетям, хранению и анализу . АКМ. стр. 1–11. дои : 10.1145/3458817.3487397 . ISBN 978-1-4503-8442-1 . S2CID 239036976 .
- ^ Катресс, Ян. «Горячие фишки 2018: живой блог Google Pixel Visual Core (10:00 по тихоокеанскому времени, 17:00 по всемирному координированному времени)» . www.anandtech.com . Проверено 7 июля 2023 г.
- ^ Рассел, Джон (2 сентября 2021 г.). «Антон-3 — это огнедышащий зверь из молекулярного моделирования» . HPCwire . Проверено 6 июля 2023 г.
Дальнейшее чтение
[ редактировать ]- Компьютерная архитектура. Количественный подход. Шестое издание. Джон Л. Хеннесси. Стэнфордский университет. Дэвид А. Паттерсон. Калифорнийский университет, Беркли.