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

В этом примере показано, как можно использовать графические процессоры для резкого ускорения симуляции частоты битовой ошибки. Turbo Codes формируют основу многих современных систем связи. Из-за интенсивного объема расчетов, участвующих в Turbo Decoder, и огромного количества испытаний, необходимых для симуляции допустимой частоты битовой ошибки, Turbo Decoder является идеальным кандидатом для ускорения графический процессор. Смотрите пример «Параллельное конкатенированное сверточное кодирование: Turbo Кодов», который объясняет цепь обработки данных, для получения дополнительной информации о Turbo Кодов.

Для использования примера графического процессора Turbo Decoder необходимо иметь лицензию Parallel Computing Toolbox™.

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

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

Пожалуйста, свяжитесь с France Telecom для получения информации о программе лицензирования Turbo Codes по следующему адресу: France Telecom R&D - PIV/TurboCodes 38-40, rue du General Leclerc 92794 Issy-les-Moulineaux Cedex 9, Франция edex.

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

TurboDecoderBER_GPU

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

В Simulation options группа кнопок выбирает CPU опция для симуляции только центральный процессор. The Simple GPU опция вносит очень скромные изменения в версию центральный процессор путем замены основанного на CPU Turbo Decoder (comm.TurboDecoder) реализацией GPU (comm.gpu.TurboDecoder).

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

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

Различия между кодами

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

Эффективность частоты ошибок

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

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

Результаты

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