[發明專利]基于GPU架構的QC-LDPC碼的加速譯碼方法有效
| 申請號: | 201210330765.2 | 申請日: | 2012-09-07 |
| 公開(公告)號: | CN102932003A | 公開(公告)日: | 2013-02-13 |
| 發明(設計)人: | 王帆;楊藝賓;俞暉;黃正勇 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | H03M13/11 | 分類號: | H03M13/11 |
| 代理公司: | 上海漢聲知識產權代理有限公司 31236 | 代理人: | 郭國中 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 gpu 架構 qc ldpc 加速 譯碼 方法 | ||
技術領域
本發明涉及一種數字信號處理技術領域的譯碼系統,具體是一種準循環低密度奇偶校驗碼(QC?LDPC)的加速譯碼方法。
背景技術
低密度奇偶校驗碼(Low?Density?Parity?Check?Codes,LDPC?Codes)是1963年Gallager首先提出的一種糾錯編碼,具有接近香農極限的性能,廣泛地應用到各種無線通信領域的標準中,包括中國的數字電視地面傳輸標準、歐洲第二代衛星數字視頻廣播標準、IEEE?802.11n、IEEE?802.16e等,該技術還被廣泛應用于磁存儲系統及光纖通信。
準循環低密度奇偶校驗碼(Quasi-Cyclic?LDPC,QC?LDPC)是一類由小的零方陣和小的循環矩陣構成校驗矩陣的LDPC碼,是LDPC的一個重要分支,也是目前LDPC碼構造中的一種最具實用性的結構。其結構使得其編碼可以通過簡單的移位寄存器實現,具有實現復雜度低的特點。除此之外,QC結構非常適合分層的譯碼算法,擴展因子Z_f的存在對“層”的概念產生自然的分割。進一步地,QC結構還非常適合實現部分并行的譯碼器結構,從而獲得吞吐率和硬件復雜度方面的折中。最后,同一層內的Z_f個校驗方程涉及到的比特節點是完全不同的,這是并行計算的底層基礎。在此之上,編碼器和譯碼器的層內并行運算得以實現,編譯碼的吞吐率都得以提高。
而針對市場迫切需要實時、高清晰度的3D圖形,可編程的GPU已發展成為一種高度并行化、多線程、多核心的處理器,并具有杰出的計算功率和極高的存儲器帶寬。更具體地說,GPU可以專用于解決數據的并行計算問題,并能夠極高效率地執行在許多數據元素上并行執行的程序,數據的并行處理會將數據元素映射到并行處理的線程中。許多處理大型數據集的應用程序都可以使用數據并行編程模型來加速計算。
經對現有技術的文獻檢索發現,專利申請號為201210045900.9的中國專利,專利名稱為“基于FPGA的準循環低密度校驗碼譯碼器及譯碼方法”,公開了一種基于FPGA的低存儲量高速QC-LDPC碼譯碼器和譯碼方法,主要解決現有技術中譯碼器的節點更新處理單元和RAM存儲資源利用效率不高的問題。這也代表了現今LDPC碼譯碼的主要加速手段。由于該方法用到了FPGA硬件實現,需要考慮較多的時序問題以及資源分配等問題,具有較高的復雜度和成本并需要較長的開發周期;而且通用性以及可配置性不高。
發明內容
本發明針對現有技術的不足,提出了一種基于GPU架構的QC-LDPC碼加速譯碼方法,針對QC?LDPC碼字的特點,實現在不同的GPU平臺下不同碼率通用的加速譯碼方法。此方法可以極大地提高QC?LDPC譯碼效率。QC?LDPC碼具有以下特點:其一,由于在每個塊中每一列都是左邊一列循環下一移位的結果。所以,對于每個塊實現時需要保存的僅僅是其中的一列(行)的信息,其他的列(行)都可以由這一行(列)經過循環移位來得到,這樣就節省了大量的ROM資源。其二,QC結構非常適合分層的譯碼算法,擴展因子Z_f的存在對“層”的概念產生自然的分割。進一步地,QC結構還非常適合實現部分并行的譯碼器結構,從而獲得吞吐率和硬件復雜度方面的折中。其三,同一層內的Z_f個校驗方程涉及到的比特節點是完全不同的,這是并行計算的底層基礎。本發明利用這些特點,在GPU上獨立并行地運行很多個LDPC譯碼器,實現加速譯碼。
本發明提供了一種在不同的GPU平臺下不同碼率的QC?LDPC碼加速譯碼方法,包括如下步驟:
步驟A:CPU作為控制器,利用輸入碼的母矩陣,計算輸入碼的碼字信息,并將碼字信息放入GPU的常數存儲器,并在完成所有初始化過程后,發起運行GPU核函數的命令;
步驟B:合理地配置GPU的各項參數,在每一個線程塊中實現整個譯碼系統,通過線程間合作完成基于分層修正最小和算法(LMMSA)的LDPC譯碼實現。
優選地,所述步驟A包括如下步驟:
-讀取碼字母矩陣信息,計算碼字參數,包括校驗矩陣最大行重max_row_wt、最大列重max_col_wt、碼長code_length、QC擴展因子Z_f;
-初始化各項譯碼參數,包括GPU計算能力、線程塊數目、每個線程塊上線程數目、譯碼過程中的寄存器分配及存儲信息;
-將信息比特放入GPU的全局存儲器;
-將上述譯碼參數信息放入GPU的常數存儲器,并在完成所有初始化過程后,發起運行GPU核函數的命令。
優選地,所述步驟B包括如下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210330765.2/2.html,轉載請聲明來源鉆瓜專利網。
- 同類專利
- 專利分類





