цифровая электроника
вычислительная техника
встраиваемые системы

 
» » FPGA или ASIC или процессор или графический процессор – что лучше для вашего приложения

FPGA или ASIC или процессор или графический процессор – что лучше для вашего приложения

Автор: Mike(admin) от 24-12-2018, 06:35

Сравнение вычислительных систем


Несколько десятилетий назад центральные процессоры (ЦП) были реализованы на дискретных транзисторах, а затем на логических элементах в интегральных схемах. Все изменилось, когда первый микропроцессор, 4-разрядный Intel 4004, дебютировал в 1971 году. На протяжении многих лет продукты Intel и ее конкурентов были единственным выбором для инженеров, которые хотели иметь хорошую программируемую вычислительную мощность в своих разработках.

FPGA или ASIC или процессор или графический процессор

Применение центрального процессора


Теперь процессор является компонентом более универсальных систем. Автономное микропроцессорное устройство (МПУ) объединяет в себе ЦП с периферийными интерфейсами, такими как модули управления памятью DDR3 и DDR4, PCIe, последовательными шинами, такими как USB 2.0, USB 3.0, Ethernet и т. д., Поэтому эти конструкции являются гибкими и универсальными и предназначены для работы с несколькими устройствами под управлением высокоуровневых операционных систем (ОС), таких как Windows, iOS, Linux и т. д. Для более компактных конструкций микроконтроллер (МК) объединяет ядро ЦП с внутренней памятью, множество периферийных устройств в одной интегральной схеме или в одном корпусе, и они обычно работают с урезанной ОС.

Микропроцессор широко используется в ноутбуках и настольных компьютерах, а микроконтроллеры широко распространены во встроенных приложениях, таких как автомобильные приборные панели, контроллеры двигателей или смарт-карты. Аппаратная архитектура ЦП этих устройств предназначена для общего назначения, но часто включает в себя специализированные блоки, такие как блоки с плавающей запятой для математических операций. Низкоуровневые процессоры выполняют операции последовательно, но несколько процессорных ядер теперь являются стандартными в высокопроизводительных микропроцессорах и микроконтроллерах. Например, Intel Xeon имеет до 22 ядер.


FPGA, ASIC, GPU


Хотя рассмотренные выше процессоры подходят для вычислений общего назначения, в последние годы появилось множество приложений, требующих большого объема вычислений, которые требуют более специализированных архитектур. Примеры включают в себя высокоскоростной поиск; машинное обучение и искусственный интеллект (ИИ); высокопроизводительные вычисления в центрах обработки данных; обработка графики в реальном времени, включая виртуальную реальность и видеоигры; промышленные продукты, такие как цифровое управление двигателем и автомобильные приложения, такие как усовершенствованные системы помощи водителю (ADAS) и, вскоре, автономные транспортные средства.

Разработчики в этих областях могут опираться на три дополнительных варианта обработки: графический процессор (GPU), программируемая пользователем вентильная матрица (FPGA) и специально разработанная специализированная интегральная схема (ASIC).

Графический процессор (графический ускоритель) был впервые представлен в 1980-х годах для разгрузки простых графических операций с процессором. Поскольку графика расширилась до 2D, а затем и 3D-рендеринга, графические процессоры стали более мощными. Высокопараллельная работа очень полезна при обработке изображения, состоящего из миллионов пикселей, поэтому графические процессоры текущего поколения включают в себя тысячи ядер, разработанных для эффективного выполнения математических функций. Новейшее устройство Nvidia Tesla V100 содержит 5120 ядер CUDA для операций многократного накопления за один цикл и 640 тензорных ядер для умножения матрицы за один цикл. Многие алгоритмы в других областях пригодны для параллельного выполнения, поэтому графические процессоры вышли далеко за пределы их первоначального применения. Например, многие из самых быстрых суперкомпьютеров в мире включают в себя тысячи как графических процессоров, так и центральных процессоров.

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

На другом конце спектра имеются специализированные микросхемы ASIC, разработанные специально для конкретного применения. Они имеют только блоки, необходимые для оптимальной работы приложения, включая процессор, графический процессор, память и так далее. Хотя разработчики могут использовать сторонние IP-ядра, такие как процессор ARM Cortex, или предварительно разработанные блоки для стандартных функций, таких как физический уровень Ethernet, ASIC является разработкой с нуля. Лучше всего подходит для приложений с большим объемом вычислений. Например, Tensor Processing Unit (TPU) – это ускоритель, разработанный Google специально для машинного обучения нейронных сетей. Google также предлагает доступ к TPU сторонним компаниям через облачные вычисления.


Будущее вычислительных устройств


Мы все чаще наблюдаем сближение трех категорий, поскольку поставщики ищут оптимальный набор функций для новых приложений. SoC FPGA поставляются с жесткими или программными IP-процессорами, графическими процессорами и блоками DSP. Процессоры включают в себя аппаратные ускорители и ASIC для криптографических функций, а графический процессор NVIDIA Tesla T4 включает встроенные элементы FPGA для приложений логического вывода ИИ.

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


Центральный процессор FPGA Графический процессор ASIC
Обзор Традиционный последовательный процессор для приложений общего назначения Гибкий набор логических элементов и IP-блоков, которые можно настраивать и изменять в полевых условиях Первоначально разработан для графики; в настоящее время используется в широком спектре приложений, требующих большого объема вычислений Специальная интегральная схема, оптимизированная для конечного применения
Обработка Одно- и многоядерные МК и МПУ, а также специализированные блоки Настраивается для приложений; SoC включают жесткие или программные IP-ядра (например, ARM) Тысячи идентичных процессорных ядер Специфичны для приложений: может включать сторонние IP-ядра
Программирование ОС, API работают с огромным количеством языков высокого уровня; язык ассемблера Традиционно HDL (Verilog, VHDL); более новые системы включают C / C++ через openCL и SDAccel OpenCL и Nvidia CUDA API позволяют программировать на языках общего назначения (например, C, C++, Python, Java, Fortran) Специфично для приложений: платформа с открытым исходным кодом TensorFlow для Google TPU; Производители процессоров (например, Intel) включают инструменты с новыми выпусками ASIC
Периферийные устройства Широкий выбор аналоговой и цифровой периферии в микроконтроллерах; МПУ включают в себя интерфейсы цифровой шины В состав SoC входит множество блоков приемопередатчиков, настраиваемые банки ввода-вывода Очень ограничены; например, только кеш-память Специфично для приложений: может включать стандартные модули (USB, Ethernet и т. д.)
Сильные стороны Универсальность, многозадачность, простота программирования Конфигурируемые для конкретного применения; конфигурация может быть изменена после установки; высокая производительность на ватт; параллельная работа; широкий выбор функций Огромная вычислительная мощность для целевых приложений – обработка видео, анализ изображений, обработка сигналов Специально разработанные для применения с оптимальным сочетанием производительности и энергопотребления
Слабые стороны Возможности ОС увеличивают использование памяти; оптимизированы для последовательной обработки с ограниченным параллелизмом Относительно сложно программировать; низкая производительность для последовательных операций; не подходит для операций с плавающей точкой Высокое энергопотребление, не подходит для некоторых алгоритмов; задачи должны быть переформулированы, чтобы использовать преимущества параллелизма, но структуры API обеспечивают абстракцию Самое длительное время разработки; высокая цена; конструкция не может быть изменена

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


Применение Центральный процессор FPGA Графический процессор ASIC Комментарии
Видео и обработка изображений V V V FPGA может уступить ASIC в приложениях с большим объемом данных
Обучение искусственного интеллекта V Параллелизм GPU хорошо подходит для обработки терабайтных наборов данных в разумные сроки
Скоростной поиск V V V V Microsoft Bing использует FPGA; Google использует TPU ASIC; Процессоры необходимы для координации и контроля
Управление промышленными двигателями (V) V V Доступно множество МК и ASIC для управления двигателями; ПЛИС обеспечивают быструю альтернативу ASIC
Суперкомпьютер V V Большинство суперкомпьютеров TOP500 используют комбинацию процессоров и графических процессоров
Универсальные вычисления V (V) ЦП - самый универсальный, гибкий вариант; графические процессоры начинают выполнять некоторые задачи в этой области
Управление встраиваемыми системами V V V Процессоры (МК) доминируют в недорогих мобильных приложениях с ограниченным пространством и низким энергопотреблением
Прототипирование, малый тираж V Лучший выбор это FPGA для небольших по объему выпуска высокопроизводительных приложений


© digitrode.ru


Теги: FPGA, ASIC, графический процессор



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий