7. Карпунина М.Е. Использование генетических алгоритмов для повышения эффективности работы искусственных нейронных сетей // Известия Академии инженерных наук им. А.М. Прохорова. Бизнес-информатика. - Н.Новгород: НГТУ-2005.
Бабкин Эдуард Александрович - Государственный университет - Высшая школа
экономики (ГУ-ВШЭ), зав. каф., к.т.н., доцент, [email protected]
Карпунина Маргарита Евгеньевна - Государственный университет - Высшая школа
экономики (ГУ-ВШЭ), аспирант, [email protected]
УДК 004.315
СПЕЦИАЛИЗИРОВАННОЕ ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ ОБРАБОТКИ РАДИОЛОКАЦИОННОЙ ИНФОРМАЦИИ
А.И. Грушин, М.Л. Ремизов, А.В. Ростовцев, Д.Д. Николаев, Чинь Куанг Киен
Одной из характерных задач обработки радиолокационной информации является вычисление комплексной матрицы в режиме реального времени. В работе рассмотрена аппаратная реализация алгоритма рекурсивного вычисления комплексной матрицы 64x64.
Ключевые слова: вычислительное устройство, матрица, комплексное умножение с накоплением, числа с плавающей запятой, ПЛИС
Введение
В [1] показано, что при выделении сигналов на фоне интенсивных помех наиболее трудоемкой в вычислительном отношении является процедура вычисления в режиме реального времени комплексной обратной матрицы ЯЛ„, зависящей от выборки векторов уп и константы ц:
R-1 = I; R-1 = R--1--— z„~„, z„ = R-n\y„, п = 1, 2, ..., 128, (1)
Д + У~ z„
где R— - комплексная матрица размерностью 64x64, I - единичная матрица, ц - целая
положительная константа, у„ - 64-мерный комплексный вектор, коэффициенты действительной и мнимой частей компонента - 12-разрядные целые числа со знаком, ~ обозначает комплексное сопряжение и транспонирование, N = 128 - количество векторов у„ в одной выборке.
Значение матрицы R"1 вычисляется на выборке из 128 векторов у„, затем она передается в другое устройство для принятия решения об обнаружении полезного сигнала. За 5 с (рабочий цикл радиолокационной системы) необходимо выполнить вычисление матрицы для 576 различных выборок векторов с тремя значениями ц.
Вычисления программным способом на компьютере (Core 2 Duo, 2,66 ГГц, 1 Гбайт) занимают более 43 мин., т.е. не обеспечивают требуемую скорость, поэтому принято решение реализовать вычисления на аппаратуре с параллельной архитектурой с созданием прототипа на ПЛИС.
Анализ формулы и результатов моделирования позволил установить, что y~z„ -
положительная величина, и вычисления в формате single [2] обеспечивают необходимую точность и диапазон вычислений.
Схема вычисления и формат чисел
Для вычисления нового значения матрицы нужно провести 128 итераций по формуле (1). Итерацию разделим на этапы (табл. 1).
Таблица 1. Этапы вычислений
Этап Операции и объем вычислений
1 zn = R--iyn 64x64 MAC
2 a = V+ ynzn 1x64 MAC
3 k=1 a 1DIV
4 wn= -kzn 64 MUL
5 R- = R--1 - Wn~n 64x64 MAC
Операции деления DIV и умножения MUL выполняются над действительными числами, а умножение с накоплением МАС выполняется над комплексными числами.
Моделирование показало, что 62-разрядные числа с фиксированной запятой обеспечивают необходимый диапазон вычислений и точность до 10-го двоичного знака по сравнению с вычислениями программным способом в формате single, но производительность при этом меньше требуемой. Использование чисел с плавающей запятой формата single позволяет автоматически решить проблему диапазона и точности вычислений. В табл. 2 приведено сравнение двух реализаций вычислителя.
Таблица 2. Два варианта реализации
Характеристика Фиксированная Плавающая
запятая 62 разряда запятая single
Процент занимаемой площади кристалла 12 % 55 %
Рабочая частота [МГц] 300 200-250
Время вычисления Я"1 для одного р, мс 5,6 1
Трудозатраты на разработку, чел.-мес. ~6 ~15
Использование чисел с фиксированной запятой предполагает более простые алгоритмы, меньшие трудозатраты, меньшую площадь кристалла, но требование по производительности повлекло за собой выбор чисел с плавающей запятой.
Исследование алгоритма вычисления обратной матрицы показало, что для обеспечения необходимого диапазона вычислений достаточно 7-разрядного порядка, поэтому в работе предложен формат чисел с плавающей запятой, в котором скрытый бит мантиссы представлен в явном виде (рис.1).
знак [¡ирядок Мантисса
разряд 31 8 разрядов 23 разряда 0
знак порядок мантисса
1 разряд 7 разрядок 24 разряда
Рис. 1. Формат чисел с плавающей запятой, в котором скрытый бит мантиссы
представлен в явном виде
В устройстве не поддерживаются некоторые требования стандарта [2], это упрощает аппаратуру и повышает быстродействие при сохранении той же точности.
Основные узлы вычислительного устройства
Узел преобразования целого в вещественное CI2F. На входе - 12-разрядное целое число Y в прямом коде со знаком. На выходе - вещественное число, содержащее знак, 7-разрядный порядок и 24-разрядную мантиссу, младшие 13 разрядов мантиссы всегда нулевые.
Узел комплексного умножения с накоплением MAC. Узел вычисляет следующую функцию (рис. 2, а):
AC - BD + E + (AD + BC + F)i, где А + Bi, C + Di, E + Fi - комплексные операнды, коэффициенты A, B, C, D, E, F -числа с плавающей запятой.
Рис. 2. Функция, вычисляемая узлом комплексного умножения с накоплением МАС
Сначала коммутатор МиХ1 пропускает С во входной регистр. Узел умножения чисел с плавающей запятой БРМЦЫ вычисляет произведение АС, а узел БРМиЬ2 -ВС. АС проходит через МиХЗ на вход узла сложения чисел с плавающей запятой БРА1,
на второй вход которого через коммутатор MUX2 проходит E. BC через MUX5 попадает на вход FPA2, где складывается с F. Затем через MUX1 в узлы умножения проходит D, в FPMUL1 вычисляется произведение AD, в FPMUL2 вычисляется BD. AD через MUX5 попадает в FPA2, где складывается с BC + F, которое через MUX4 подается с выхода acc_re. BD через MUX3 попадает в FPA1, где вычитается из AC + E, которое через MUX2 подается с выхода acc_im.
В режиме накопления через внешние коммутаторы на входы E и F подается ранее вычисленный комплексный результат. Таким образом, выход acc_re = AC - BD + E, acc_im = AD + BC + F.
Время выполнения операции MAC составляет 14 тактов, новые операнды на вход MAC можно подавать каждые 8 тактов.
Узел комплексного умножения с накоплением MACR. На вход узла MACR (рис. 2, б) поступают два комплексных числа A + Bi и C + Di и действительное число E. Результат является положительным числом с плавающей запятой res = AC - BD + E. Мантиссы чисел A и B содержат 24 разряда, а мантиссы чисел C и D - 11 разрядов.
MACR состоит из двух узлов умножения чисел с плавающей запятой FPMUL1 и FPMUL2 и двух узлов сложения чисел с плавающей запятой FPA1 и FPA2. Для повышения точности разность двух полных 35-разрядных произведений AC - BD округляется до 35 разрядов к ближайшему. Потом к этому прибавляется E, и сумма округляется до 35 разрядов. Когда сигнал last_cycle = 1, происходит округление до 24 разрядов, т.е. большего из форматов исходных чисел.
Время выполнения операции MACR - 12 тактов, новые операнды на вход MACR можно подавать каждые 4 такта.
Узел вычисления обратной величины Recipr. Узел использует алгоритм Ньютона-Рафсона [3], итерации проводятся по формуле R = R • (2 - A • RJ,
где Ri-1 - предыдущее приближение, R - следующее приближение, A - мантисса числа, обратная величина которого вычисляется.
В качестве начального приближения R0 используется значение из таблицы, хранящейся в памяти ROM (рис. 2, в), которое выбирается по шести старшим разрядам дробной части мантиссы числа, подающегося на вход узла.
Коммутатор MUX1 пропускает множимое R0, MUX2 пропускает A, в умножителе MUL1 в следующем такте вычисляется произведение Ro*A[23:0]. Разность 2 - A • R0
вычисляется как дополнительный код произведения A • R0 .
Второе умножение первой итерации выполняется сразу на двух умножителях MUL1 и MUL2, два произведения складываются в сумматоре Adder. Произведение R0 • (2 - A • R0) округляется до 24 разрядов с помощью инкрементора. Таким образом, в
результате первой итерации мы получаем новое приближение мантиссы результата R1. Две следующие итерации выполняются аналогичным образом. Устройство выдает результат через 19 тактов после получения операнда.
Структура вычислительного устройства
На рис. 3, а, изображена структурная схема специализированного вычислительного устройства. Основной объем вычислений производится в блоке из 64 узлов MAC1-MAC64, каждый из которых вычисляет AC - BD + E + (AD + BC + F)i. Он позволяет быстро выполнять действия с матрицами, предусмотренные табл. 1. Блок MAC совершает вычисления одновременно над всеми компонентами одного столбца матрицы R-,
что обусловливает организацию памяти для хранения матрицы R—. Это память с глу-
биной 64 (количество столбцов) и разрядностью шины данных 64x2x32. В состав устройства также входят узел преобразования целого в вещественное CI2F, узел MACR, узел вычисления обратной величины, узел управления Control Unit и другие узлы.
Рис. 3. Структурная схема специализированного вычислительного устройства (а)
и временная диаграмма его работы (б)
Интерфейс вычислительного устройства
Входной сигнал Start запускает работу устройства, параметр определяет возможность различать близко находящиеся цели, от него зависит точность вычислений, результат с фазированной антенной решетки после аналогово-цифрового преобразователя дает вектор yn. Адрес addr_y используется для чтения компоненты вектора yn из внешней памяти, младшие 6 разрядов определяют номер компоненты, старшие 7 разрядов определяют номер вектора. В памяти хранятся 128 векторов выборки. 32-разрядный выход vector_out попеременно выдает коэффициент действительной и мнимой частей элемента матрицы, через него во внешнюю память для дальнейшей обработки передается вычисленная матрица.
Описание работы вычислителя
Вычисления начинаются с подачи сигнала Start, который вырабатывается один раз для обсчета всех 128 векторов yn выборки. По сигналу Start обнуляются счетчики
узла управления, и устройство начинает работать в соответствии с временной диаграммой (рис. 3, б).
Фаза Load_J (начальная загрузка). В память обратной матрицы R- записывается
вещественная единичная матрица I. Для этого на соответствующий вход коммутатора MUX4 подается коэффициент мнимой части 0, коэффициент действительной части - вещественная единица. В течение 64 тактов прописываются все 64 столбца памяти. В первом столбце вещественная единица записывается в первый (верхний) элемент, во втором столбце - во второй элемент, и т.д. Для этого в сдвиговом регистре SHRI каждый такт на один разряд сдвигается единица, указывающая на нужный элемент столбца.
ФазаMAC1 (вычисление вектора zn). Длительность фазы - 64 цикла работы MAC. Коммутатор MUX1 пропускает компоненту yn, которая поступает в MAC1-MAC64 на вход множителя, MUX2 при подаче нулевой компоненты вектора yn пропускает 0, затем acc (результат с выхода MAC), MUX3 - столбец из памяти матрицы R- . Каждый цикл
работы MAC1 меняются разряды адреса чтения yn addr_y [5:0].
За 64 цикла работы блок MAC вырабатывает 64 компоненты вектора zn, которые параллельно принимаются в сдвиговый регистр SHRZ, где преобразуются в последовательный код во время фазы MACR.
Фаза MACR (вычисление знаменателя а). Длительность фазы - 64 цикла работы MACR. На вход множителя поступает 19 разрядов компоненты (yln )* (знак, 7 разрядов
порядка, 11 старших разрядов мантиссы) c выхода преобразователя целого в вещественное CI2F, на вход множимого поступает компонента zn из сдвигового регистра SHRZ. Через MUX5 на вход слагаемого в начальный момент времени поступает константа р с входа спецвычислителя, затем через этот коммутатор проходит acc (результат предыдущей операции MACR).
При каждом цикле работы MACR меняются младшие 6 разрядов адреса чтения yn и происходит сдвиг на одну компоненту в регистре SHRZ. В конце фазы на выходном регистре находится величина а, которая используется в фазе Recipr.
Фаза Recipr (вычисление обратной величины). За три итерации вычисляется обратная величина 1/а , длительность фазы - 19 тактов.
Фаза MAC2 (вычисление произведения - к • zn. Длительность фазы - 1 цикл работы MAC. С выхода узла Recipr через MUX1 на вход множителя MAC1-MAC64 поступает величина - к. На вход множимого через MUX3 поступают компоненты вектора zn , на вход слагаемого через MUX2 подается 0. Произведение записывается в регистр RgZK.
Фаза MAC3 (вычисление нового значения матрицы R-1). Длительность фазы - 64 цикла работы MAC. Через MUX1 в блок MAC1-MAC64 на вход множителя поступает компонента вектора z*, она получается в узле комплексного сопряжения ConZ. На входы множимого MAC1-MAC64 через MUX3 поступают компоненты вектора - к • zn. На вход слагаемого MAC1-MAC64 через MUX2 из памяти матриц поступает столбец старого значения матрицы R-- . На выходе MAC1-MAC64 получается новое значение
столбца матрицы, которое записывается в память матрицы через MUX4.
При каждом цикле работы MAC в память матрицы записывается новое значение столбца, в сдвиговом регистре SHRZ происходит сдвиг на одну компоненту вектора zn (тем самым в младших 64 разрядах регистра оказывается следующая компонента вектора zn ), из памяти считывается новый столбец. За 64 цикла работы MAC в память записывается новое значение матрицы. По завершении фазы MAC3 значение старших семи разрядов адреса чтения компоненты вектораyn addr_y [12:6] увеличивается на 1.
Фаза Upload (передача матрицы R"1 во внешнюю память, происходящая по окончании обработки выборки векторов). Передача всей матрицы занимает 8192 такта. Из памяти считывается столбец, через MUX6 он записывается в сдвиговый регистр SHRZ, где раз в 2 такта происходит сдвиг вправо на одну компоненту. С младших 64 разрядов регистра SHRZ через MUX7 каждый такт считывается половина элемента матрицы: в первом такте - 32 разряда мнимой части, во втором такте - 32 разряда действительной части. Эти действия повторяются 64 раза, по числу столбцов матрицы R"1. По окончании фазы устройство ожидает нового сигнала Start.
Фазы Load_I и Upload выполняются один раз за время обработки выборки векторов yn, остальные фазы повторяются 128 раз.
Верификация и создание прототипа
Все узлы вычислительного устройства прошли верификацию в автономном режиме на случайных направленных тестах. Одинаковые воздействия подавались на RTL-модель узла на языке Verilog и на функциональную модель этого узла, написанную на языке C++. Реакции обеих моделей сравнивались. Функциональная модель не описывает все подробности алгоритмов обработки чисел с плавающей запятой, используемых в узле, а опирается на операции, выполняемые микропроцессором Pentium 4, что упростило написание функциональной модели и ускорило ее отладку и работу.
После автономной верификации узлы собирались в устройство, которое также верифицировалось на случайных направленных тестах.
Устройство синтезировано на ПЛИС типа Virtex-5 xc5vlx330 [4].
Прототип устройства занимает 54% ресурсов кристалла, рабочая частота - 200 МГц. Вычисление матрицы для одной выборки занимает менее 10-3 сек, производительность ~6,5 gigaFLOPS.
Заключение
В работе описано вычислительное устройство с параллельной архитектурой для аппаратной реализации алгоритма рекурсивного вычисления комплексной матрицы 64x64. Проанализирована и преобразована исходная формула, разработаны функциональные модели, проведено исследование точности вычислений, предложено представление информации, облегчающее проектирование, разработаны и верифицированы узлы устройства, разработана структура специализированного вычислительного устройства, проведена отладка устройства, синтезирован прототип.
Производительность и точность устройства удовлетворяют требованиям.
Повышение точности вычислений улучшает возможность различать близко расположенные цели, для этого можно увеличить разрядность мантиссы используемого формата и уменьшить количество округлений при вычислениях за счет использования метода MAF (multiply add fused).
Производительность устройства можно увеличить за счет полной конвейеризации узлов, использования более быстрых алгоритмов умножения и вычисления обратной величины и использования нескольких узлов MACR. Реализация этих возможностей, наряду с использованием заказной интегральной схемы отечественного производства с технологией 180 нм, позволяет увеличить производительность в 5-10 раз по сравнению с прототипом.
Литература
1. Черемисин О.П. Адаптивные алгоритмы обработки сигналов в многоканальных приемных системах с антенными решетками // Радиотехника и электроника. -2006.- T. 51. - № 9. - С. 1087-1098.
2. IEEE Standard for Binary Floating-Point Arithmetic / ANSI/IEEE Standard No. 754. -American National Standards Institute. - Washington, DC, 1985.
3. Ercegovac M., Lang T. Digital Arithmetic. - San Francisco: Morgan Kaufmann Publishers, 2004.
4. Сайт FPGA and CPLS solutions from xilinx. - Режим доступа: http://www.xilinx.com/support/documentation/virtex-5.htm, свободный.
Грушин Анатолий Иванович
Ремизов Максим Леонидович
Ростовцев Артем Вадимович
Николаев Дмитрий Дмитриевич
Чинь Куанг Киен
Институт точной механики и вычислительной техники РАН, ведущий научный сотрудник, к.т.н., [email protected]
Институт точной механики и вычислительной техники РАН, инженер-конструктор, [email protected]
Институт точной механики и вычислительной техники РАН, инженер-конструктор, [email protected]
Московский физико-технический институт (государственный университет), студент, [email protected]
Московский физико-технический институт (государственный университет), студент, [email protected]
УДК 004.45
ТЕХНОЛОГИЯ ПОСТРОЕНИЯ ВИРТУАЛЬНЫХ ИСПЫТАТЕЛЬНЫХ СТЕНДОВ В РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СРЕДАХ Г.И. Радченко, Л.Б. Соколинский
В работе представлена технология построения виртуальных испытательных стендов в распределенных вычислительных средах на основе технологии CAEBeans. Дано описание структурной организации оболочек CAEBeans, описаны базовые принципы реализации системы CAEBeans.
Ключевые слова: CAEBeans, Грид, распределенные вычисления, Грид-сервисы, иерархии проблемно-ориентированных оболочек
Введение
При разработке новых технологических линий и производственных технологий важную роль играют экспериментальные комплексы и стенды. В качестве примера можно привести аэродинамические трубы, стенды по испытанию резьбы труб и др. В настоящей работе рассматривается технология построения виртуальных испытательных стендов путем создания и анализа математических моделей разрабатываемой продукции на высокопроизводительных вычислительных системах с помощью инженерных пакетов. Такой подход позволяет существенно повысить точность анализа проектных вариантов продукции, значительно сократить стоимость опытно-конструкторских работ и проводить виртуальные эксперименты, которые в реальности выполнить невозможно.
Для проведения экспериментов в области современного компьютерного моделирования требуются значительные вычислительные ресурсы. Опыт использования суперкомпьютерных систем показывает, что максимальная эффективность использования вычислительных ресурсов может быть достигнута при объединении таких систем в вычислительные Грид-сегменты [1].