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

 
» » 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, графический процессор




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

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

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