Применение параллельных вычислений в гетерогенных системах на примере моделирования классического свёрточного кодера с декодированием по модифицированному алгоритму Витерби

УДК621.396

ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В ГЕТЕРОГЕННЫХ СИСТЕМАХ НА ПРИМЕРЕ МОДЕЛИРОВАНИЯ КЛАССИЧЕСКОГО СВЁРТОЧНОГО КОДЕРА С ДЕКОДИРОВАНИЕМ ПО МОДИФИЦИРОВАННОМУ АЛГОРИТМУ ВИТЕРБИ

Ю.С. Науменко, О.Е. Соболев, А.Г. Остапенко

В статье рассматриваются аспекты моделирования в гетерогенных системах кодирования/декодирования, исправляющего ошибки. Рассматривается архитектура гетерогенных систем с точки зрения открытого стандарта ОрепСЬ. Приводятся результаты применения техники ОРОРИ к задаче моделирования помехоустойчивых кодеков на примере оценки характеристик классического свёрточного кодера с декодированием по модифицированному алгоритму Витерби

Ключевые слова: параллельные вычисления, декодер, алгоритм Витерби

Применение методов помехоустойчивого кодирования в качестве эффективного средства приведения параметров

высоконадежных систем передачи

информации к требуемому компромиссу между значениями вероятности ошибок, дальности, мощности, пропускной

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

Неотъемлемым этапом применения методов теории кодирования, в частности помехоустойчивого, разработчиками систем связи, при реализации конкретной аппаратуры, является этап оценки характеристик, которых удалось добиться от конструкции помехоустойчивого кодека, используемого в системе. Для решения этой задачи, особенно на предварительных стадиях, часто производится моделирование разработанных конструкций кодека на ЭВМ. Такое моделирование, при необходимости оценки кодеков в областях с низкой вероятностью ошибок на бит, даже в условиях использования современного аппаратного обеспечении,

Науменко Юрий Сергеевич - ВГТУ, аспирант, тел. (473) 243-77-06, e-mail: kipr@vorstu.ru

Соболев Остап Евгеньевич - ОАО «Концерн «Созвездие», конструктор, тел. (473) 243-77-06, e-mail: kipr@vorstu.ru

Остапенко Александр Григорьевич - ВГТУ, д-р техн. наук, профессор, тел. (473) 252-34-20, e-mail: mnac@comch.ru

является достаточно ресурсоемким, в первую очередь с точки зрения временных затрат.

Одним из вариантов уменьшения временных издержек на моделирование является использование в нём вычислительных ресурсов графических карт ЭВМ. При достаточном параллелизме вычислений на GPU (англ. Graphics processing unit), техника GPGPU (англ. General Purpose computing on Graphics Processing Units — «GPU общего назначения») [1] позволяет достичь временного выигрыша при моделировании по отношению к тем же вычислениям, производимым последовательно на CPU (англ. Central processing unit). В работе приведены результаты применения данной техники при моделировании классического свёрточного кодера с декодированием по алгоритму Витерби.

На рис. 1: «хост» (англ. host — хозяин, принимающий гостей) предоставляет сервисы доступа к множеству OpenCL устройств. OpenCL устройства разделены на несколько вычислительных блоков с множеством процессорных элементов. Вычисления на устройстве производятся процессорными элементами. Команды OpenCL приложения адресуются хостом для выполнения на процессорных элементах внутри устройства. Процессорный элемент выполняет один поток, как SIMD (англ. Single instruction, multiple data — одиночный поток команд, множественный поток данных, ОКМД) так и SPMD (англ. Single program, multiple data — единая программа, множество данных), инструкций.

Для реализации техники GPGPU использовался открытый стандарт OpenCL [2] (англ. Open Computing Language — открытый язык вычислений), предполагающий архитектуру гетерогенной системы, на которой реализуются параллельные вычисления,

соответствующей архитектуре, изображенной на рис. 1.

Рис. 1. Архитектура гетерогенной системы в соответствии с OpenCL, где 1 - Хост. 2 -Вычислительное устройство. 3 - Вычислительный блок.

4 - Процессорный элемент

При вычислениях, на GPU выполнялся код соответствующий подсчету метрик путей, выбору из них выживших и обновлению массивов метрик для текущего и предыдущего шагов. Модификация алгоритма выполнения этих операций производилась с целью обеспечения возможности параллельного выполнения необходимых при этом расчетов. Для вычисления метрик выживших путей требуется массив для хранения метрик выживших путей M0, вычисленных на предыдущем шаге, массив вычисляемых метрик M1, размерностями 2l-1 элементов, где l- длина кодового ограничения, и массив P, размерностью n*2l-1 элементов, хранящий номер предыдущего состояния, для выжившего состояния пути. Таким образом, каждым процессорным элементом:

1. Вычисляется M1[/],

- в случае i<21-2, равный большему из значений M0[i*2]+m0 и M0[i*2+1]+rn1; в P[t] записывается i *2, если M0[i*2]+m0>M0[i*2+1]+m1 и i*2+1 в противном случае.

- в случае i>21-2, соответствующий большему из значений M0[(i-2l-2)*2]+m0 и M0[(i-2l-2) *2+1]+mi; в P[t] записывается i*2,

если M0[(i-2 ) *2]+m0>M0[(i-2 ) *2+1]+m1 и i*2+1 в противном случае.

Здесь i - номер процессорного элемента (kernel в терминологии OpenCL); m0 -значение метрики, при условии, что предыдущим для состояния i (или i-2l-2, при i>2l-2) было состояние i*2 ((i-2l-2)*2), а m1 -значение метрики, при условии, что предыдущим для состояния i или i-21-2 было состояние i*2+1 ((i-2l-2)*2+1); t - номер шага подсчета метрик путей.

2. Производится обновление массивов метрик:

- на первом шаге подсчета метрик - М0[/] =М1р]= М0[0] = 0;

- в остальных случаях - М0[/] =М1[/], М1[/]= -да.

Такое решение обосновано структурой решетчатой диаграммы свёрточного кодера. Обратимся, например, к решетчатой диаграмме свёрточного кода с кодовым ограничением равным 4, представленной на рис. 2.

ш

Щ>

0Щ

_2_

Рис. 2. Решетчатая диаграмма сверточного кода с кодовым ограничением равным 4 для трёх шагов подсчета метрик путей

Из рис. 2 очевидно, что на шаге t подсчета метрик, состояния i*2 и i*2+1, 0<i<21-2, на решетчатой диаграмме являются

предыдущими для состояний 0<i<21'2, в случае если на шаге t-1 новым информационным битом был 0, и являются предыдущими для состояний 21~2<i<21'1, в случае если на шаге t-1 новым информационным битом была 1, что и было использовано при распараллеливании алгоритма подсчета метрик.

Вычисления производились на графических картах AMD Radeon HD 5770 (800 потоковых процессоров с частотой 850МГц), AMD Radeon HD 4650 (320 потоковых процессоров с частотой 600 МГц) и на CPU - Intel Core 2 Duo E8400 в однопоточном режиме с частотой 3,6 ГГЦ. При моделировании производилось 100 итераций кодирования, зашумления и декодирования кодового слова длиной 1024 бит, при уровне шума в 1; 1,5; 2; 2,5 дБ, с кодовой скоростью R=0,5. Графики зависимостей времени выполнения

моделирования от числа состояний (длины кодового ограничения) представлены на рис. 3 а и 3 б.

Рис. 3а. Зависимость времени вычислений от числа состояний кодера

Рис. 3б. Зависимость времени вычислений от длины кодового ограничения

На рис. 3 кривые: E8400 - соответствует временным затратам на моделирование с последовательными вычислениями на CPU Intel Core 2 Duo E8400; 5770 - затратам на моделирование с использованием

параллельных вычислений на GPU Radeon HD 5770; 4650 - на GPU Radeon HD 4650 соответственно. Для GPU Radeon HD 5770 временной выигрыш по отношению к CPUE 8400 проявляется уже при 2l-1=128; для Radeon HD 4650 - при 2l-1=512. Для большей наглядности на рис. 4 приведены графики зависимости отношений времён выполнения расчетов, при вычислениях на CPU к GPU от числа состояний свёрточного кодера.

Провал на кривой "E8400/5770" в точке, соответствующей значению 2l-1=512 связан с ограничениями размера «рабочей группы» при

вычислениях на карте Radeon HD 5770. Драйвер графической карты ограничивает этот размер значением 256. При 2l-1<256 вычисления производятся по

модифицированному алгоритму с

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

Рис. 4. Относительный временной выигрыш вычислений на GPU

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

Литература

1. Боресков А.В., Харламов А. А. Основы работы с технологией CUDA. - М.: ДмК Пресс, 2010. - 232 с.: ил.

2. KhronosOpenCL Working Group. "The OpenCL Specification". Version: 2.0. Document Revision: 19. 11/14/2013. - 283 p

3. Подвальный С. Л. Многоальтернативные системы: обзор и классификация [Текст] / С. Л. Подвальный // Системы управления и информационные технологии. - 2012. - Т. 48. -. № 2- С. 4-13.

4. Подвальный С.Л. Интеллектуальные системы моделирования: принципы разработки [Текст] / С. Л. Подвальный, Т.М. Леденева // Системы управления и информационные технологии. - 2013. - - Т.51. - № 1. -С 4-10

Воронежский государственный технический университет ОАО «Концерн «Созвездие», г. Воронеж

APPLICATION OF PARALLEL COMPUTING IN HETEROGENEOUS SYSTEMS BY THE EXAMPLE OF THE CLASSICAL CONVOLUTIONAL ENCODER DECODING THE MODIFIED VITERBI ALGORITHM

Yu.S. Naumenko, O.E. Sobolev, A.G. Ostapenko

This article discusses aspects of modeling in heterogeneous systems encoding / decoding error correction. The architecture of heterogeneous systems from the point of view of the open standard OpenCL. The results of applying the technique to the problem of modeling GPGPU-correcting codec for example, evaluate the performance of the classical convolutional encoder decoding the modified Viterbi algorithm Key words: parallel computing, decoder, Viterbi algorithm