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

Применение центрального процессора
Теперь процессор является компонентом более универсальных систем. Автономное микропроцессорное устройство (МПУ) объединяет в себе ЦП с периферийными интерфейсами, такими как модули управления памятью 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