发明名称 一种利用图形处理器GPU实现的并行RS译码方法
摘要 一种利用图形处理器GPU实现的RS并行译码方法,以连接有一个或多个GPU的通用计算机作为硬件平台,将RS译码分为数据读写与初始化、并行译码两部分,利用GPU内具有大量计算核心的特点,同时对多个RS码字进行译码,实现并行译码。并行译码被分解为4个步骤,对每个步骤均设计并行处理方法,使整个译码过程实现并行化,提高RS译码的速率。当译码速率上限不足时可以通过增加GPU计算核心数量实现经济的升级。本发明根据卫星地面接收系统的要求,采用连接有GPU的通用计算机作为硬件平台,通过GPU内部计算核心的两层并行结构实现高速并行RS译码,在实现高速并行RS译码的前提下经济的实现译码速率上限的升级,成本低,易于实现。
申请公布号 CN102938653B 申请公布日期 2016.06.01
申请号 CN201210453928.6 申请日期 2012.11.13
申请人 航天恒星科技有限公司 发明人 张拯宁;魏耀都;朱翔宇;战勇杰
分类号 H03M13/15(2006.01)I 主分类号 H03M13/15(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种利用图形处理器GPU实现的并行RS译码方法,其特征在于实现步骤如下:(1)通用计算机首先根据编码参数生成有限域与二进制数据转换查找表、有限域加法查找表、有限域乘法查找表、有限域对偶基和自然基查找表,然后将上述各查找表写入GPU纹理内存;(2)通用计算机检测已连接的GPU个数及各个GPU的最大并行规模,根据已连接的所有GPU的最大并行规模读入多个待解码的RS码字;(3)通用计算机将读入的码字写入GPU内部的全局存储器,启动GPU解码程序进行译码,GPU中设计多个线程,线程数量远大于读入码字的数量,利用线程实现多个码字的并行译码;(4)通用计算机边读取后续码字,边等待GPU译码结果;(5)GPU译码和后续数据读取都结束后,通用计算机从GPU内部的全局存储器中读出译码后的数据,将后续码字写入GPU内部的全局存储器,继续进行后续码字的译码,直到所有数据译码完成;所述步骤(2)中通用计算机读入多个待解码的RS码字的步骤为:(2.1)通过GPU编程语言的指令查询所连接的GPU数量n;(2.2)通过GPU编程语言的指令逐个查询n个GPU所支持的最大块数量B<sub>1</sub>,B<sub>2</sub>,…,B<sub>n</sub>以及每个块支持的最大线程数量T<sub>1</sub>,T<sub>2</sub>,…,T<sub>n</sub>,根据所处理的RS码字的码长N,确定一次性读入的RS码字数量上限为(B<sub>1</sub>T<sub>1</sub>+B<sub>2</sub>T<sub>2</sub>+...+B<sub>n</sub>T<sub>n</sub>)/(N+1);(2.3)通过通用编程语言读入不超过(B<sub>1</sub>T<sub>1</sub>+B<sub>2</sub>T<sub>2</sub>+...+B<sub>n</sub>T<sub>n</sub>)/(N+1)个RS码字;所述步骤(3)中启动GPU解码程序进行译码的步骤为:(3.1)各GPU从全局存储器中读取待译码的码字段,用每个线程处理一个 RS码字,各线程首先利用查找表将码字从其所使用的有限域基低变换至自然基,然后再次利用查找表将数据变换至有限域;在有限域中将各码字分别乘以相应的系数后,利用归约求和方法将各个块内的线程计算结果相加,得到多个码字的伴随式,若伴随式全为0则结束译码,否则继续进行以下步骤;(3.2)GPU使用多个块对多个码字进行关键方程的计算,计算方法为无需求逆的BM迭代算法,即RiBM算法;GPU利用多个线程进行计算,每个线程均计算一个迭代参数,计算后得到的关键方程系数存入全局存储器;(3.3)GPU中使用多个块对误码进行纠正,纠正误码的方法为钱搜索和福尼算法;每个块通过多个线程读入关键方程系数,然后各线程分别对所读入的关键方程系数进行乘积运算,随后各线程的运算结果通过归约求和的方法进行求和,根据和值判断当前块所对应的符号是否为错误符号;若当前块所对应符号存在错误,则根据福尼算法计算错误值,并利用块中某一线程执行纠正错误值的程序,得到译码结果;译码结果存储在全局存储器中。
地址 100086 北京市海淀区知春路82号院