Разница между GPU и FPGA
Быстрый прогресс в технологии VLSI за последние несколько десятилетий позволил производить миллиарды транзисторов на одном чипе. Этот технологический прогресс привел к проектированию и разработке гораздо более быстрого и энергоэффективного оборудования. Быстрое увеличение тактовой частоты и более высокая пропускная способность памяти привели к повышению производительности. Однако улучшение одноядерной производительности процессоров общего назначения уменьшилось из-за снижения темпов роста рабочих частот. Две основные причины этого — увеличивающийся разрыв между скоростями процессора и памяти, а также ограничения в источниках питания. Для решения этих проблем микропроцессорная промышленность перешла на многоядерные процессоры. Помимо многоядерных процессоров, для преодоления таких узких мест появились и другие жизнеспособные альтернативы, включая заказные ИС и перепрограммируемые ПЛИС, а также графические процессоры. Итак, что вы предпочтете для своих вычислительных потребностей — GPU или FPGA?
Что такое GPU?
Блок обработки графики (GPU), более известный как видеокарта или видеокарта, — это графический процессор для обработки графической информации для вывода на дисплей.GPU — это специализированный процессор, изначально разработанный для ускорения рендеринга графики, в основном для повышения графической производительности игр на компьютере. Фактически, большинство потребительских GPU предназначены для достижения превосходной графической производительности и визуальных эффектов, чтобы обеспечить реалистичный игровой процесс. Но современные графические процессоры — это гораздо больше, чем персональные компьютеры, в которых они впервые появились.
До появления графических процессоров вычисления общего назначения, как мы их знаем, были возможны только на CPU, которые были первыми основными вычислительными устройствами, производимыми как для потребительского использования, так и для передовых вычислений. Вычисления на GPU значительно эволюционировали за последние несколько десятилетий и нашли широкое применение в исследованиях, связанных с машинным обучением, искусственным интеллектом и глубоким обучением.GPU поднялись на новый уровень с появлением API GPU, таких как Compute Unified Device Architecture (CUDA), которые открыли путь к разработке библиотек для глубоких нейронных сетей.
Что такое FPGA?
Программируемая вентильная матрица (FPGA) — это совершенно другой зверь, который вывел вычислительную производительность GPU на совершенно новый уровень, обеспечивая превосходную производительность в приложениях глубоких нейронных сетей (DNNs) и демонстрируя при этом улучшенное энергопотребление. Изначально ПЛИС использовались для соединения электронных компонентов вместе, например, контроллеров шин или процессоров, но со временем сфера их применения кардинально изменилась. ПЛИС — это полупроводниковые устройства, которые могут быть запрограммированы электронным способом для создания любой цифровой схемы или системы. ПЛИС обеспечивают большую гибкость и возможность быстрого создания прототипов по сравнению с заказными разработками. Корпорация Altera, расположенная в Сан-Хосе, Калифорния, является одним из крупнейших производителей ПЛИС, а в 2015 году компания была приобретена Intel. Они сильно отличаются от аппаратных средств, основанных на инструкциях, таких как графические процессоры, и самое приятное, что их можно переконфигурировать в соответствии с требованиями более требовательных к данным рабочих нагрузок, таких как приложения машинного обучения.
Разница между GPU и FPGA
Технология
GPU — это специализированная электронная схема, изначально разработанная для удовлетворения потребности в ускорении рендеринга графики для научных и инженерных вычислений общего назначения.GPU разработаны для работы по принципу ‘одна инструкция — несколько данных’ (SIMD).GPU разгружает некоторые энергоемкие части кода, ускоряя работу приложений, выполняемых на CPU.FPGA, с другой стороны, представляют собой полупроводниковые устройства, которые могут быть запрограммированы электронным способом, чтобы стать любой цифровой схемой или системой, которую вы хотите.
Задержка
FPGA имеют более низкую задержку, чем GPU, что означает, что они оптимизированы для обработки приложений сразу после подачи входных данных с минимальной задержкой. Архитектура FPGA позволяет достичь высокой вычислительной мощности без сложного процесса проектирования, что делает их идеальными для приложений с наименьшей задержкой. Они достигают значительно более высоких вычислительных возможностей за меньшее время по сравнению с GPU, которым относительно необходимо развиваться, чтобы оставаться актуальными.
Энергоэффективность
Энергоэффективность уже много лет является важным показателем производительности, и ПЛИС превосходят ее, поскольку известны своей энергоэффективностью. Они могут поддерживать очень высокую пропускную способность данных при параллельной обработке в схемах, реализованных в реконфигурируемой ткани. Самое лучшее в FPGA — это возможность реконфигурации, что обеспечивает гибкость, которая дает им преимущество перед аналогами на GPU в определенных областях применения. Многие из широко используемых операций с данными могут быть эффективно реализованы на ПЛИС благодаря аппаратной программируемости.GPU также энергоэффективны, но только для потоков SIMD.
Операции с плавающей точкой
Многие высокопроизводительные вычислительные приложения, такие как глубокое обучение, требуют сильной зависимости от операций с плавающей запятой. Хотя гибкая архитектура FPGA демонстрирует превосходный потенциал в разреженных сетях, которые являются одной из самых горячих тем в приложениях ML, они страдают при достижении более высоких скоростей для приложений, которые широко используют арифметические операции с плавающей запятой. Операции с плавающей запятой — это то, в чем GPU действительно хороши. Самый быстрый GPU имеет производительность операций с плавающей запятой максимум 15 TFLOPS.
Вывод
В двух словах, GPU обеспечивают гибкую среду разработки и более быстрое время выполнения, но FPGA предлагают гораздо лучшую гибкость и возможности быстрого создания прототипов. В то время как GPU лучше всего подходят для высокопроизводительных вычислительных приложений, зависящих от арифметических операций с плавающей запятой, FPGA отлично подходят для энергоемких приложений, а их задержка гораздо более детерминирована, поскольку они являются специализированными процессорами, которые могут быть переконфигурированы в любой тип цифровой схемы или системы. В некоторых областях применения ПЛИС очень трудно превзойти, например, в военных приложениях, таких как системы наведения ракет, где требуется низкая задержка.