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

Этот пример показывает, как можно использовать графические процессоры, чтобы существенно ускорить симуляции частоты ошибок по битам. Турбокоды формируют магистраль многих современных систем связи. Из-за интенсивного объема вычисления, вовлеченного в Турбо Декодер и значительный объем испытаний, требуемых для допустимой симуляции частоты ошибок по битам, Турбо Декодер является идеальным кандидатом на ускорение графического процессора. Смотрите "Параллельное Конкатенированное Сверточное Кодирование: Турбокоды" пример, который объясняет цепочку обработки данных, для получения дополнительной информации о Турбокодах.

У вас должна быть лицензия Parallel Computing Toolbox™, чтобы использовать Турбо Декодер пример графического процессора.

Этот пример иллюстрирует два подхода для ускорения графического процессора симуляции частоты ошибок по битам Турбокодирования. Базовая система состоит из случайной генерации сообщения, Турбо Энкодер (коммуникация. TurboEncoder), модуляция BPSK с помощью кода MATLAB®, канал AWGN (коммуникация. AWGNChannel), демодуляция BPSK с помощью кода MATLAB, Турбо Декодер (коммуникация. TurboDecoder), и наконец вычисление частоты ошибок по битам (коммуникация. ErrorRate).

Уведомление: Предоставление этого программного обеспечения не передает лицензию, ни подразумевает любое право использовать любые патенты на Турбокоды, принадлежавшие France Telecom, Telediffusion de France и/или Groupe des Ecoles des Telecommunications кроме связи с использованием программного обеспечения в целях проекта, симуляции и анализа. Код, сгенерированный от технологии Турбокодов в этом программном обеспечении, не предназначается и/или не подходит для реализации или объединения ни в каких коммерческих продуктах.

Свяжитесь с France Telecom для получения информации о Турбокодах, Лицензирующих программу в следующем адресе: R&D France Telecom - PIV/TurboCodes 38-40, сожалейте о du генерале Леклерке 92794 Исси-ле-Мулино Cedex 9, Франция.

Запустите графический интерфейс пользователя TurboDecoderBERsim

TurboDecoderBER_GPU

Обзор симуляции

В Simulation options группа кнопок выбирают опцию CPU для центрального процессора только симуляция. Опция Simple GPU вносит очень скромные изменения в версию ЦП, заменяя основанный на центральном процессоре Турбо Декодер (коммуникация. TurboDecoder) с реализацией графического процессора (comm.gpu. TurboDecoder).

Опция Optimized GPU использует comm.gpu. Объект TurboDecoder и выполнения код модуляции и демодуляции BPSK по графическому процессору, с помощью gpuArray перегрузки. Эта опция также использует ускоренный графическим процессором канал AWGN. Как графический процессор, вычисляя лучшую практику, несколько кадров данных обрабатываются в каждом вызове Системного метода шага object®.

Необходимо обработать несколько кадров данных вместе (или параллельно), когда это возможно, на графическом процессоре. В целом графический процессор имеет, намного больше вычисляет степень, чем необходимый, чтобы обработать один кадр данных. Предоставление графического процессора нескольких кадров данных к процессу в одном вызове функции более эффективно использует вычислительную мощность графического процессора. Чтобы использовать обработку сверхкадра, случайное сообщение создается, который целочисленное кратное формат кадра в длине. Турбо Энкодер кодирует это долго, сверхкадр векторизовали один кадр за один раз. (Нет никакого действительного преимущества для обработки сверхкадра на центральном процессоре, и Турбо Энкодер центрального процессора не имеет режима сверхкадра.) Данные затем отправляются в графический процессор с помощью функции gpuArray. Остальная часть цепочки обработки данных записана как прежде, потому что нет никакого понятия структурирования для канала, модулятора или демодулятора. Чтобы запустить Турбо Декодер в режиме сверхкадра, установите свойство NumFrames, равное количеству кадров в векторе данных сверхкадра (значение по умолчанию - одно). Турбо Декодер декодирует каждый кадр независимо и параллельно в одном вызове метода шага (в частности, это не обрабатывает данные как один длинный кадр).

Различия кода

Чтобы видеть изменения в исходном исходном коде центрального процессора, необходимом для двух реализаций графического процессора, нажмите на соответствующий переключатель GPU (или Simple GPU или Optimized GPU) и затем нажмите кнопку Show Code Differences. Это запускает инструмент сравнения, чтобы просмотреть изменения, необходимые для ускорения графического процессора.

Производительность коэффициента ошибок

Можно построить кривую частоты ошибок по битам для любой из трех версий кода. Количество ошибок, требуемых построить одну точку, может быть изменено в поле Minimum Number of Errors. Введите желаемый номер ошибок и нажмите кнопку Start Simulation. Нажмите ту же кнопку, чтобы остановить симуляцию рано.

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

Результаты

Когда симуляция запускается, она отображает количество битов сообщения, обработанных через основной цикл симуляции в секунду в легенде графика. Это дает некоторую меру того, как быстро симуляция запускается для каждой версии кода. Долгие симуляции были завершены на использующем компьютеры процессор Intel® Xeon® X5650 и графический процессор NVIDIA® K20c. Те симуляции показали, что Simple GPU больше чем в 2 раза быстрее, чем версия CPU и что версия Optimized GPU в 6 раз быстрее, чем версия CPU.