ВЫБОР РЕДАКЦИИ

Машинное обучение открывает новые возможности FPGA

Экономические аспекты развития технологий искусственного интеллекта

Новые тенденции использования машинного обучения при проектировании и обработке изображений

Комплексное автомобильное ПО: стратегия развития

Вопросы развития краевых вычислений

Перспективы развития микроконтроллеров с краевым искусственным интеллектом

Корпорация Tachyum активизирует работу с правительственными клиентами

Повышение способности искусственного интеллекта к самостоятельному обучению при помощи ReRAM

Искусственный интеллект: основные опасности и способы заработка на зрелых технологиях

Технология, которая ускорит навигацию роботов

LF Energy и Sony CSL планируют сотрудничество в проекте микросетей с открытым исходным кодом

Новые области применения искусственного интеллекта

Машинное обучение открывает новые возможности FPGA

Машинное обучение открывает новые возможности FPGA

Выпуск 15 (6714) от 06 августа 2020 г.
РУБРИКА: МИКРОЭЛЕКТРОНИКА

Появление технологий машинного обучения открыло новые возможности применения FPGA. Благодаря этому позиции FPGA в противостоянии с центральными и графическими процессорами укрепляются, однако не повсеместно. Применение вентильных матриц видится наиболее перспективным в центрах обработки данных и в краевых вычислениях, однако возникают некоторые проблемы с моделями проектирования.

Вентильные матрицы, программируемые пользователем (FPGA), давно используются на ранних стадиях освоения любой новой цифровой техники. Причина этого – пригодность FPGA для создания опытных образцов и возможность их быстрого эволюционирования. Но с появлением машинного обучения FPGA начали демонстрировать новые преимущества, выходящие за рамки более традиционных подходов. Благодаря этому открываются новые рынки для FPGA, которые традиционно трудно поддерживать в массовом производстве по причинам ценообразования, а также трудности применения в приложениях с питанием от батарей и в других применениях с малой потребляемой мощностью. Основным преимуществом FPGA остается гибкость, которая крайне важна в такой быстро изменяющейся сфере, как машинное обучение. Меняются не только приложения – быстро меняться могут также сети и модели, поскольку непрерывное или продолжительное обучение требует введения дополнительных усовершенствований, а различные поставщики предлагают разные способы решения этой проблемы.

Между поставщиками графических процессоров, FPGA и специализированных ИС (ASIC) продолжается битва. Если бы производители FPGA не поставляли также инструментальные средства разработки/проектирования, у них не осталось бы никаких шансов. Первые воплощения средств машинного обучения были программно-ориентированными, использующими центральные и графические процессоры. Их основной проблемой было чрезвыайно высокое – даже для центров обработки данных (ЦОД) – энергопотребление. В результате FPGA обеспечили более привлекательное с точки зрения потребляемой мощности решение, чем приборы, программируемые при помощи ПО. То, что с помощью FPGA хорошо реализуются высокопроизводительные приложения с малой потребляемой мощностью, обусловлено возможностями параллелизма, заложенными в FPGA. Помимо прочего, применение FPGA обеспечивает низкое время ожидания и детерминированную производительность, чего трудно достичь с помощью программных решений. Так, специализированные ИС (ASIC) обеспечивают производительность около 5 трлн операций в секунду (TOPS) на ватт, а FPGA – в пределах 1–2 TOPS/Вт. В этом случае повышение производительности по сравнению с программными подходами достигается не за счет потребляемой мощности.

Для массово производимых товаров цена по-прежнему может быть проблемой, но пока не многие приложения машинного обучения достигли данной стадии. Одна из причин – быстрое развитие моделей, и это же причина того, что в данном плане FPGA не совсем подходят для массово производимых изделий.

На ранних этапах развития рынка обычно доминируют гибкие решения. Однако в дальнейшем для достижения более высоких экономической эффективности или производительности на рынок выводятся стандартизированные специализированные продукты (ASSP). Многие подобные решения для средств машинного обучения сейчас находятся в стадии разработки. При этом возможные компромиссные решения ASSP жестко ограничены. Они должны обеспечивать высокую вычислительную эффективность, но при этом не задавать слишком строгую (негибкую) архитектуру. В диапазоне между решениями, используемыми в настоящее время, и перспективными ASSP ИС, вероятно, появится достаточно много фрагментированных предложений – перед тем как рынок остановится на некотором наборе предпочтительных решений.


От ЦОД до краевых вычислений

FPGA нашли свое место в ЦОД как средство ускорения для разгрузки блоков формирования логических выводов на основе центральных и графических процессоров. В особенности это относится к обучению, которое всегда выполняется в ЦОД, а также к собственно формулированию логических выводов.

На противоположной стороне спектра применений FPGA находятся краевые вычисления, где выполняется большая часть действий, особенно в автомобильной электронике. Подобные приложения чувствительны к цене и потребляемой мощности, но здесь FPGA обрели преимущества – из-за отсутствия производства необходимых ASSP-решений и быстрых изменений конструкций.

Вместе с тем дополнительные возможности для FPGA возникают на рынке, который специалисты корпорации Synopsys называют «накопительным», – он представлен такими приборами, как маршрутизаторы и переключатели, расположенные в сети между периферийной областью (краевыми вычислениями) и ЦОД. Этот рынок всегда был дружественным к FPGA, и во многих случаях цель состоит в том, чтобы добавить функцию машинного обучения к уже имеющимся вентильным матрицам. Действительно, существует множество приложений, в которые разработчики желают добавить «немного интеллекта». По оценкам, от 30 до 40% проектировщиков в сфере классических встраиваемых приборов и решений нуждаются в некоторой степени применения искусственного интеллекта.

Специалисты корпорации Achronix указывают, что в настоящее время предварительная обработка данных и их заключительная обработка (постобработка) уже выполняются с использованием FPGA, что позволяет средству формирования логического вывода использовать одну и ту же ИС.


Проблемы моделей проектирования

Учитывая преимущества, которые способны обеспечить аппаратно-программируемые решения по сравнению с решениями, программируемыми при помощи ПО, возникает очевидный вопрос: «Почему бы всем просто не использовать FPGA?» Ответ сводится к двум словам: аппаратное обеспечение. Это ахиллесова пята FPGA.

По данным Бюро трудовой статистики (Министерство труда США), в мае 2018 г. на каждого инженера по аппаратной части приходилось примерно 21,5 инженера-программиста (включая прикладных и системных программистов). Разработчики аппаратного обеспечения работают на низкоуровневых языках программирования аппаратного обеспечения (hardware-design languages, HDL), которые больше связаны с точным определением структур аппаратного обеспечения, чем с определением алгоритмической функциональности. Это совершенно различные типы мышления, поэтому подобные специалисты четко придерживаются того или иного лагеря.

FPGA по большей части требуют аппаратного проектирования. Проектирование на низком аппаратном уровне требует привлечения более редких и, соответственно, более дорогих специалистов. Стратегия машинного обучения, основанная на привлечении таких специалистов, требует надежно обеспечить их всем необходимым. По оценкам корпорации Mentor Graphics, для того чтобы добиться существенного преимущества или прорыва в области FPGA, заинтересованной фирме может понадобиться 8–10 месяцев и 4–5 специалистов в области проектирования аппаратного обеспечения. Постоянно содержать штат таких сотрудников может позволить себе не каждая фирма (все зависит от интенсивности разработки аппаратного обеспечения и объема получаемой от его реализации прибыли) – иногда лучше прибегать к найму в рамках конкретных проектов.

Большинство подходов к реализации FPGA сводятся к двум механизмам:

жесткое программирование, т. е. реализация на жесткой логике, а не микропрограммно;

реализация по типу СФ-блоков (программирование с помощью ПО).

Основной проблемой машинного обучения является не только разделение на аппаратное и программное обеспечение. Задача выходит за рамки компетенции ученых по данным, владеющих языком ПО высокого уровня, но не являющихся «чистыми» разработчиками ПО. Такие проектировщики особенно далеки от разработки аппаратного обеспечения. Как критическая составляющая любого решения в области машинного обучения, проектирование аппаратного обеспечения ставит серьезную проблему перед поставщиками FPGA, которые должны иметь возможность продавать свою продукцию ученым по данным за счет инструментальных программных средств, позволяющих абстрагироваться от аппаратного обеспечения. Таким образом, для выведения новых FPGA на рынок их разработчикам приходится привлекать и специалистов в области создания ПО.



Источник: Semiconductor Engineering

Две упрощенные модели проектирования приложений машинного обучения на FPGA


Аппаратные структуры, критически важные для вычислений машинного обучения, могут создаваться разработчиками аппаратного обеспечения до того момента, когда дальнейшее совершенствование модели еще возможно осуществить без проектирования аппаратной части. Этого можно добиться просто путем создания экземпляра СФ-блока, с помощью которого будет управляться инструментальное средство более высокого уровня. Специалисты Lattice Semiconductor в этой связи отмечают, что большинство инженеров используют свои сети «как есть», что означает меньшую аппаратную работу.

Два важных аспекта – процесс проектирования и инструментальные средства проектирования. Некоторые фирмы-поставщики FPGA разделяют процесс проектирования таким образом, чтобы проектирование аппаратного обеспечения было в значительной степени отделено от проектирования модели. Благодаря этому FPGA становятся доступнее для разработчиков, не являющихся специалистами в области аппаратного обеспечения. Второе соображение касается того, какие инструментальные средства следует использовать и как изменения в моделях реализуются в изменениях непосредственно FPGA.

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

Модель проектирования имеет значение и для текущих модификаций конструкции, и для обновления приборов, уже используемых заказчиками. В случаях, когда все данные по конструкции были включены в битовый поток, возможные изменения в будущем для создания обновленного битового потока потребуют использовать инструментальные аппаратные средства FPGA низкого уровня, даже если инструментальные средства высокого уровня позволяют избежать необходимости какого-либо явного изменения конструкции аппаратного обеспечения.

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

Один из способов облегчить проектирование аппаратного обеспечения – синтез высокого уровня (high-level synthesis, HLS). Он позволяет использовать алгоритмический язык С и преобразовывать его в проектирование аппаратного обеспечения. Поскольку многие алгоритмы начинаются с программного обеспечения – зачастую с языков С или С++, – перенос их непосредственно на аппаратное обеспечение может значительно сэкономить время. Хотя для управления процессом все еще может потребоваться знание аппаратной части, он позволяет автоматизировать бóльшую часть проектирования, экономя время и усилия.

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

Продолжение статьи читайте в следующем выпуске.


Moyer Bryon. ML Opening New Doors For FPGAs. Semiconductor Engineering, June 24, 2020: https://semiengineering.com/fpgas-hide-hardware-for-machine-learning/


ЧИТАЙТЕ ТАКЖЕ

Выпуск 24/25 (6748/6749) от 23 декабря 2021 г. г.
Выпуск 24/25 (6748/6749) от 23 декабря 2021 г. г.