一種加速實現Cholesky分解的嵌入式片上系統的制作方法
【技術領域】
[0001] 本發明涉及一種加速實現Cholesky分解的系統。
【背景技術】
[0002] 機器學習算法LS-SVM在嵌入式高性能計算領域得到了廣泛應用,其計算過程包 含線性方程組的求解,目前,關于線性方程組的求解方法有多種,喬里斯基(Cholesky)分 解、高斯消元法、LU分解和共軛梯度法等,考慮算法本身特性以及在嵌入式SoC平臺上的 加速計算特點,需要一種計算量較小、計算復雜度較低,且含有大量并行計算的求解方法, Cholesky分解方法成為最好的選擇。
[0003] 根據Cholesky分解線性方程組的計算次序和編程方式,可將計算過程分為Row_ Cholesky分解(行分解)、Column_Cholesky分解(列分解)和Submatrix_Cholesky(塊 分解)三種方式,這三種分解方式對數據的依賴性、需求量以及規律訪存等存在不同,對于 不同的硬件開發平臺需要選擇的具體的分解方式設計合理的數據通路結構。關于Cholesky 分解在嵌入式硬件平臺上的加速實現方法較多,針對不同開發平臺具有的不同特點,可以 設計不同的加速實現系統。但是,現有的Cholesky分解系統實現線性方程組的求解還存在 著計算時間比較長的問題。
【發明內容】
[0004] 本發明為了解決目前現有的基于Cholesky分解方法實現線性方程組求解的硬件 加速系統存在計算時間比較長的問題。
[0005] 一種加速實現Cholesky分解的嵌入式片上系統,主要包括下述模塊:
[0006] ARM處理器模塊,用于對整個計算過程的任務調度;
[0007] DDR控制模塊,用于控制外部DDR存儲器的數據讀寫;
[0008] 可編程邏輯ProgrammableLogic模塊,簡稱PL模塊,用于從外部存儲讀取正定對 稱矩陣的值,進行Cholesky分解,得到下三角陣并將其存儲在外部存儲器中;
[0009] AXI總線模塊,用于PL模塊與ARM處理器模塊之間的信息傳輸。
[0010] 本發明充分發揮Zynq開發平臺異構的優勢,采用Choleksy分解方法實現對線性 方程組求解的加速計算,采用軟硬件協同設計技術,主要解決異構SoC平臺上的處理任務 劃分問題以及片上系統中的數據通路問題,設計基于ZynqZC702開發平臺,將分解過程中 的任務調度由ARM處理器模塊實現,從而減少設計的復雜度;將線性方程組系數的求解由 可編程邏輯ProgrammableLogic模塊實現;可編程邏輯ProgrammableLogic模炔基于 Submatrix-Cholesky分解(塊分解)方式實現線性方程組系數的求解;
[0011] 相比R〇w_Cholesky分解(行分解)和Column_Cholesky分解(列分解), Submatrix-Cholesky分解對數據的依賴更具有規律性,且一次更新過程對數據的需求量較 少,本發明選取Submatrix_Cholesky分解方式,并針對Submatrix_Cholesky分解方式設計 了合理的數據通路結構;而且Submatrix-Cholesky分解存在大量的并行更新操作,可以實 現數據更規律的訪存,讀寫控制更簡單,運算時間大幅縮短;最終,基于高層次綜合HLS開 發方式實現線性方程組求解的加速計算。
【附圖說明】
[0012] 圖1為本發明原理示意圖;
[0013] 圖2為Cholesky分解的數據通路不意圖。
【具體實施方式】
【具體實施方式】 [0014] 一:結合圖1、圖2說明本實施方式,一種加速實現Cholesky分解的 嵌入式片上系統,主要包括下述模塊:
[0015] ARM處理器模塊,用于對整個計算過程的任務調度;
[0016] DDR控制模塊,用于控制外部DDR存儲器的數據讀寫;
[0017] 可編程邏輯ProgrammableLogic模塊,簡稱PL模塊,用于從外部存儲讀取正定對 稱矩陣的值,進行Cholesky分解,得到下三角陣并將其存儲在外部存儲器中;
[0018] AXI總線模塊,用于PL模塊與ARM處理器模塊之間的信息傳輸。
【具體實施方式】 [0019] 二:本實施方式所述的PL模塊包括:
[0020] ControlLogic子模塊,用于接收ARM處理器模塊的控制信息,協調計算單元和更 新單元的計算工作以及控制內部RAM存儲子模塊數據讀寫工作;
[0021] DM子模塊,用于控制PL模塊與外部存儲器之間進行數據傳輸;
[0022] Cholesky分解子模塊,用于對正定對稱矩陣的Submatrix-Cholesky分解并實現 內部數據的緩存。
[0023] Submatrix-Cholesky分解順序如表 1 所示,
[0024] 表ISubmatrix-Cholesky分解順序表
【主權項】
1. 一種加速實現Cholesky分解的嵌入式片上系統,其特征在于主要包括下述模塊: ARM處理器模塊,用于對整個計算過程的任務調度; DDR控制模塊,用于控制外部DDR存儲器的數據讀寫; 可編程邏輯Pr〇grammabIeLogic模塊,簡稱PL模塊,用于從外部存儲讀取正定對稱矩 陣的值,進行Cholesky分解,得到下三角陣并將其存儲在外部存儲器中; AXI總線模塊,用于PL模塊與ARM處理器模塊之間的信息傳輸。
2. 根據權利要求1所述的一種加速實現Cholesky分解的嵌入式片上系統,其特征在 于: 所述的PL模塊包括: ControlLogic子模塊,用于接收ARM處理器模塊的控制信息,協調計算單元和更新單 元的計算工作以及控制內部RAM存儲子模塊數據讀寫工作; DM子模塊,用于控制PL模塊與外部存儲器之間進行數據傳輸; Cholesky分解子模塊,用于對正定對稱矩陣的Submatrix-Cholesky分解并實現內部 數據的緩存。
3. 根據權利要求2所述的一種加速實現Cholesky分解的嵌入式片上系統,其特征在 于: 所述的Cholesky分解子模塊包括: 計算單元,用于正定對稱矩陣進行Submatrix-Cholesky分解時對列的計算操作; 內部RAM緩存單元,用于對計算單元計算后的結果數據進行存儲,方便更新單元從中 直接調用; 更新單元,用于正定對稱矩陣進行Submatrix-Cholesky分解時對列的更新操作,完成 計算列之后的所有列的更新過程; FIFO單元,用于對Cholesky分解子模塊的初始數據及更新單元計算結果進行緩存,便 于實現數據傳輸的流模式。
4. 根據權利要求1或3所述的一種加速實現Cholesky分解的嵌入式片上系統,其特征 在于: 所述的AXI總線模塊包括: AXIGP子模塊,用于PS向PL傳輸控制信息,通過AXI-Lite總線實現; AXIHP子模塊,用于PS與PL之間實現高速數據傳輸,通過AXI-Stream總線實現。
5. 根據權利要求3所述的一種加速實現Cholesky分解的嵌入式片上系統,其特征在 于:Cholesky分解子模塊對正定對稱矩陣進行Submatrix-Cholesky分解時,計算單元完成 第一列數據的計算操作;更新單元對第一列數據后面的所有列進行更新。
6. 根據權利要求5所述的一種加速實現Cholesky分解的嵌入式片上系統,其特征在 于:所述的更新單元對所有列進行更新時為多個更新單元并行進行。
【專利摘要】一種加速實現Cholesky分解的嵌入式片上系統,涉及一種加速實現Cholesky分解的系統。本發明為了解決目前現有的基于Cholesky分解方法實現線性方程組求解的硬件加速系統存在計算時間比較長的問題。本發明包括用于對整個計算過程的任務調度的ARM處理器模塊、用于控制外部DDR存儲器的數據讀寫的DDR控制模塊、用于可編程邏輯Programmable Logic模塊與ARM處理器模塊之間的信息傳輸AXI總線模塊以及用于對正定對稱矩陣進行Cholesky分解的可編程邏輯Programmable Logic模塊。可編程邏輯Programmable Logic模塊基于Submatrix-Cholesky分解(塊分解)方式實現線性方程組系數的求解存在大量的并行更新操作,可以實現數據更規律的訪存,讀寫控制更簡單,運算時間大幅縮短;本發明適用于加速實現線性方程組的求解。
【IPC分類】G06F17-11
【公開號】CN104794102
【申請號】CN201510245953
【發明人】王少軍, 王曉璐, 馬寧, 劉大同, 彭宇, 彭喜元
【申請人】哈爾濱工業大學
【公開日】2015年7月22日
【申請日】2015年5月14日