Научная статья на тему 'Виртуальный векторный анализатор сигналов на базе технологии CUDA'

Виртуальный векторный анализатор сигналов на базе технологии CUDA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
189
55
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
виртуальный измерительный прибор / векторная вычислительная архитектура / БПФ / CUDA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Волков Константин Валерьевич

Предложена структурная схема виртуального векторного анализатора сигналов на базе технологии CUDA. Предлагаемая схема анализатора позволит значительно снизить стоимость векторного анализатора, не снижая качество измерительного устройства. Использование CUDA в качестве основного вычислительного модуля существенно повысит производительность устройства. Гибкая программная структура измерительного устройства позволит производить анализ самых популярных стандартов беспроводной связи в реальном времени.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Волков Константин Валерьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Виртуальный векторный анализатор сигналов на базе технологии CUDA»

УДК 621.396.41 К.В. Волков

Виртуальный векторный анализатор сигналов на базе технологии CUDA

Предложена структурная схема виртуального векторного анализатора сигналов на базе технологии CUDA. Предлагаемая схема анализатора позволит значительно снизить стоимость векторного анализатора, не снижая качество измерительного устройства. Использование CUDA в качестве основного вычислительного модуля существенно повысит производительность устройства. Гибкая программная структура измерительного устройства позволит производить анализ самых популярных стандартов беспроводной связи в реальном времени.

Ключевые слова: виртуальный измерительный прибор, векторная вычислительная архитектура, CUDA, БПФ.

Векторный анализатор сигналов по сути своей является сложным вычислительным устройством. В нем производится расчет характеристик принимаемого сигнала и отображение их в доступном виде. Что касается импортных образцов, то они построены по классическим схемам, либо в виде отдельного устройства с экраном, либо в виде виртуального измерительного прибора. Второй вариант позволяет снизить стоимость разработки за счет использования в качестве одного из составляющих блоков - ЭВМ. Но существует одна общая проблема: для произведения расчетов характеристик сигналов в реальном времени требуются большие вычислительные мощности, и для хранения временных записей требуется большое количество оперативной памяти [1]. На разработку специализированных вычислительных модулей на базе мощных сигнальных процессоров и ПЛИС тратятся огромные деньги. В статье предложено передовое и очень выгодное решение для построения отечественного виртуального векторного анализатора, способного конкурировать на международном рынке.

В данной статье рассматривается структурная схема виртуального векторного анализатора сигналов на базе технологии CUDA. Используя технологию CUDA для получения всех необходимых характеристик сигнала из одной общей временной записи в реальном времени, можно получить десятикратное увеличение производительности. Данное утверждение подтверждено результатами эксперимента (рис. 1). Другое немаловажное преимущество предлагаемой схемы - это доступ к большим объемам оперативной памяти видеоадаптера (от 256 МБ до 4 ГБ). Такого количества памяти достаточно для хранения характеристик сигнала и предоставления их пользователю по первому требованию. К тому же многопоточная структура графического процессора дает возможность анализировать данные с целью определения неисправностей в автономном режиме и предоставлять пользователю уже готовые отчеты об обнаруженных нарушениях в сигнале. В структурной схеме так же предложено использование библиотеки FFTW для расчета БПФ, дело в том, что данная библиотека написана с расчетом на многоядерные CPU (встроенные функции и кэширование), и ее производительность в значительной мере превосходит любой обычный алгоритм, написанный для одного ядра.

Структурная схема

Структурная схема виртуального векторного анализатора сигналов изображена на рис. 1. Устройство представлено как совокупность измерительного блока (источника массивов данных), алгоритмов векторного анализа сигналов (алгоритмов обработки массивов данных), исполняемых на графическом адаптере (эффективное средство расчета матричных алгоритмов), и некоторого графического интерфейса (средства отображения характеристик, хранящихся в массивах данных).

Поток данных с шестнадцатиразрядного АЦП, при частоте дискретизации 100 МГц, составляет 1,6 Гбит/с и требует наличия высокоскоростного канала передачи данных с гигабитной пропускной способностью. Интерфейсы передачи данных Gbit Ethernet или eSATA удовлетворяют запросам и используются в приведенной структурной схеме для соединения измерительного блока и пользовательского многопоточного приложения, выполняющегося на портативном компьютере. Многопо-

точное приложение направляет данные, пришедшие от измерительного блока, на расчет в какую-либо библиотеку (FFTW или СиБЛ). Выбор той или иной библиотеки зависит, прежде всего, от доступных аппаратных средств портативного компьютера. После расчетов результаты возвращаются в приложение и отправляются в блок отображения характеристик.

Рис. 1. Структурная схема виртуального векторного анализатора сигналов

а' 5 (?і)х(-8Іп(^?і)) I ■ 5 (?і)х(е08( ^?і))

Q2 = 5 (?2 )х(-8Іп(^?2)) ? Ь = 5 (?2 )х(с08(^?2))

ш _ 5 (?^ )х(-вІп(^?^ ))_ Іії _ 5 (?Ы )х(с°8(^ ))_

Помимо алгоритма БПФ, векторному анализатору понадобятся и квадратурные демодулятор и модулятор. Цифровые реализации модулятора и демодулятора позволяют избежать амплитудного и фазового дисбаланса между квадратурными сигналами. Для описанной схемы эти алгоритмы будут представлять собой почленное умножение векторов, как показано в (1):

(1)

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

Поступивший на вход приемника сигнал / (?) переносится на промежуточную частоту /р (td)

и оцифровывается в аналого-цифровом преобразователе (АЦП). Формируется блок данных или временная запись сигнала. Объем временной записи выбирается исходя из цели исследования (к примеру, захват целого пакета какой-либо системы передачи данных). Данная временная запись направляется в видеоадаптер для расчета многодоменных представлений сигнала. С помощью алгоритма БПФ получается частотная форма сигнала. С помощью квадратурного демодулятора получаются вектора квадратур. Квадратурные компоненты 7(?^) и Q(td) с выхода квадратурного

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

Для оценки производительности предложенной структурной схемы виртуального векторного анализатора сигналов был поставлен эксперимент. В рамках эксперимента производилось сравнение времен, затрачиваемых на расчет БПФ (из необходимых для векторного анализа сигналов алгоритмов - этот наиболее важный и ресурсоемкий).

fiiр (td) Q(d) 1 (d)

Рис. 2. Схема получения характеристик сигнала

Результаты эксперимента

По результатам испытаний библиотек СИБЛ и FFTW была составлена таблица. В классическом варианте при расчетах БПФ существенное значение имеет кратность размера блока степени двойки. В эксперименте также используются и другие вариации для сравнения результатов. Экспериментальные блоки состоят из N полезных данных, и для получения блоков кратности степени двойки или пятерки дополняются нулями до ближайшего соответствующего значения.

Результаты эксперимента по оценке производительности библиотек для размеров блока N

Расчет БПФ Время расчета (мс)

N = 2 млн N = 4 млн N = 6 млн N = 8 млн

FFTW при использовании размера блока, кратного степени двойки 600 1600 2400 3500

FFTW при использовании размера блока, кратного степени пятерки 550 1500 2250 3000

FFTW при использовании размера блока, кратного десяти 450 1250 1500 2500

СИБЛ при использовании размера блока, кратного десяти 250 400 700 1000

СИБЛ при использовании размера блока, кратного десяти плюс копирование 400 600 900 1300

СИБЛ при использовании размера блока, кратного степени двойки 40 60 80 100

СИБЛ при использовании размера блока, кратного степени двойки плюс копирование 70 120 100 130

Эксперимент проводился на самом маломощном видеоадаптере GeForce 8400sg с поддержкой CUDA. Характеристики для CUDA приведены парами (с учетом копирования данных и без учета копирования данных из оперативной памяти компьютера в оперативную память видеоадаптера). Копирование данных составляет приблизительно 20% от времени расчета. При размерах блока, равных степени двойки, алгоритм CUDA выполняется быстрее в 13 раз, чем FFTW. Для сравнения, рас-

чет на более мощном видеоадаптере GeForce 9400 выполняется быстрее в 22 раза, чем FFTW. Необходимо отметить, что библиотека FFTW для размерностей блока, равных степени двойки и пятерки, дает худшие результаты, чем для общего случая кратности десять. А библиотека CUDA более эффективно работает с размерностями блока, равными степени двойки.

В связи с проявившимися в эксперименте особенностями необходимо предусмотреть возможности выравнивания блоков данных под нужный размер с учетом используемой библиотеки (для CUDA - выравнивание до размера, равного степени двойки, для FFTW - избегать размеров, равных степени двойки).

При расчетах использовались штатные алгоритмы БПФ (cufft) из набора CUDA, но существует возможность оптимизации алгоритмов БПФ. В работе [2] представлен алгоритм, способный увеличить скорость расчета БПФ на видеоадаптере за счет выравнивания входных данных и использования единичного шага при перемещении в памяти GPU.

Выводы

За счет своей уникальной вычислительной архитектуры графические процессоры превосходят по скорости CPU общего назначения на массивно параллельных задачах. Доступ к большому количеству оперативной памяти видеоадаптера позволяет реализовать виртуальный векторный анализатор в виде одного программного блока (ядра), на вход которого подается временная запись, а на выходе получаются характеристики во всех доступных доменах. Устройства, разрабатываемые по предложенной структурной схеме, не требуют значительных денежных затрат на разработку специализированных вычислительных модулей на базе ПЛИС или сигнальных процессоров. Стоимость полностью готового к работе портативного компьютера с требуемым видеоадаптером составляет 30 тыс. руб., а стоимость хорошего DSP или ПЛИС с учетом отладочной макетной платы, обучением сотрудников, разработки собственных плат может в значительной мере превысить эту цифру. К тому же в случае использования графического процессора мы имеем дело с плавающей запятой двойной точности и не испытываем при этом никаких неудобств, получаем приличные точностные характеристики. Использование чисел с плавающей точкой в ПЛИС или DSP и оценка точности вычислений - это отдельная большая проблема.

Работа выполнена при поддержке Министерства образования и науки РФ в соответствии с договором 13.G25.31.0011 от 07 сентября 2010 г. в порядке реализации Постановления № 218 Правительства РФ.

Литература

1. Agilent Technologies. Vector Signal Analysis Basics [Электронный реcурс]. - Режим доступа: http://www.its.bldrdoc.gov/meetings/itu-r/agilent/agilent_VSA_basic_description.pdf, свободный (дата обращения: 19.06.2010).

2. Volkov V. Using GPUs to accelerate linear algebra routines [Электронный реcурс]. - Режим доступа: http://www.cs.berkeley.edu/ ~volkov/volkov08-parlab.pdf, свободный (дата обращения: 19.06.2010).

Волков Константин Валерьевич

Аспирант каф. средств радиосвязи ТУСУРа

Тел.: (382-2) 41-37-09

Эл. почта: СРС kv.russia@gmail.com

Volkov K.V.

Virtual Vector Signal Analyzer based on CUDA technology

The scheme of the virtual vector signal analyzer based on CUDA technology is described. The suggested scheme of the analyzer allows to bring down the cost of the device, without decreasing the quality of the measuring device. The usage of CUDA technology as the main computation module improves the performance of the device. Device processes the signals in real time on the nVidia GPU. Kernels for the video card are written in C and use CUDA runtime libraries.

Keywords: virtual vector signal analyzer, CUDA, VSA, FFT, DSP.

i Надоели баннеры? Вы всегда можете отключить рекламу.