基于GPU加速的移动端LDPC译码方法与实现
| 摘要 | 第5-6页 |
| Abstract | 第6-7页 |
| 第一章 绪论 | 第11-16页 |
| 1.1 研究背景及意义 | 第11-12页 |
| 1.2 国内外研究现状 | 第12-14页 |
| 1.3 论文的主要研究内容 | 第14-15页 |
| 1.4 论文组织结构 | 第15-16页 |
| 第二章 相关理论与技术基础 | 第16-33页 |
| 2.1 LDPC码的概念 | 第16-19页 |
| 2.1.1 校验矩阵表示法 | 第16-17页 |
| 2.1.2 特纳图表示法 | 第17-18页 |
| 2.1.3 准循环LDPC码 | 第18-19页 |
| 2.2 LDPC码的译码方法 | 第19-26页 |
| 2.2.1 置信传播译码算法 | 第20-22页 |
| 2.2.2 对数域上的置信传播译码算法 | 第22-23页 |
| 2.2.3 最小和译码算法 | 第23-24页 |
| 2.2.4 归一化最小和译码算法 | 第24-25页 |
| 2.2.5 分层译码算法 | 第25-26页 |
| 2.3 异构计算框架OPENCL | 第26-31页 |
| 2.3.1 平台模型 | 第27页 |
| 2.3.2 执行模型 | 第27-29页 |
| 2.3.3 内存模型 | 第29-30页 |
| 2.3.4 编程模型 | 第30-31页 |
| 2.4 移动端设备的GPU编程 | 第31-32页 |
| 2.5 本章小结 | 第32-33页 |
| 第三章 移动端归一化最小和算法设计与实现 | 第33-44页 |
| 3.1 整体流程简介 | 第33-34页 |
| 3.2 并行计算中切分粒度的选取 | 第34-36页 |
| 3.3 校验矩阵的压缩设计 | 第36-39页 |
| 3.3.1 压缩校验矩阵的分块存储 | 第36-37页 |
| 3.3.2 压缩校验矩阵的生成方式 | 第37-39页 |
| 3.4 置信信息的改进存储 | 第39-40页 |
| 3.5 GPU的初始化 | 第40-41页 |
| 3.5.1 GPU上的内存分配 | 第40页 |
| 3.5.2 数据结构的初始化 | 第40-41页 |
| 3.6 迭代译码过程 | 第41-42页 |
| 3.7 本章小结 | 第42-44页 |
| 第四章 移动端分层译码算法设计与实现 | 第44-52页 |
| 4.1 并行计算中切分粒度的选取 | 第44页 |
| 4.2 校验矩阵的压缩设计 | 第44-46页 |
| 4.2.1 校验矩阵压缩表示的分块存储 | 第45页 |
| 4.2.2 压缩校验矩阵的生成方式 | 第45-46页 |
| 4.3 GPU的初始化 | 第46-48页 |
| 4.3.1 GPU上的内存分配 | 第46-47页 |
| 4.3.2 数据结构的初始化 | 第47-48页 |
| 4.4 迭代译码过程 | 第48-51页 |
| 4.4.1 比特节点向校验节点的更新 | 第49页 |
| 4.4.2 校验节点向比特节点的更新 | 第49页 |
| 4.4.3 比特节点的后验概率的更新 | 第49-50页 |
| 4.4.4 硬判决与结果校验 | 第50-51页 |
| 4.5 本章小结 | 第51-52页 |
| 第五章 系统测试与分析 | 第52-64页 |
| 5.1 实验环境搭建 | 第52-55页 |
| 5.1.1 基础安卓开发环境搭建 | 第53页 |
| 5.1.2 移动端OpenCL环境设置搭建 | 第53-55页 |
| 5.2 性能测试 | 第55-63页 |
| 5.2.1 译码准确性测试 | 第56-57页 |
| 5.2.2 收敛速度的测试 | 第57-59页 |
| 5.2.3 吞吐率的测试 | 第59-61页 |
| 5.2.4 译码延迟时间测试 | 第61-63页 |
| 5.3 本章小结 | 第63-64页 |
| 结论和展望 | 第64-66页 |
| 参考文献 | 第66-70页 |
| 攻读硕士学位期间取得的研究成果 | 第70-71页 |
| 致谢 | 第71-72页 |
| 附件 | 第72页 |