stringtranslate.com

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

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

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

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

Аппаратное ускорение выгодно для производительности и практично, когда функции фиксированы, поэтому обновления не так необходимы, как в программных решениях. С появлением перепрограммируемых логических устройств , таких как ПЛИС, ограничение аппаратного ускорения полностью фиксированными алгоритмами ослабло с 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 ).

Аппаратные ускорения по приложениям

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

Ссылки

  1. ^ «Microsoft совершенствует поиск Bing с помощью программируемых чипов». WIRED . 16 июня 2014 г.
  2. ^ "Встроено". Архивировано из оригинала 2007-10-08 . Получено 2012-08-18 .«Архитектуры ПЛИС от «А» до «Я»» Клайва Максфилда, 2006 г.
  3. ^ Синан, Куфеоглу; Махмут, Озкуран (2019). "Рисунок 5. Минимальное потребление энергии CPU, GPU, FPGA и ASIC между пересчетами сложности". Потребление энергии при майнинге биткоинов . doi : 10.17863/CAM.41230 .
  4. ^ Ким, Ёнмин; Конг, Джунхо; Мунир, Арслан (2020). «Совместное планирование ЦП-ускорителя для ускорения CNN на периферии». IEEE Access . 8 : 211422–211433. doi : 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. ^ Ляхов, Павел; Валуева, Мария; Валуев, Георгий; Нагорнов, Николай (2020-12-18). "Метод повышения производительности цифрового фильтра на основе усеченных умножительно-накопительных блоков". Прикладные науки . 10 (24): 9052. doi : 10.3390/app10249052 . ISSN  2076-3417. Аппаратное моделирование на ПЛИС повысило производительность цифрового фильтра.
  7. ^ Мохан, Прашант; Ван, Вэнь; Юнгк, Бернхард; Нидерхаген, Рубен; Шефер, Якуб; Май, Кен (октябрь 2020 г.). «ASIC Accelerator in 28 nm for the Post-Quantum Digital Signature Scheme XMSS». 2020 IEEE 38th International Conference on Computer Design (ICCD) . Хартфорд, Коннектикут, США: IEEE. стр. 656–662. doi :10.1109/ICCD50377.2020.00112. ISBN 978-1-7281-9710-4. S2CID  229330964.
  8. ^ Морган, Тимоти Прикет (2014-09-03). «Как Microsoft использует ПЛИС для ускорения поиска Bing». Enterprise Tech . Получено 2018-09-18 .
  9. ^ "Проект Катапульта". Microsoft Research .
  10. ^ MicroBlaze Soft Processor: часто задаваемые вопросы Архивировано 27 октября 2011 г. на Wayback Machine
  11. ^ Вассани, Иштван (1998). «Реализация процессорных массивов на ПЛИС». Field-Programmable Logic and Applications from FPGAs to Computing Paradigm . Lecture Notes in Computer Science. Vol. 1482. pp. 446–450. doi :10.1007/BFb0055278. ISBN 978-3-540-64948-9.
  12. ^ Чжоукунь ВАНГ и Омар ХАММАМИ. «Проект 24-процессорной системы на кристалле FPGA с сетью на кристалле». [1]
  13. ^ Джон Кент. «Массив Micro16 — простой массив ЦП»
  14. ^ Кит Итон. «1000-ядерный процессор достигнут: ваш будущий настольный компьютер станет суперкомпьютером». 2011. [2]
  15. ^ "Ученые втиснули более 1000 ядер в один чип". 2011. [3] Архивировано 05.03.2012 на Wayback Machine
  16. ^ Кинле, Франк; Вен, Норберт; Майер, Генрих (декабрь 2011 г.). «О сложности, энергоэффективности и эффективности реализации канальных декодеров». IEEE Transactions on Communications . 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 Research". Microsoft Research . Получено 2017-10-07 .
  19. ^ ab Farabet, Clément, et al. "Аппаратно-ускоренные сверточные нейронные сети для систем синтетического зрения [ мертвая ссылка ] ." Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on. IEEE, 2010.

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