【技术实现步骤摘要】
一种基于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支持浮点运 ...
【技术保护点】
【技术特征摘要】
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个码块需...
【专利技术属性】
技术研发人员:刘荣科,李岩松,田铠瑞,王若诗,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。