Аппаратное ускорение
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2014 г. ) |

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