主要内容

使用GPU加速Turbo编码误码率模拟

此示例显示如何使用GPU大大加速误码率模拟。Turbo代码形成许多现代通信系统的骨干。由于涡轮解码器中涉及的电气量强,并且有效误码率仿真所需的大量试验,Turbo解码器是GPU加速度的理想候选者。有关Turbo代码的更多信息,请参阅“并行连接卷积编码:示例”并行连接卷积编码:涡轮代码“示例,以了解数据处理链。

您必须具有并行计算工具箱™许可证,以使用Turbo解码器GPU示例。

该示例说明了Turbo编码误码率仿真的GPU加速度的两种方法。基线系统由随机消息生成,Turbo编码器(Comm.Turboencoder),使用MATLAB®代码,AWGN通道(Comm.awgnChannel),使用MATLAB代码,Turbo解码器(Comm.TurbodeCoder),BPSK解调最后误码率计算(Comm.Errorrate)。

注意:本软件的供应不会传达许可,也不会暗示任何使用法国电信,TeleediffustForce和/或Groupe des Ecoles des电信的任何涡轮代码专利的权利,除了用于设计的软件的使用,模拟和分析。从该软件中的Turbo代码技术生成的代码不打算和/或适用于任何商业产品的实施或纳入。下载188bet金宝搏

请联系法国电信了解有关Turbo Codes许可计划的信息,请参阅下列地址:法国电信R&D - PIV /涡轮码38-40,Rue du General 92794 Issy-Les-Moulineaux Cedex 9法国。

发射TurbodeCoderbersim GUI

turbodecoderber_gpu.

仿真概述

在里面仿真选项按钮组选择中央处理器仅用于模拟CPU的选项。这简单的GPU.选项通过使用GPU实现(Comm.Gpu.Turboder)替换基于CPU的Turbo解码器(Comm.TurbodeCoder)对CPU版本进行非常适度的更改。

优化GPU.选项使用comm.gpu.turbodeCoder对象,并使用GPUArray过载运行GPU上的BPSK调制和解调代码。此选项还使用GPU加速的AWGN通道。作为GPU计算最佳实践,在每个呼叫到系统对象®步骤方法时将多个数据帧进行处理。

只要在GPU上,您应该随时处理多个数据帧(或并行)。通常,GPU的计算能力远比处理一帧数据所需的功率。在一个函数调用中给予GPU多个数据帧以更有效地利用GPU的处理能力。要使用多帧处理,创建随机消息,其是长度的帧大小的整数倍数。Turbo Encoder一次编码这个长,多帧矢量一帧。(对CPU上的多帧处理没有真正的优势,CPU Turbo编码器没有多帧模式。然后使用GPUArray函数将数据发送到GPU。其余的数据处理链是以前写的,因为频道,调制器或解调器没有框架的概念。要在多帧模式下运行Turbo解码器,请将NUMFRAMES属性设置为多帧数据向量中的帧数(默认值是一个)。Turbo解码器独立地解码每个帧,并在对步骤方法的单个呼叫中并行地解码(特别是,它不将数据视为一个长帧)。

代码差异

要查看两个GPU实现所需的原始CPU源代码中的更改,请单击相应的GPU单选按钮(即简单的GPU.或者优化GPU.)然后单击显示代码差异按钮。这会启动比较工具,以查看GPU加速所需的更改。

错误率性能

您可以为代码的三个版本中的任何一个绘制误码率曲线。绘制单点所需的错误数可以在最小错误字段中更改。输入所需的错误数量,然后单击开始仿真按钮。单击相同的按钮以尽早停止模拟。

CPU和简单GPU版本的误码率曲线完全匹配。这表明Turbo解码器的GPU版本以更高的速度与CPU版本完全相同的比特错误率。在某些情况下,优化的GPU版本可能具有略微不同的比特错误率,因为它并行运行多个帧。因此,它可能会超过必要的几帧来传递最小误差。

结果

由于模拟运行,它显示通过绘图图例中每秒的主模拟环路处理的消息比特数。这为每个版本的代码运行了何种速度提供了一些衡量标准。使用Intel®Xeon®X5650处理器和NVIDIA®K20CGPU计算机在计算机上完成了长仿真。那些模拟表明了简单的GPU.比速度快2倍中央处理器版本和那个优化GPU.版本比速度快6倍中央处理器版本。