王 雷
(南京理工大學電子工程與光電技術學院 江蘇 南京 210000)
大規模MIMO中基于低復雜度雅克比預編碼算法及實現
王 雷
(南京理工大學電子工程與光電技術學院 江蘇 南京 210000)
迫零線性預編碼可以獲得接近最優的系統容量,不同于傳統MIMO系統,大規模MIMO將會配置成百根天線,隨著天線數量增加,使得迫零線性預編碼矩陣求逆計算復雜,不利于在應用中實現。為了減小線性預編碼計算復雜度,提出基于低復雜度的雅克比迭代算法,該算法通過線性迭代,避免了矩陣求逆運算,減少了計算量。為了更進一步的減少計算時間,提出基于統一計算架構的異構多核并行算法,該方法利用GPU具有多核多線程結構特點,實現了異構多核并行計算。仿真結果表明,基于低復雜度雅克比預編碼算法可以達到迫零預編碼算法性能,同時與傳統的線性預編碼相比,該算法的計算量更少、時間更短。
預編碼 雅克比 統一計算架構 迫零 異構多核
和傳統的MIMO系統不一樣,大規模MIMO系統在基站端配置了大量的天線單元(幾百根)同時對小區中的多個用戶同時傳輸數據。理論證明大規模MIMO系統比傳統的小規模MIMO系統提高了幾個數量級的系統容量和能效,該技術有望用在未來5G無線通信系統當中[1]。
然而,在實際的大規模MIMO系統中,面臨著許多挑戰。例如,在下行鏈路多用戶系統中,為了消除其他用戶對某個用戶的干擾,該用戶必須做均衡處理[2]。然而,在用戶端做復雜的均衡處理,會使得用戶設備能耗高。目前,pad、手機如何節約能效一直是一個難點,在實際當中,在用戶端做復雜的均衡計算,往往是不切實際的。因此,有必要對發射端做預編碼(盡管會增加基站負荷),將會大大減少用戶端均衡復雜度。最優的預編碼是非線性臟紙預編碼DPC(dirty paper precoding)[3]。然而在大規模MIMO中,由于維度很大,臟紙預編碼算法難以實現。線性預編碼中,有向量轉置預編碼、格約簡輔助預編碼和迫零預編碼[4-5],該三種線性預編碼在低維度時,計算量少,然而隨著天線數量增加,其復雜度將大大增加。因此,如何減少計算復雜度同時獲得接近最優的系統容量,是一個迫在眉睫的問題。
與傳統的中心處理單元CPU不同,圖形處理單元GPU提供了大量的并行架構,GPU中大多數晶體管是用來處理算術邏輯單元ALU(Arithmetic Logic Unit),而不是像CPU那樣大多用來緩存和數據流控制[6-9]。理論測試表明,顯卡Geforce GT620可以到達到每秒約120億次浮點計算。在無線通信系統中,基于GPU加速是一個研究熱點,尤其在加速仿真和軟件無線電SDR(software defined radio)。
本文提出了基于低復雜雅克比算法。該算法通過迭代的方法,避免了矩陣求逆計算,分析表明本文提出的算法比傳統求逆迫零預編碼算法減少一個數量級的計算量,同時獲得了和迫零預編碼算法一樣的性能。為了更進一步地減少計算時間,提出了基于統一計算架構的異構多核并行算法,該方法利用GPU具有多核多線程結構特點,實現了異構多核并行計算。仿真結果表明,基于低復雜度雅克比預編碼算法可以達到迫零預編碼算法一樣的性能,同時與傳統的線性預編碼相比,該算法的計算量更少,時間更短。
我們考慮單基站,多用戶大規模MIMO系統,如圖1所示,基站端配置天線個數為N,用戶數為K,每個用戶配有一根天線,其中N≥K。在下行鏈路系統中,基站同時對K個用戶傳輸數據,可以表示為:

(1)
其中,ρ表示的是信噪比SNR,H∈CK×N表示平坦衰落瑞利信道矩陣,該矩陣中的每個元素服從CN(0,1),n=[n1,n2,…,nK]T表示加性高斯白噪聲,服從CN(0,1),用戶端接收信號為y=[y1,y2,…,yK]T。x是預編碼之后的發射數據。
x=Ps
(2)
其中P是預編碼矩陣,s=[s1,s2,…,sK]T是傳輸給K個用戶的信息,且x滿足:
E{‖x‖2}=K
(3)
當發射端天線數N增大時,信道矩陣H中的列向量趨近于正交,因此利用簡單的線性預編碼技術可以獲得接近最優的容量。

圖1 多用戶MIMO系統
本小節,首先簡要介紹一下經典迫零ZF(zero forcing)算法,其次提出了基于雅克比迭代算法,然后介紹了基于CUDA的并行架構,最后對提出的算法進行了復雜度分析。
在基站端做迫零預編碼,可以消除用戶之間的干擾,經典的迫零預編碼矩陣PZF可以表示成如下形式:
PZF=βH+=HH(HHH)-1=HHG-1
(4)
其中HH表示信道矩陣H的厄米特共軛轉置,H+表示矩陣H的偽逆矩陣,G=HHH,β表示每個用戶的平均發射功率,我們可設β為:

(5)
根據式(1)、式(2)、式(4)和式(5),可以得到等效信道:
Heq=βHHHG-1
(6)
由式(4)可知道PZF需要矩陣求逆,其計算復雜度為O(K3),當用戶數增多時,其將會大大增加基站的負荷。
假設基站可以完全獲得信道狀態信息,對于任何用戶k,其信干噪比SINR可表示為:

(7)
利用式(4)可得其信干噪比為:
(8)
經典迫零矩陣使得其他用戶對某個用戶的干擾完全消除。在利用基于雅克比迭代求解時,如果迭代次數不夠,會使得式(7)中分母的第一項不為0,會降低信干噪比,使得誤碼率增加。通過仿真表明,當迭代次數為3以上時,性能就已經很接近迫零算法。
最后根據式(7),可得到總的系統頻譜效率為:
(9)
雅克比迭代算法(Jacobi)是用來求解如下形式的線性方程組:
Ay=b
(10)
其中矩陣A是大小為N×N的矩陣,b是已知的大小為N×1向量,y是所求的列向量。不同于傳統的直接求解y=A-1b,雅克比算法通過如下迭代求解y:
yk+1=-D-1(L+U)yk+D-1b
(11)
其中A=D+L+U,矩陣D為矩陣A的對角矩陣,矩陣L為矩陣A的嚴格下三角矩陣,矩陣U為矩陣A的嚴格上三角矩陣,yk+1表示向量y的第k+1次迭代。
由式(2)和式(4),向量x可表示為:
x=Ps=βHHG-1s
(12)

引理1矩陣G可逆且是正定矩陣
由于G=HHH,GH=HHH,因此G=GH,說明矩陣G厄米特共軛轉置。對于任意非零列向量α:
αHGα=(αHH)(αHH)H≥0
(13)
在瑞利信道矩陣H下,信道H中列向量趨于正交,因此矩陣H是列滿秩的,因此αHGα>0,說明矩陣G可逆且是正定矩陣。
異構多核架構通常包含主機端(CPU)和設備端(GPU)。主機端通常處理和控制級聯算法,而設備端含有大量的核,通常用來做并行計算。如圖2所示。

圖2 異構多核架構
統一計算架構CUDA(Compute Unified Device Architecture)是用來對GPU作并行計算的運算平臺。我們可以把設備端的數據傳輸到主機端,也可以把主機端的數據傳輸給設備端,因此設備端和主機端之間的數據可以相互傳輸。首先把所處理的數據存在主機端,主機端把該數據傳輸到設備端中去,設備端對這些數據進行處理計算,計算后的值再傳輸到主機端中去,CUDA-GPU通常包含四種寄存器:全局寄存器、共享存儲器、常量存儲器和紋理存儲器。由于共享內存嵌入在線程塊中,可以提供最快的讀寫操作,每個線程塊中的線程通過合作同步高效率的執行。

(14)
為了分析基于雅克比預編碼算法性能,我們把該算法與經典迫零算法進行了比較。調制方式為64QAM,N×K=256×16,仿真結果如圖3所示。

圖3 迫零算法與基于雅克比算法性能分析對比
如圖3所示,基于雅克比算法迭代次數為i=2時,在信噪比小于15 dB時,誤比特率與迫零算法接近相同,當信噪比大于15 dB時,其誤比特率要高于迫零算法,這是由于迭代次數過少,迭代出的值有較大的誤差。然而,當迭代次數大于等于3時,其誤比特與迫零算法趨于一致,這說明當迭代次數大于等于3時,就可以得到精確的值,說明了該算法收斂速度快,所需的計算量少。
考慮到基于雅克比預編碼算法的并行性能,CPU是i3-3220四核內存,GPU是英偉達Geforce GT620,共包含32個CUDA核,如圖4所示。

圖4 基于CPU串行與GPU并行計算時間比較
從圖4可以看出,相同矩陣維數,基于CPU計算時間比GPU并行計算時間要長,為了定量知道并行程序的執行速度相對于串行程序的執行速度加快了多少,我們定義其加速比,表示的是同一個任務在單處理器系統和并行處理器系統中運行消耗的時間比率。如圖5所示給出了雅克比算法次數為2、3和4時的加速比,仿真結果表明,隨著矩陣維數增大,其加速比越大,說明時間縮短的比例越大。

圖5 基于GPU并行計算加速比
本文針對無線通信系統預編碼計算量大的缺點,提出了基于低復雜雅克比算法。該算法通過迭代,避免了矩陣求逆計算,與傳統的迫零算法相比,計算量減少了一個數量級,仿真結果表明該算法收斂速度快。當迭代次數大于等于3時,就可以得到精確的值,所需的計算量少。然后,我們提出了快速雅克比預編碼算法并行實現。仿真結果表明并行計算可以大大減少計算時間,當矩陣維數越大,其獲得的加速比越大,說明了相對于串行計算時間而言,并行計算所需要的時間更短。
[1] Rusek F,Persson D,Lau B K,et al.Scaling Up MIMO:Opportunities and Challenges with Very Large Arrays[J].IEEE Signal Processing Magazine,2012,30(1):40-60.
[2] Gao X,Dai L,Zhang J,et al.Capacity-approaching linear precoding with low-complexity for large-scale MIMO systems[C]//2015 IEEE International Conference on Communications (ICC),2015:1577-1582.
[3] Costa M.Writing on dirty paper[J].IEEE Transactions on Information Theory,1983,29(3):439-441.
[4] Gao X,Dai L,Hu Y,et al.Matrix inversion-less signal detection using SOR method for uplink large-scale MIMO systems[C]//Global Communications Conference.IEEE,2015:3291-3295.
[5] Prabhu H,Rodrigues J,Edfors O,et al.Approximative matrix inverse computations for very-large MIMO and applications to linear pre-coding systems[C]//Wireless Communications and NETWORKING Conference.IEEE,2013:2710-2715.
[6] 陳國良.并行計算[M].高等教育出版社,2011.
[7] 盧風順,宋君強,銀福康,等.CPU/GPU協同并行計算研究綜述[J].計算機科學,2011,38(3):5-9.
[8] Yu D,He S,Huang Y,et al.A fast parallel matrix inversion algorithm based on heterogeneous multicore architectures[C]//IEEE Global Conference on Signal and Information Processing,2015:903-907.
[9] Mahfoudhi R,Mahjoub Z,Nasri W.Parallel Communication-Avoiding Algorithm for Triangular Matrix Inversion on Homogeneous and Heterogeneous Platforms[J].International Journal of Parallel Programming,2015,43(4):631-655.
LOWCOMPLEXITYJACOBIBASEDPRECODINGFORLARGE-SCALEMIMO
Wang Lei
(SchoolofElectronicandOpticalEngineering,NanjingUniversityofScienceandTechnology,Nanjing210000,Jiangsu,China)
Linear precoding techniques, such as zero forcing, can achieve the near optimal capacity. In contrast to traditional multiple input multiple output (MIMO), large scale MIMO installed hundreds of antennas, with the increasing numbers of antennas, zero forcing precoding involve the matrix inversion of large size with high computational complexity, which may cause difficulty for the realization of the application. To reduce the computational complexity of linear precoding, we propose a low complexity iterative algorithm based on the degree of Jacobi. This method realized through the linear iteration meanwhile avoided the matrix inversion. To further reduce the computation time, we propose a heterogeneous multicore parallel algorithm based on CUDA (compute unified device architecture), which leverage the Graphics Processing Unit (GPU) characteristic of multicores and multithreads to realize heterogeneous multicore architecture parallel computation. Experimental result demonstrates this proposed algorithm not only can achieve the same performance of zero forcing precoding, but also has less computation time and shorter time than traditional linear precoding.
Precoding Jacobi CUDA Zero forcing Heterogeneous multicore
TP391
A
10.3969/j.issn.1000-386x.2017.10.052
2017-01-03。王雷,副研究員,主研領域:通信與信息系統,信號信息處理。