Аппаратное ускорение

Из Википедии, бесплатной энциклопедии
Карта криптографического ускорителя позволяет выполнять криптографические операции с большей скоростью.

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

Чтобы более эффективно выполнять вычислительные задачи, обычно можно инвестировать время и деньги в улучшение программного обеспечения, улучшение оборудования или и то, и другое. Существуют различные подходы с преимуществами и недостатками с точки зрения уменьшения задержки , увеличения пропускной способности и снижения энергопотребления . Типичные преимущества сосредоточения внимания на программном обеспечении могут включать большую универсальность, более быструю разработку , более низкие единовременные затраты на проектирование, повышенную переносимость и простоту обновления функций или исправления ошибок за счет накладных расходов на вычисление общих операций. Преимущества сосредоточения внимания на аппаратном обеспечении могут включать ускорение , снижение энергопотребления , [1] меньшая задержка, повышенный параллелизм [2] и пропускная способность , а также лучшее использование площади и функциональных компонентов , доступных на интегральной схеме ; ценой меньшей возможности обновлять конструкции после того, как они были выгравированы на кремнии , а также более высоких затрат на функциональную проверку , времени выхода на рынок и потребности в большем количестве деталей. В иерархии цифровых вычислительных систем, от процессоров общего назначения до полностью настраиваемого оборудования, существует компромисс между гибкостью и эффективностью, при этом эффективность возрастает на порядки, когда какое-либо конкретное приложение реализуется выше в этой иерархии. [3] Эта иерархия включает в себя процессоры общего назначения, такие как ЦП, [4] более специализированные процессоры, такие как программируемые шейдеры в графическом процессоре , [5] фиксированная функция, реализованная на программируемых пользователем вентильных матрицах (FPGA), [6] и фиксированные функции, реализованные на интегральных схемах специального назначения (ASIC). [7]

Аппаратное ускорение выгодно для производительности и практично, когда функции фиксированы, поэтому обновления не так необходимы, как в программных решениях. С появлением перепрограммируемых логических устройств , таких как FPGA, ограничение аппаратного ускорения полностью фиксированными алгоритмами с 2010 года ослабло, что позволяет применять аппаратное ускорение к проблемным областям, требующим модификации алгоритмов и потока управления обработкой . [8] [9] Однако недостатком является то, что во многих проектах с открытым исходным кодом требуются проприетарные библиотеки, которые не все поставщики стремятся распространять или предоставлять, что затрудняет интеграцию в такие проекты.

Обзор [ править ]

Интегральные схемы могут быть созданы для выполнения произвольных операций с аналоговыми и цифровыми сигналами. Чаще всего в вычислениях сигналы являются цифровыми и могут интерпретироваться как двоичные числовые данные. Компьютерное оборудование и программное обеспечение работают с информацией в двоичном представлении для выполнения вычислений ; это достигается путем вычисления логических функций на входных битах и ​​вывода результата на какое-либо устройство вывода для хранения или дальнейшей обработки .

эквивалентность аппаратного и обеспечения Вычислительная программного

Поскольку все машины Тьюринга могут выполнять любую вычислимую функцию , всегда можно создать собственное оборудование, выполняющее ту же функцию, что и данная часть программного обеспечения. И наоборот, программное обеспечение всегда можно использовать для эмуляции функций данного оборудования. Специальное оборудование может обеспечивать более высокую производительность на ватт для тех же функций, которые можно указать в программном обеспечении. Языки описания оборудования (HDL), такие как Verilog и VHDL, могут моделировать ту же семантику , что и программное обеспечение, и синтезировать проект в список соединений , который можно запрограммировать на FPGA или включить в логические элементы ASIC.

хранимой с программой Компьютеры

Подавляющее большинство программных вычислений происходит на машинах, реализующих архитектуру фон Неймана , известных под общим названием компьютеры с хранимыми программами . Компьютерные программы хранятся в виде данных выполняются процессорами . и Такие процессоры должны получать и декодировать инструкции, а также загружать операнды данных из памяти (как часть цикла команд ) для выполнения инструкций, составляющих программу. Использование общего кэша для кода и данных приводит к «узкому фон Нейману», фундаментальному ограничению пропускной способности программного обеспечения на процессорах, реализующих архитектуру фон Неймана. Даже в модифицированной гарвардской архитектуре , где инструкции и данные имеют отдельные кэши в иерархии памяти , существуют накладные расходы на декодирование кодов операций инструкций и мультиплексирование доступных исполнительных блоков на микропроцессоре или микроконтроллере , что приводит к низкому использованию схемы. Современные процессоры, обеспечивающие одновременную многопоточность, используют недостаточное использование доступных функциональных блоков процессора и параллелизм на уровне инструкций между различными аппаратными потоками.

Аппаратные исполнительные блоки [ править ]

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

Такое восстановление экономит время, мощность и площадь схемы при вычислениях. Освобожденные ресурсы можно использовать для увеличения параллельных вычислений, других функций, связи или памяти, а также для увеличения возможностей ввода/вывода . Это достигается за счет полезности общего назначения.

аппаратные Новые архитектуры

Более широкая настройка аппаратных средств с помощью RTL позволяет новым архитектурам, таким как вычисления в памяти , архитектуры, управляемые транспортом (TTA) и сети на кристалле (NoC), получать дополнительную выгоду от повышенной локальности данных в контексте выполнения, тем самым уменьшая задержку вычислений и связи между модули и функциональные блоки.

Возможности специального аппаратного обеспечения ограничены только площадью и логическими блоками , доступными на кристалле интегральной схемы . [10] Таким образом, аппаратное обеспечение гораздо более свободно обеспечивает массовый параллелизм, чем программное обеспечение на процессорах общего назначения, предлагая возможность реализации модели параллельной машины с произвольным доступом (PRAM).

Обычно многоядерные и многоядерные процессоры создаются на основе схем IP-ядра микропроцессора на одной FPGA или ASIC. [11] [12] [13] [14] [15] Аналогично, специализированные функциональные блоки могут компоноваться параллельно, как при цифровой обработке сигналов, процессора без их внедрения в IP-ядро . Поэтому аппаратное ускорение часто используется для повторяющихся фиксированных задач, требующих небольшого условного ветвления , особенно для больших объемов данных. Именно так CUDA . Nvidia реализована линейка графических процессоров

Показатели реализации [ править ]

По мере роста мобильности устройств были разработаны новые показатели, которые измеряют относительную производительность конкретных протоколов ускорения с учетом таких характеристик, как размеры физического оборудования, энергопотребление и пропускная способность операций. Их можно свести к трем категориям: эффективность выполнения задач, эффективность реализации и гибкость. Соответствующие показатели учитывают площадь оборудования, а также соответствующую производительность операций и потребляемую энергию. [16]

Приложения [ править ]

Примеры аппаратного ускорения включают функцию побитового ускорения в графических процессорах (GPU), использование мемристоров для ускорения нейронных сетей и регулярных выражений аппаратное ускорение для контроля спама в серверной отрасли, предназначенное для предотвращения атак типа «отказ в обслуживании» с использованием регулярных выражений (ReDoS). [17] Аппаратное обеспечение, выполняющее ускорение, может быть частью ЦП общего назначения или отдельным блоком, называемым аппаратным ускорителем, хотя обычно их называют более конкретным термином, например, 3D-ускорителем или криптографическим ускорителем .

Традиционно процессоры были последовательными (инструкции выполнялись одна за другой) и были разработаны для выполнения алгоритмов общего назначения, управляемых выборкой инструкций (например, перемещение временных результатов и из него в файл регистров ). Аппаратные ускорители улучшают выполнение определенного алгоритма, обеспечивая больший параллелизм , имея определенные пути данных для их временных переменных и уменьшая накладные расходы на управление инструкциями в цикле выборка-декодирование-выполнение.

Современные процессоры являются многоядерными и часто имеют параллельные блоки «одна инструкция; несколько данных» ( SIMD ). Несмотря на это, аппаратное ускорение по-прежнему дает преимущества. Аппаратное ускорение подходит для любого алгоритма с интенсивными вычислениями, который часто выполняется в задаче или программе. В зависимости от степени детализации аппаратное ускорение может варьироваться от небольшого функционального блока до большого функционального блока (например, оценки движения в MPEG-2 ).

Единицы аппаратного ускорения по приложениям [ править ]

Приложение Аппаратный ускоритель Акроним
Компьютерная графика Графический процессор графический процессор
  • ГПГПУ
  • ДРУГОЙ
  • РТХ
  • Н/Д
Цифровая обработка сигналов Цифровой сигнальный процессор ЦСП
Аналоговая обработка сигналов Программируемая пользователем аналоговая матрица ФПАА
  • ФПРФ
Обработка звука Звуковая карта и микшер звуковой карты Н/Д
Компьютерная сеть Сетевой процессор и контроллер сетевого интерфейса НПУ и сетевая карта
  • Ночь
  • TCPOE или TOE
  • I/OAT или IOAT
Криптография Криптографический ускоритель и защищенный криптопроцессор Н/Д
Искусственный интеллект ИИ-ускоритель Н/Д
  • ВПУ
  • ННП
  • Н/Д
Полилинейная алгебра Тензорный процессор ТПУ
Физическое моделирование Физический процессор ППУ
Обычные выражения [17] Сопроцессор регулярных выражений Н/Д
Сжатие данных [18] Ускоритель сжатия данных Н/Д
Обработка в памяти Сеть на чипе и систолический массив НОК; Н/Д
Обработка данных Блок обработки данных ДПУ
Любая вычислительная задача Компьютерное железо ХВ (иногда)
  • ПЛИС
  • ASIC
  • CPLD
  • SoC
    • MPSoC
    • PSoC

См. также [ править ]

Ссылки [ править ]

  1. ^ «Microsoft расширяет возможности поиска Bing с помощью программируемых чипов» . ПРОВОДНОЙ . 16 июня 2014 г.
  2. ^ "Встроенный" . Архивировано из оригинала 8 октября 2007 г. Проверено 18 августа 2012 г. «Архитектура FPGA от А до Я», Клайв Максфилд, 2006 г.
  3. ^ Синан, Куфеоглу; Махмут, Озкуран (2019). «Рисунок 5. Минимальное энергопотребление процессора, графического процессора, FPGA и ASIC между пересчетами сложности». . Энергопотребление при майнинге биткойнов . дои : 10.17863/CAM.41230 .
  4. ^ Ким, Ёнмин; Конг, Джунхо; Мунир, Арслан (2020). «Совместное планирование ЦП и ускорителя для ускорения CNN на периферии» . Доступ IEEE . 8 : 211422–211433. дои : 10.1109/ACCESS.2020.3039278 . ISSN   2169-3536 .
  5. ^ Линь, Ибо; Цзян, Цзысюань; Гу, Цзяци; Ли, Уси; Дхар, Шунак; Рен, Хаосин; Хайлани, Брюсек; Пан, Дэвид З. (апрель 2021 г.). «DREAMPlace: ускорение графического процессора с помощью набора инструментов глубокого обучения для современного размещения СБИС» . Транзакции IEEE по автоматизированному проектированию интегральных схем и систем . 40 (4): 748–761. дои : 10.1109/TCAD.2020.3003843 . ISSN   1937-4151 . S2CID   225744481 .
  6. ^ Ляхов, Павел; Валуева, Мария; Валуев Георгий; Нагорнов, Николай (18 декабря 2020 г.). «Метод повышения производительности цифрового фильтра на основе усеченных многократно-накопительных единиц» . Прикладные науки . 10 (24): 9052. дои : 10.3390/app10249052 . ISSN   2076-3417 . Аппаратное моделирование на FPGA повысило производительность цифрового фильтра.
  7. ^ Мохан, Прашант; Ван, Вэнь; Юнгк, Бернхард; Нидерхаген, Рубен; Сефер, Якуб; Май, Кен (октябрь 2020 г.). «Ускоритель ASIC на 28 нм для схемы постквантовой цифровой подписи XMSS» . 38-я Международная конференция по компьютерному дизайну (ICCD) , IEEE, 2020 г. Хартфорд, Коннектикут, США: IEEE. стр. 656–662. дои : 10.1109/ICCD50377.2020.00112 . ISBN  978-1-7281-9710-4 . S2CID   229330964 .
  8. ^ Морган, Тимоти Прикет (3 сентября 2014 г.). «Как Microsoft использует FPGA для ускорения поиска в Bing» . Корпоративные технологии . Проверено 18 сентября 2018 г.
  9. ^ «Проект Катапульта» . Исследования Майкрософт .
  10. ^ MicroBlaze Soft Processor: Часто задаваемые вопросы, заархивировано 27 октября 2011 г. на Wayback Machine.
  11. ^ Вассани, Иштван (1998). «Реализация процессорных массивов на ПЛИС» . Программируемая пользователем логика и приложения от FPGA до парадигмы вычислений . Конспекты лекций по информатике. Том. 1482. стр. 446–450. дои : 10.1007/BFb0055278 . ISBN  978-3-540-64948-9 .
  12. ^ Чжокун ВАН и Омар ХАММАМИ. «Проектирование 24-процессорной системы на кристалле FPGA с сетью на кристалле». [1]
  13. ^ Джон Кент. «Массив Micro16 — простой массив ЦП»
  14. ^ Кит Итон. «Достигнута 1000-ядерная ЦП: ваш будущий настольный компьютер станет суперкомпьютером». 2011. [2]
  15. ^ «Ученые втиснули более 1000 ядер в один чип» . 2011. [3] Архивировано 5 марта 2012 г. в Wayback Machine.
  16. ^ Кинле, Франк; Вен, Норберт; Мейр, Генрих (декабрь 2011 г.). «О сложности, энергоэффективности и эффективности реализации канальных декодеров». Транзакции IEEE в области коммуникаций . 59 (12): 3301–3310. arXiv : 1003.3792 . дои : 10.1109/tcomm.2011.092011.100157 . ISSN   0090-6778 . S2CID   13863870 .
  17. ^ Перейти обратно: а б «Регулярные выражения в аппаратном обеспечении» . Проверено 17 июля 2014 г.
  18. ^ «Ускорители сжатия — исследования Microsoft» . Исследования Майкрософт . Проверено 7 октября 2017 г.
  19. ^ Перейти обратно: а б Фарабет, Клеман и др. « Аппаратно ускоренные сверточные нейронные сети для систем синтетического зрения» [ мертвая ссылка ] Схемы и системы (ISCAS), Труды Международного симпозиума IEEE 2010 г. IEEE, 2010 г.

Внешние ссылки [ править ]