欢迎来到天天文库
浏览记录
ID:55702667
大小:39.00 KB
页数:1页
时间:2020-05-25
《极化码SC码的软件加速方案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、极化码SC译码的软件加速方案李启源,牛凯,董超(北京邮电大学,北京)摘要:极化码(Polarcodes)是已知唯一一种可被证明达到仙农限的可构造性信道编码,具有良好的应用场景以及研究价值。极化码现阶段主要的译码算法为串行抵消译码算法(SuccessiveCancellation,SC)以及其增强的版本。本文针对极化码的SC译码算法,以提高SC译码算法的并行度为目标,提出了一系列的SC译码软件加速方案。本文提出的加速方案主要包括以下三个方面,一是利用并行SC译码结构对单一码块内部进行多线程译码处理;二是对SC译码过程中可并行处理的运算使用SSE,A
2、VX高级指令进行并行优化;三是对极化码不同码块之间进行多线程处理。通过上述三个方面的加速处理,极化码SC的软件译码速度可以得到较大提升。关键词:极化码;SC译码软件加速;SSE/AVX指令;多线程;极化码(Polarcodes)[1]是已知唯一一种可被证明达到仙农限的可构造性信道编码,具有良好的应用场景以及研究价值。极化码现阶段主要的译码算法为串行抵消译码算法(SuccessiveCancellation,SC)以及其增强的版本。由于极化码的SC译码算法是一种串行的算法,其软件译码的速度和时延方面不够理想。本文对针对极化码SC译码算法的这个缺点,
3、提出了一系列的软件加速方案。一是利用极化码并行译码结构进行码块内的多线程处理,文章[2]中给出的一种极化码的并行SC译码结构,将极化码的码块分成若干个可以独立进行SC译码蝶形运算的子码块。利用该结构子码块的独立性,可以使用不同的线程来对同步进行来进行译码的操作。由于该并行结构的四个独立进行译码计算的子码块在每分别得到1个比特就需要进行一次联合判决,此时四个独立的线程就会挂起,频繁的线程启动和挂起操作会大幅度降低程序的运行效率,所以本方案只在子码块需要连续做多级蝶形运算时才调用多线程操作,使软件译码速度加快约15%。二是利用SSE,AVX高级指令对
4、极化码SC译码进行并行优化。在极化码SC译码的过程虽然总体上为串行译码,但是在多级的蝶形运算中存在可以并行处理的计算,利用SSE,AVX等指令可以并行8个32位浮点数的运算,以此大大提高可并行处理部分的译码的计算速度。三是不同的数据块之间利用多线程进行同步编译码,可以充分利用多核心处理器性能,提高极化码译码程序的运行速度。将极化码SC译码软件程序进行上述三步加速之后,其数据处理速率对比如下表1所示。可以看出,经过上述三步加速后,其软件译码速度的到显著加快。表1极化码SC软件加速译码方案性能比较码长2048码长16384吞吐率Mbps平均时延ms吞
5、吐率Mbps平均时延ms未优化1.461.401.2215.4本方案优化(码块间三线程,内部四线程)11.480.189.831.66本方案优化(码块间四线程,内部四线程12.600.1610.91.50参考文献[1]E.Arıkan,“Channelpolarization:Amethodforconstructingcapacityachievingcodesforsymmetricbinary-inputmemorylesschannels,”IEEETrans.Inform.Theory,vol.55,no.7,pp.3051-3073,
6、July2009.[2]BinLi,HuiShen,andDavidTse,“ParallelDecodersofPolarCodes”,arXiv:1309.1026,Sep.,2013.[Online].
此文档下载收益归作者所有