stringtranslate.com

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

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

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

Чтобы более эффективно выполнять вычислительные задачи, обычно можно инвестировать время и деньги в улучшение программного обеспечения, улучшение оборудования или и то, и другое. Существуют различные подходы с преимуществами и недостатками с точки зрения уменьшения задержки , увеличения пропускной способности и снижения энергопотребления . Типичные преимущества сосредоточения внимания на программном обеспечении могут включать большую универсальность, более быструю разработку , более низкие единовременные затраты на проектирование, повышенную переносимость и простоту обновления функций или исправления ошибок за счет накладных расходов на вычисление общих операций. Преимущества сосредоточения внимания на аппаратном обеспечении могут включать ускорение , снижение энергопотребления , [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-ядро процессора . Поэтому аппаратное ускорение часто используется для повторяющихся фиксированных задач, требующих небольшого условного ветвления , особенно для больших объемов данных. Именно так реализована линейка графических процессоров Nvidia CUDA .

Показатели реализации

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

Приложения

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

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

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

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

Смотрите также

Рекомендации

  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. doi : 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». Программируемая пользователем логика и приложения от 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 . doi : 10.1109/tcomm.2011.092011.100157. ISSN  0090-6778. S2CID  13863870.
  17. ^ ab «Регулярные выражения в аппаратном обеспечении» . Проверено 17 июля 2014 г.
  18. ^ «Ускорители сжатия — исследования Microsoft» . Исследования Майкрософт . Проверено 7 октября 2017 г.
  19. ^ аб Фарабет, Клеман и др. «Аппаратное ускорение сверточных нейронных сетей для систем синтетического зрения [ мертвая ссылка ] ». Схемы и системы (ISCAS), Материалы Международного симпозиума IEEE 2010 г. ИИЭР, 2010.

Внешние ссылки