一种基于GPU的5G多用户LDPC码高速译码器及其译码方法技术

技术编号:34478337 阅读:11 留言:0更新日期:2022-08-10 08:54
本发明专利技术提出一种基于GPU的5G多用户LDPC码高速译码器及其译码方法,包括:一种高速译码器架构及高速译码方法;其中,译码方法包括:1:主机端存储空间初始化;2:GPU设备初始化;3:LDPC基矩阵信息结构体重描述;4:主机端调度GPU译码;5:LLR信息拷贝;6:GPU端根据用户码块信息分配相应的线程数量,选择对应的基矩阵信息结构体,基于分层最小和算法进行迭代译码;7:符号判决;8:结果回传到主机端。本发明专利技术充分结合分层译码算法的特点和GPU的架构特点,充分利用GPU片上资源,提升访存效率和数据计算单元利用率,降低单个码块消耗资源的同时降低单个码块的译码时间,提高整体的信息吞吐量,所述的译码方式更适用于处理实际场景中多小区多用户的LDPC码块译码。区多用户的LDPC码块译码。区多用户的LDPC码块译码。

【技术实现步骤摘要】
一种基于GPU的5G多用户LDPC码高速译码器及其译码方法


[0001]本专利技术属于通信
,涉及一种基于Graphics Processing Unit(GPU,图形处理器)的5G上行数据信道多小区多用户LDPC码高速译码器及其译码方法。

技术介绍

[0002]目前,通信系统主要基于两种平台进行部署:专用硬件平台和通用处理平台。专用硬件可以分为专用集成电路(ASIC)、现场可编程门阵列电路(FPGA)等。使用基于专用硬件的通信系统,可以获得较低延时、较高的能量效率,但其开发周期长、后期运维难度高,难以满足未来通信系统对任务多样化的发展需求。新一代通信系统发展的一个重要趋势是基于通用处理器进行部署。通用处理器主要包括中央处理器(CPU)和图形处理器(GPU),通用处理器的通信系统主要是通过软件设计进行实现,采用程序层面上的升级,灵活地进行网络部署和参数配置,比如已经提出的新一代通信系统的关键技术:软件定义无线电(SDR)、软件定义网络(SDN)和网络功能虚拟化(NFV)。由于信道译码是通信系统物理层中最为消耗资源的过程之一,因此设计高效实用的软件译码器对于新一代虚拟通信系统的发展具有非常重要的意义。
[0003]Aronov等人分别在FPGA和GPU上基于和积算法(SPA)实现了面相5G的LDPC码高效译码。结果表明基于FPGA的平台更容易针对高速、低延迟处理进行优化,其缺点是通常表现出较高的非重复工程成本,特别是在所需的IP核不可用或缺乏所需性能的情况下,通常需要许多设计迭代来调试;而GPU支持浮点运算,相比于FPGA定点计算具有较高计算精度,误块率性能更具优势,并且具有更高的主频和更多的物理资源,能够同时并行处理更多的同种LDPC码块(CB),吞吐量更大。(参考文献[1]:Aronov A,Kazakevich L,Mack J,et al.5G NR LDPC Decoding Performance Comparison between GPU&FPGA Platforms[C]//2019IEEE Long Island Systems,Applications and Technology Conference(LISAT).IEEE,2019:1

6.)。Li等人对5GLDPC码的分层最小和译码算法进行了优化,实现了同种码块在GPU上的高效并行译码。通过压缩基矩阵信息、两级量化、传输数据打包等方式减少了数据传输量,降低了访存延迟。(参考文献[2]:Li R,Zhou X,Pan H,et al.A High

Throughput LDPC Decoder Based on GPUs for 5G New Radio[C]//2020IEEE Symposium on Computers and Communications(ISCC).IEEE,2020:1

7)。Tarver等人基于洪泛最小和算法在GPU上实现了低时延、高吞吐5GNRLDPC译码器,并在OAI软件栈完成了集成测试,最低时延可达到87us,最高吞吐可达到4Gbps。采用三个内核(kernel)函数进行译码,分别为校验节点运算内核、变量节点运算内核和硬判决内核。Tarver等人提出宏码字(Macro

codeword)技术,通过灵活调整宏码字数量以及其中承载的子码字数量可以达到灵活重配置的效果。通过异步传输流来充分利用GPU调度机制掩盖数据拷贝延迟,减少计算等待时间。(参考文献[3]:C.Tarver,M.Tonnemacher,H.Chen,J.Zhang and J.R.Cavallaro,"GPU

Based,LDPC Decoding for 5G and Beyond,"in IEEE Open Journal of Circuits and Systems,vol.2,pp.278

290,2021.)
[0004]近期,相关专家和研究人员提出的各种基于GPU的5G上行数据信道的LDPC码高速译码器,启动一次GPU都仅仅对应一种码长码率的LDPC译码,不具备kernel内部码率兼容的能力;现有的大多数高吞吐译码器靠增加同种码块间并行度的方式提高译码器的吞吐量,单次译码时间较长。这样的设计方案会带来两大问题:1)上行信道基站中对应多种用户,由于使用场景不同,一个批次中译码器需要处理的码长码率不同。现有的基于GPU的译码器缺少不同码长码率兼容的LDPC译码方法的研究,不能有效地同时处理不同用户的码块,只能通过频繁地切换启动kernel函数调整不同的线程映射机制来完成译码,因此主机与GPU之间频繁的控制、通信、同步等操作将带来极大的延迟开销,不能满足实际延迟和吞吐需求。2)上行信道基站中需要处理大量码块(单个基站最多要处理1000个以上的码块),但是基站中每个用户需要处理的码块数量不多,通过不断增加码块间并行度提高吞吐量的这种方式有很大局限性,若不能在一次kernel调度过程中同时传入足够多的码块将无法获得高吞吐译码性能。因此实际的多小区多用户场景中少量码块数量的并行计算将大大降低GPU的处理能力和运行效率,并且不利于异步流的灵活分配。

技术实现思路

[0005]本专利技术提出一种基于GPU的5G上行数据信道多小区多用户LDPC码高速译码器及其译码方法,解决现有译码器在并行处理不同码长码长码率LDPC译码兼容问题,进一步降低处理单个码块的时延,提高译码器吞吐量。
[0006]本专利技术首先提供一种基于GPU的5G上行数据信道多小区多用户的LDPC码高速译码器,所述译码器结构主要包括主机端和GPU设备端;主机端设置主机内存和CPU芯片,CPU芯片用于预处理和控制调度整个译码过程,控制不同码长码率LDPC码块分组,通过异步流输入GPU设备端;GPU设备端设置GPU芯片,GPU芯片由若干个流多(SM)处理器组成,每个SM处理器负责一组不同码型LDPC码块的译码;主机端和GPU设备端通过高速串行计算机扩展总线(PCI

E)进行数据传输。
[0007]本专利技术还提供一种基于GPU的5G上行数据信道多小区多用户的LDPC码高速译码方法,整个译码过程可以分为两个阶段:初始化阶段和译码判决阶段。初始化阶段包括步骤1~步骤3,译码判决阶段包括步骤4~步骤8是判决阶段,具体译码流程步骤如下:
[0008]步骤1:主机端存储空间初始化。
[0009]在主机端配置基站内待处理的小区数量、每个小区的用户数量、同时处理的最大码块数量,并为接收到的软信息分配存储空间;
[0010]步骤2:GPU设备初始化。
[0011]在GPU端配置内存空间,创建异步传输数据流并设置流的数量;在GPU设备端为译码判决后的码字分配全局内存,按照小区用户最大占用资源对GPU分配共享内存空间;
[0012]步骤3:LDPC基矩阵信息结构体重描述。
[0013]在主机端,对5G本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU的5G多用户LDPC码高速译码器,其特征在于:所述译码器结构包括主机端和GPU设备端;主机端设置主机内存和CPU芯片,CPU芯片用于预处理和控制调度整个译码过程,控制不同码长码率LDPC码块分组,通过异步流输入GPU设备端;GPU设备端设置GPU芯片,GPU芯片由若干个流多SM处理器组成,每个SM处理器负责一组不同码型LDPC码块的译码;主机端和GPU设备端通过高速串行计算机扩展总线PCI

E进行数据传输。2.一种基于GPU的5G多用户LDPC码高速译码方法,其特征在于:具体步骤如下:步骤1:主机端存储空间初始化;在主机端配置基站内待处理的小区数量、每个小区的用户数量、同时处理的最大码块数量,并为接收到的软信息分配存储空间;步骤2:GPU设备初始化;在GPU端配置内存空间,创建异步传输数据流并设置流的数量;在GPU设备端为译码判决后的码字分配全局内存,按照小区用户最大占用资源对GPU分配共享内存空间;步骤3:LDPC基矩阵信息结构体重描述;在主机端,对5G协议规定的所有LDPC基矩阵进行初始化,将基矩阵中的信息进行重新描述为基矩阵信息结构体,在开始译码前,将处理好的全部基矩阵的信息结构体传入GPU常量内存,等待译码使用;步骤4:主机端调度GPU译码;主机端设置好启动kernel函数的线程数量,主机端控制不同码长码率LDPC码块分组,采用8比特定点量化LLR传输与16比特浮点运算结合方法;步骤5:LLR信息拷贝;每个线程进行大粒度访问全局内存中的LLR软信息,每个LLR数据的处理过程为:将8比特定点量化的LLR软信息转换为16bit浮点信息,作为后验概率信息拷贝到共享内存;步骤6:GPU端根据用户码块信息分配相应的线程数量,选择对应的基矩阵信息结构体,基于分层最小和算法进行迭代译码;其中,译码阶段还包括以下几个步骤:步骤6.1:采用码块分组方法进行码块划分;步骤6.2:迭代循环译码;迭代更新后验概率信息;若迭代次数达到最大迭代次数,或者所有检验行都满足校验,迭代过程结束,转到步骤7;否则继续迭代,转到步骤6.3;步骤6.3:开始逐层译码;基于分层最小和译码逐层更新后验概率信息,若译码层数超过该码字的校验层数,则停止层间循环,转到步骤6.2,准备进行下一次迭代;否则继续逐层计算,转到步骤6.4;步骤6.4:计算更新信息位置;根据码字配置,从常量内存读取对应基矩阵信息结构体,高效寻址,更新信息的具体地址,缓存到寄存器中;步骤6.5:缓存待更新的后验概率信息;根据寄存器中的地址信息,到共享内存的对应位置读取后验概率信息,每个后验概率信息为16比特half类型,每个寄存器宽度为32比特,每两个后验概率信息合并存储到一个寄存器中,每个校验行需要ceil(D/2)个寄存器,ceil(*)代表向上取整;步骤6.6:先验信息存储方式选择;存储格式采用压缩先验信息存储和非压缩先验信息存储结合的方法,先验信息采用部分更新策略,非核心阵校验行只计算前D

1个先验信息;若先验信息数量w大于阈值T,采用压缩存储,转到步骤6.7;若w≤T,采用非压缩存储,转到步骤6.8;
步骤6.7:计算压缩先验信息;将前一次迭代的压缩存储的先验信息进行解压缩,每行寻址的后验概率信息与前一次的先验信息相减后取绝对值,采用压缩先验信息两两更新方法,每个校验行用两个寄存器分别存储该行的最小值、次小值、最小值所在位置和所有先验信息符号,转到步骤6.9;步骤6.8:计算非压缩先验信息;将每行寻址的后验概率与前一次的非压缩先验信息相减后取绝对值,采用非压缩信息基于box_plus函数更新方法,直接将先验信息存到寄存器内存,每个校验行用ceil((D

1)/2)个寄存器,转到步骤6.9;步骤6.9:后验概率信息更新;后验概率信息加上更新后的先验信息,再将后验概率信息存入共享内存的相应位置,完成一层的更新,检查该层的所有信息符号是否满足校验关系,转到步骤6.3,准备进行下一层的译码;步骤7:符号判决;采用硬判决比特打包方法;步骤8:结果回传到主机端;以异步传输的方式从GPU全局内存通过PCI

E传送到主机端内存。3.根据权利要求2所述的一种基于GPU的5G多用户LDPC码高速译码方法,其特征在于:步骤3所述的基矩阵重描述信息结构体包括:基矩阵信息在主机端进行重描述,基矩阵为校验矩阵所有循环块对应的偏移量,重新描述后的信息结构体包括循环块在每行的位置offset,以及对应循环块的偏移量shift,将全部基本图发信息结构体在译码前全部传入GPU常量内存固定位置。4.根据权利要求2所述的一种基于GPU的5G多用户LDPC码高速译码方法,其特征在于:步骤4所述的主机端控制不同码长码率LDPC码块分组包括:在kernel函数启动的时候分配了G个block,每个block为B个线程,整个译码过程中,线程总数将不会保持变化;对多小区多用户不同码型的LDPC码块进行分组,将前后n个码块进行合并为一组,n取满足约束关系的最大值,其中ceil(*)表示向上取整,B表示每个block中线程总数理,Zc
k
表示第k个码块需...

【专利技术属性】
技术研发人员:刘荣科李岩松田铠瑞王若诗
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1