Как достичь скорости 1 триллион операций в секунду с плавающей запятой на FPGA?


PDF версия

До настоящего времени практически все системы обработки сигнала на базе FPGA использовали операции с фиксированной запятой. В статье показано, что основанная на последних достижениях технология высокопроизводительной обработки сигнала с плавающей запятой может быть реализована с помощью FPGA. Описывается методика реализации системы обработки сигнала с плавающей запятой на одном кристалле FPGA, которая сегодня не только осуществима, но и позволяет достичь скорости обработки сигнала 1 терафлопс (1 триллион операций в секунду). Статья представляет собой перевод [1].

Что изменилось?

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

Ресурсы и архитектура FPGA сами по себе не являются достаточным условием для построения системы обработки сигнала с плавающей запятой. По сути, такие языки описания архитектуры как Verilog и VHDL не обеспечивают поддержку операций с плавающей запятой на достаточном уровне. Сегодня отсутствуют доступные инструменты синтеза, которые поддерживали бы операции с плавающей запятой. Тем не менее традиционный подход, который используется в процессорах с плавающей запятой, не будет работать в FPGA. Вследствие этого был разработан новый метод управления процессом реализации проекта на базе смешанного канала данных (fused datapath), который позволяет создавать информационные каналы операций с плавающей запятой и в то же время учитывать особенности аппаратной реализации FPGA. Такие средства проектирования впервые сделали возможным создание сложных высокопроизводительных систем обработки сигналов с плавающей запятой на базе FPGA.

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

Для максимального увеличения производительности операций с фиксированной и плавающей запятой для 28-нм FPGA была разработана новая архитектура цифровой обработки сигнала с переменной точностью. Благодаря такой архитектуре у разработчиков появилась возможность устанавливать для DSP-блоков требуемый уровень точности обработки сигнала. Архитектура с переменной точностью обработки способна эффективно поддерживать существующие 18×18- и 18×25-разрядные приложения с фиксированной запятой, а также обеспечивать более высокий уровень разрешения, который необходим для приложений с плавающей запятой. В частности, были разработаны 27×27- и 54×54-разрядные режимы для поддержки приложений с плавающей запятой с одинарной и двойной точностью. Эффективность такого нового DSP-блока с переменной точностью критична, когда стоит задача поддержки производительности в 1 терафлопс на одном кристалле FPGA.

Новые возможности DSP-ресурсов

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

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

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

FPGA обеспечивает индивидуальную оптимизацию операций с плавающей запятой

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

Во-вторых, в FPGA можно использовать мантиссы большей величины, чем определено в стандарте IEEE 754. Это возможно ввиду того, что DSP-блоки переменной точности поддерживают 27×27- и 36×36-разрядные умножители, которые могут быть использованы для 23-разрядных каналов данных с плавающей запятой одинарной точности. При использовании конфигурируемой логики остаток после итерации, по определению, может иметь любую желаемую разрядность мантиссы. Используя для мантиссы несколько дополнительных битов, например, 27 вместо 23, можно обеспечить при переходе от одной операции к другой дополнительную точность, существенно сократив нормализацию и денормализацию.

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

Рис. 1. Оптимизация смешанного канала данных

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

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

Сложная функция обращения матрицы чисел с плавающей запятой с одинарной точностью может быть реализована с помощью метода проектирования на базе смешанного канала и протестирована при входных матрицах разной размерности. Эти результаты могут быть также рассчитаны на процессоре Pentium, который работает на базе стандарта IEEE 754. Эталонные данные вычисляются на процессоре с использованием операций с плавающей запятой двойной точности, что обеспечивает более точные вычисления по сравнению с одинарной точностью. Сравнивая данные, полученные при расчете с одинарной точностью как на базе стандарта IEEE 754, так и на базе смешанного информационного канала, и вычисляя норму Фробениуса для полученной разницы в данных, можно увидеть, что метод проектирования на базе смешанного канала данных дает более точные результаты, чем метод на базе IEEE 754 из-за большей точности мантиссы, которая используется в промежуточных вычислениях.

В таблице 1 представлены среднеквадратическое отклонение и норма Фробениуса, в которой индекс SD относится к архитектуре одинарной точности на базе IEEE 754, в сравнении с эталонной архитектурой двойной точности, а индекс HD — к аппаратной реализации архитектуры, созданной методом проектирования на базе смешанного информационного канала, в сравнении с эталонной архитектурой двойной точности.

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

Норма Фробениуса/
среднеквадратическое отклонение

8×8

32×23

64×64

128×128

||ESD||F

57,60

9,40

5,33

2,29

σ

459,18

44,30

36,94

7,60

||EHD||F

10,38

2,73

1,65

1,27

σ

47,10

10,36

7,36

5,33

Метод проектирования на базе смешанного канала

Способ проектирования на базе смешанного информационного канала был интегрирован в усовершенствованный набор DSP-блоков компании Altera DSP Builder Advanced Blockset, а средой проектирования был выбран пакет Simulink компании MathWorks. Это обеспечило простоту моделирования системы обработки операций с фиксированной и плавающей точкой, а также реализацию проекта с плавающей запятой на FPGA.

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

Рис. 2. Пример ввода проекта на базе операций с плавающей запятой в DSP Builder

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

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

– матричное умножение;

– разложение Холецкого;

– разложение LU-матрицы;

– QR-разложение.

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

Как достичь производительности в 1 терафлопс

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

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

Заключение

Реализация проекта на базе смешанного информационного канала является одним их важнейших инновационных решений технологии цифровой обработки сигнала на базе FPGA. Это единственный известный метод синтеза, который способен создавать каналы обработки данных с плавающей запятой в FPGA, что расширяет спектр доступных высокоэффективных инструментов и средств проектирования. В сочетании с 28-нм FPGA достигается скорость обработки сигнала с плавающей запятой, превышающая 1 терафлопс. Кроме того, дополнение math.h функциями линейной алгебры обеспечивает полную поддержку при создании сложных проектов. Это позволит разработчикам достичь динамического диапазона, точности и вычислительной мощности, которые требуются в DSP-приложениях и продуктах следующего поколения.

Литература

1. Michael Parker. How to achieve 1 trillion floating-point operations-per-second in an FPGA//www.eetimes.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *