论文部分内容阅读
在数字通信技术突飞猛进的今天,如何在有噪信道中高效而可靠地传输信息变得日益重要。1962年Gallager提出了具有接近香农极限的低密度奇偶校验(Low Density Parity-Check,LDPC)码,但限于当时的计算机水平,LDPC码并没有为人们所熟知。自上世纪90年代以来,LDPC码被重新研究,并逐渐成为信道编码领域的研究热点。卷积LDPC码(LDPC convolutional codes,LDPC-CC)是LDPC码的一种,随着卷积LDPC码的引入又有了空间耦合(Space coupling,SC)的概念。卷积LDPC码因具有流水线译码器和低译码延迟的性能被广泛使用,其译码算法具有并行性,适合于硬件实现,因此设计一个高效的卷积LDPC译码器对于工程实践具有重要意义。近年来计算机处理器的性能逐日提升,科研人员开始利用硬件设施对译码算法进行加速,最常见的是用现场可编程门阵列(Field Programmable Gate Array,FPGA)设计的译码器,虽然取得了一定成就,但调试起来硬件平台的灵活性和可扩展性较差,且成本相对昂贵。而图形处理器(Graphic Processing Unit,GPU)则刚好满足以上几点,尤其是强大的GPU软硬件计算结构平台CUDA(Compute Unified Device Architecture)的提出,使GPU编程变得更加简单方便。本文针对SC-LDPC码,提出了一种基于GPU的高效译码器,使用CUDA编程平台和kernel函数等机制,将大规模并行计算通过GPU高效合理的进行加速,达到提高译码速度的目的。工作内容主要包括以下四种粗粒度上的优化方案:1)压缩校验矩阵方案,通过将不同处理器的索引信息压缩到全局内存的查找表中,节省了GPU上的存储空间,提升译码速度;2)压缩校验矩阵在GPU上的线程映射和内存映射方案;3)使用CUDA流机制,采用多个流并行的译码方案;4)多码字并行方案,并采用外信息合并访问的方式提高译码器吞吐量。在粗粒度优化方案的基础上,本文通过使用kernel内部算法优化、线程同步、页锁定内存、多次拷贝简化、配置TLP等方法对译码器进行进一步的细粒度上的优化设计,减少了译码复杂度,保证了数据的连续访问,有效缩短了数据的访问时间。在论文中,对各个优化方案下译码器的加速效果进行仿真测试,并与单线程CPU版本的译码时间作比较和分析,研究表明本文设计的译码器能够带来显著的速度提升。