面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及通用計(jì)算數(shù)字信號(hào)處理器(General-PurposeDigitalSignal Processor,簡(jiǎn)稱GPDSP),特指一種適用于GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的 方法。
【背景技術(shù)】
[0002] Linpack測(cè)試基準(zhǔn)是高性能計(jì)算中最廣泛使用的性能測(cè)試基準(zhǔn),是T0P500最重要 的測(cè)試基準(zhǔn)。Linpack基準(zhǔn)通過(guò)求解稠密線性代數(shù)方程組,以測(cè)試和評(píng)價(jià)高性能計(jì)算機(jī)系 統(tǒng)的浮點(diǎn)性能。Linpack測(cè)試標(biāo)準(zhǔn)包括三個(gè)不同數(shù)據(jù)規(guī)模的測(cè)試:100X100,1000X1000和 nXn,其中前兩個(gè)測(cè)試所使用的測(cè)試基準(zhǔn)程序是可以從網(wǎng)站(例如:http://www.netlib. org/benchmark/)下載,編譯運(yùn)行程序后,該程序會(huì)給出相應(yīng)機(jī)器的性能,這種測(cè)試不允許 對(duì)測(cè)試程序進(jìn)行任何修改。nXn數(shù)據(jù)規(guī)模的測(cè)試要求是Linpack測(cè)試標(biāo)準(zhǔn)中最為寬松的, 用戶可以對(duì)任意大小的問(wèn)題規(guī)模,使用任意個(gè)數(shù)的CPU,使用基于高斯消去法的各種優(yōu)化方 法來(lái)執(zhí)行該測(cè)試程序,尋求最佳的性能測(cè)試結(jié)果。HPL(HighPerformanceLinpack)是第一 個(gè)標(biāo)準(zhǔn)的公開(kāi)發(fā)布的并行Linpack測(cè)試軟件包,是nXn測(cè)試的MPI實(shí)現(xiàn),可移植于多種體 系結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng),目前廣泛用于T0P500測(cè)試,該測(cè)試主要針對(duì)分布式存儲(chǔ)的大規(guī)模并 行計(jì)算系統(tǒng)而設(shè)計(jì)。
[0003] 在專利申請(qǐng)?zhí)枮?01310725118. 6的文獻(xiàn)(處于實(shí)審階段)中提供了一種通用計(jì) 算數(shù)字信號(hào)處理器(General-PurposeDigitalSignalProcessor,簡(jiǎn)稱GPDSP),它包含 CPU核單元和DSP核單元,CPU核單元主要用于包括存儲(chǔ)管理、文件控制、進(jìn)程調(diào)度、中斷管 理任務(wù)在內(nèi)的通用事務(wù)管理以及提供對(duì)通用操作系統(tǒng)的完整支持;DSP核單元包含若干強(qiáng) 大計(jì)算能力的64位向量處理陣列,用于支持高密集運(yùn)算任務(wù)的解算。由于GPDSP是包含CPU 核和DSP核的異構(gòu)多核處理器,包括寄存器文件、片內(nèi)向量陣列存儲(chǔ)器、片內(nèi)共享存儲(chǔ)陣 列、片外DDR存儲(chǔ)器等多層次存儲(chǔ)架構(gòu),簡(jiǎn)單的移植HPL或采用傳統(tǒng)的方法實(shí)現(xiàn)的Linpack 測(cè)試基準(zhǔn),不能夠取得GPDSP最佳的性能測(cè)試結(jié)果。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問(wèn)題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一 種原理簡(jiǎn)單、操作方便、能充分利用GPDSP中DSP核向量處理陣列的強(qiáng)大向量并行計(jì)算和高 帶寬向量數(shù)據(jù)加載能力,由CPU核和DSP核協(xié)同高效的實(shí)現(xiàn)大規(guī)模Linpack測(cè)試基準(zhǔn)計(jì)算 的方法。
[0005] 為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案:
[0006] -種面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法,采用分塊的方式 來(lái)求解稠密線性方程組:較小的串行任務(wù)和小矩陣求逆和三角方程求解任務(wù),由GPDSP中 的CPU核負(fù)責(zé);規(guī)整的計(jì)算任務(wù)由GPDSP中的DSP核負(fù)責(zé)。
[0007] 作為本發(fā)明的進(jìn)一步改進(jìn):具體步驟為:
[0008]SI:根據(jù)GPDSP的體系結(jié)構(gòu)特征確定最佳的Linpack測(cè)試基準(zhǔn)的矩陣規(guī)模n值和 分塊大小NB值;Linpack測(cè)試基準(zhǔn)求解的稠密線性方程組為Ax=b,其中A為nXn階的非 奇異矩陣,x,b為nX1階的向量;
[0009] S2 :根據(jù)上述n值,由GPDSP的CPU核在片外DDR存儲(chǔ)器為矩陣A和向量x,b分配 空間,并生成初始化數(shù)據(jù);記Linpack計(jì)算量為
【主權(quán)項(xiàng)】
1. 一種面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法,其特征在于,采用分 塊的方式來(lái)求解稠密線性方程組:較小的串行任務(wù)和小矩陣求逆和三角方程求解任務(wù),由 GPDSP中的CPU核負(fù)責(zé);規(guī)整的計(jì)算任務(wù)由GPDSP中的DSP核負(fù)責(zé)。
2. 根據(jù)權(quán)利要求1所述的面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法, 其特征在于,具體步驟為: 51 :根據(jù)GPDSP的體系結(jié)構(gòu)特征確定最佳的Linpack測(cè)試基準(zhǔn)的矩陣規(guī)模n值和分塊 大小NB值;Linpack測(cè)試基準(zhǔn)求解的稠密線性方程組為Ax = b,其中A為nXn階的非奇異 矩陣,X,b為nX 1階的向量; 52 :根據(jù)上述n值,由GPDSP的CPU核在片外DDR存儲(chǔ)器為矩陣A和向量x,b分配空 間,并生成初始化數(shù)據(jù);記Linpack計(jì)算量為2/?2,計(jì)算GPDSP的峰值性能為F。, i 記CPU核的當(dāng)前系統(tǒng)時(shí)間為tQ; 53 :GPDSP的CPU核和DSP核協(xié)同計(jì)算,按照NBXNB階的分塊規(guī)模對(duì)nXn階的矩陣進(jìn) 行LU分解; 54 :根據(jù)步驟S3得到的LU分解結(jié)果,GPDSP的CPU核和DSP核協(xié)同計(jì)算,求解方程LUx =b ; 55 :記CPU核的當(dāng)前系統(tǒng)時(shí)間為t1;由GPDSP的CPU核計(jì)算出GPDSP的實(shí)測(cè)性能為F : =ops/(tft。),Linpack效率為F/F。,并輸出上述計(jì)算結(jié)果,Linpack測(cè)試完畢。
3. 根據(jù)權(quán)利要求2所述的面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法, 其特征在于,所述步驟S4中求解方程LUx = b分兩步:(1) GPDSP的CPU核和DSP核協(xié)同計(jì) 算,按照分塊的方法求解三角方程Ly = b ; (2) GPDSP的CPU核和DSP核協(xié)同計(jì)算,按照分塊 的方法求解三角方程Ux = y。
4. 根據(jù)權(quán)利要求3所述的面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法, 其特征在于,所述步驟S4的具體步驟為: S4. 1 :GPDSP的CPU核和DSP核協(xié)同計(jì)算,按照分塊的方法求解三角方程Ly = b ; S4. 2 :根據(jù)GPDSP的體系結(jié)構(gòu)特征確定求解上述三角方程所需的分塊大小NC值; 上述求解三角方程所需的分塊大小NC值的確定方法是:設(shè)條件(1) 16*NC*p*q < s ; (2)8*(NC*NC+(r+2)*NC) < t ; (3)NC是(p*q)的整數(shù)倍,n是NC的整數(shù)倍;按照滿足條件 (1) (2) (3)取得的最大NC值為所需要的NC值; S4. 3 :設(shè)下三角矩陣L按照上述NC值進(jìn)行分塊,記j = n/NC ;沿對(duì)角線的三角分塊依 次標(biāo)記為1\,其中1 < i < j,以該分塊為坐標(biāo),對(duì)應(yīng)列方向的分塊依次標(biāo)記為Si+1,i,Si+2,i,… ,y, b分別劃分為長(zhǎng)度為NC的子向量,分別有j個(gè)子向量,分別標(biāo)記為y u y2,…,yj; bu b2, bJ; S4. 4 :GPDSP的CPU核將三角分塊和子向量b i加載到片內(nèi)共享存儲(chǔ)陣列中,計(jì)算得 到只=?Ti,計(jì)算結(jié)果yi傳出到片外DDR存儲(chǔ)器中,同時(shí)保持在片內(nèi)共享存儲(chǔ)陣列中; S4. 5 :GPDSP的r個(gè)DSP核通過(guò)DMA依次從片外DDR存儲(chǔ)器將三角分塊1\所在列的 矩陣分塊S2,i,S 3>1,. . .,Spu和子向量b i后續(xù)的r個(gè)子向量b 2, b3,…,1\+1傳入計(jì)算,其中 S2;1,S3;1,. . .,傳入到DSP核的片內(nèi)向量陣列存儲(chǔ)器,子向量b 2, b3,…,傳入到片內(nèi) 共享存儲(chǔ)陣列中;分別執(zhí)行計(jì)算:b2= b3= bfS^yi,. . .,brt= ,計(jì) 算后的結(jié)果b2, b3,…,\+1保持在片內(nèi)共享存儲(chǔ)陣列中;重復(fù)上述計(jì)算,直到該列方向所有 的矩陣分塊計(jì)算完畢; S4. 6 :GPDSP的CPU核將下一個(gè)三角分塊T2加載到片內(nèi)共享存儲(chǔ)陣列中,計(jì)算得到 _r2 = 計(jì)算結(jié)果y2傳出到DDR存儲(chǔ)器中,同時(shí)保持在片內(nèi)共享存儲(chǔ)陣列中; S4. 7 :重復(fù)步驟S4. 5和步驟S4. 6,直到完成所有的子向量yp y2,…,y』的計(jì)算。
5.根據(jù)權(quán)利要求2?4所述的面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方 法,其特征在于,所述步驟S3的具體步驟為: S3. 1 :GPDSP的CPU核對(duì)分塊矩陣&進(jìn)行LU分解;由GPDSP的CPU核將分塊矩陣K 3口 載至片內(nèi)共享存儲(chǔ)陣列中,按照列選主元方法對(duì)分塊矩陣I進(jìn)行LU分解,LU分解結(jié)果為 1= LLjUUi,其中1^為下三角矩陣,UUiS上三角矩陣;將LU分解的計(jì)算結(jié)果傳輸?shù)狡?DDR存儲(chǔ)器的原矩陣位置; S3. 2 :GPDSP的CPU核計(jì)算步驟S3. 1得到的LU分解的上三角矩陣UR的逆矩陣;由 GPDSP的CPU核計(jì)算上三角矩陣逆矩陣UUf1,計(jì)算結(jié)果保留在片內(nèi)共享存儲(chǔ)陣列中; S3. 3 :GPDSP的DSP核對(duì)行panel的行矩陣仏進(jìn)行行交換;由GPDSP的DSP核根據(jù)步 驟3. 1得到的行交換信息按照數(shù)據(jù)并行的方法對(duì)行矩陣仏并行的進(jìn)行行交換計(jì)算; 其中,步驟S3. 2和步驟S3. 3在步驟S3. 1之后由GPDSP的CPU核和DSP核并行執(zhí)行; S3. 4 :GPDSP的CPU核計(jì)算步驟S3. 1得到的LU分解的下三角矩陣LQ的逆矩陣;由 GPDSP的CPU核計(jì)算下三角矩陣1^的逆矩陣LL/1,計(jì)算結(jié)果保留在片內(nèi)共享存儲(chǔ)陣列中; S3. 5 :GPDSP的DSP核更新列panel的列矩陣Li; 按照厶=A. =((A *4,其中(t/L/r1)7為下三角矩陣,將列 矩陣Q的更新由矩陣與上三角矩陣的乘積轉(zhuǎn)化為下三角矩陣與矩陣的乘積,由GPDSP的 DSP核并行執(zhí)行計(jì)算;DSP核執(zhí)行下三角矩陣與矩陣的乘積計(jì)算時(shí),由標(biāo)量處理器讀取的下 三角矩陣數(shù)據(jù)為步驟S3. 2計(jì)算得到的保留在片內(nèi)共享存儲(chǔ)陣列中的逆矩陣UU,轉(zhuǎn)置得 到,由向量陣列處理器讀取列矩陣Q的矩陣數(shù)據(jù);矩陣數(shù)據(jù)傳入時(shí)按照矩陣轉(zhuǎn)置的方式,計(jì) 算后的結(jié)果矩陣按照矩陣轉(zhuǎn)置的方式傳輸?shù)狡釪DR存儲(chǔ)器的原矩陣位置; 步驟S3. 4和步驟S3. 5在步驟S3. 3之后由GPDSP的CPU核和DSP核并行執(zhí)行; S3. 6 :GPDSP的DSP核更新行panel的行矩陣Ui; 按照K ,其中ZA1為下三角矩陣,行矩陣仏的更新為下三角矩陣與矩陣的 乘積,由GPDSP的DSP核并行執(zhí)行計(jì)算;DSP核執(zhí)行下三角矩陣與矩陣的乘積計(jì)算時(shí),由標(biāo) 量處理器讀取的下三角矩陣數(shù)據(jù)為步驟S3. 2計(jì)算得到的逆矩陣LL,,由向量陣列處理器 讀取行矩陣A的矩陣數(shù)據(jù),計(jì)算后的結(jié)果矩陣傳出到片外DDR存儲(chǔ)器的原矩陣位置; S3. 7 :GPDSP的DSP核更新尾矩陣Ai;按照A i= A更新尾矩陣A i; 執(zhí)行更新尾矩陣計(jì)算時(shí),采用對(duì)列矩陣Q分塊的方法,每次由GPDSP的一個(gè)DSP核的標(biāo) 量處理器先將1^中的一個(gè)NBXNB階的分塊矩陣Qj加載至片內(nèi)共享存儲(chǔ)陣列中;再由DSP 核將后續(xù)計(jì)算所需的行矩陣A矩陣數(shù)據(jù)依次傳輸?shù)狡瑑?nèi)向量陣列存儲(chǔ)器,并且按照公式 A u= A。.'.叫執(zhí)行矩陣與矩陣的乘加計(jì)算;上述計(jì)算依次進(jìn)行,直到完成尾矩陣A i的全部 更新; S3. 8 :重復(fù)步驟S3. 1和步驟S3. 7,直到完成全部分塊&的LU分解。
6.根據(jù)權(quán)利要求2?4所述的面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方 法,其特征在于,所述步驟S1的具體步驟為: SI. 1 :根據(jù)GPDSP的體系結(jié)構(gòu)特征確定最佳的Linpack測(cè)試基準(zhǔn)的矩陣LU分解的分塊 大小NB值;上述矩陣LU分解的分塊大小NB值的確定方法是:設(shè)條件(1) 16*NB*p*q < s ; (2)8*NB*NB < t ; (3)NB是r的整數(shù)倍;按照滿足條件(1) (2) (3)取得的最大NB值為所需 要的NB值; S1. 2 :根據(jù)GPDSP的體系結(jié)構(gòu)特征確定最佳的Linpack測(cè)試基準(zhǔn)的矩陣規(guī)模n值;上述 矩陣規(guī)模n值的確定方法是:設(shè)條件(1) n是NB的整數(shù)倍;(2) 8* (n*n+2*n) <u ;按照滿足條 件(1) (2)取得的最大n值為所需要的n值。
【專利摘要】本發(fā)明公開(kāi)了一種面向GPDSP的大規(guī)模高性能Linpack測(cè)試基準(zhǔn)實(shí)現(xiàn)的方法,采用分塊的方式來(lái)求解稠密線性方程組:較小的串行任務(wù)和小矩陣求逆和三角方程求解任務(wù),由GPDSP中的CPU核負(fù)責(zé);規(guī)整的計(jì)算任務(wù)由GPDSP中的DSP核負(fù)責(zé)。本發(fā)明具有原理簡(jiǎn)單、操作方便、能充分利用GPDSP中DSP核向量處理陣列的強(qiáng)大向量并行計(jì)算和高帶寬向量數(shù)據(jù)加載能力、由CPU核和DSP核協(xié)同高效的實(shí)現(xiàn)大規(guī)模Linpack測(cè)試基準(zhǔn)計(jì)算的優(yōu)點(diǎn)。
【IPC分類】G06F11-22, G06F17-12
【公開(kāi)號(hào)】CN104615516
【申請(qǐng)?zhí)枴緾N201510062079
【發(fā)明人】劉仲, 陳書(shū)明, 郭陽(yáng), 陳海燕, 萬(wàn)江華, 陳磊, 田希, 孫永節(jié), 彭元喜, 扈嘯, 王耀華, 馬勝, 陳虎, 張軍陽(yáng), 魯慶男
【申請(qǐng)人】中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)
【公開(kāi)日】2015年5月13日
【申請(qǐng)日】2015年2月6日