矩陣相乘在gpu上的并行實現(xiàn)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、矩陣相乘在GPU上的并行實現(xiàn)1問題描述這里討論矩陣相乘C=AB,其中矩陣A、B、C均為大小為nn的方陣。由矩陣相乘定義,可得:Cij=∑AikBkj,其中,ijn,且k從0到n1,累積求和得到結(jié)果矩陣C中每個元素的值。矩陣相乘是高度密集型的計算問題,各元素之間的計算沒有相關(guān)性,因此,非常易于并行化。為了便于并行實現(xiàn),很自然地將矩陣進(jìn)行劃分,然后指派給不同的處理器。兩種常見的劃分方法,為行列劃分(又稱為帶狀劃分)和棋盤劃分(又稱為塊狀劃分

2、)。這里,我們采用棋盤劃分方法將矩陣相乘在NVIDIA新型GPU架構(gòu)上進(jìn)行并行化,采用CUDAC語言進(jìn)行編程實現(xiàn)。2GPU硬件構(gòu)成(GT200)GT200系列GPU擁有30個SM(StreamingMultiprocess:多處理器),每個SM里擁有8個SP(Streamingprocess:流處理器),SP是GPU內(nèi)部最小的計算核心,每8個SP位于同一SM中共享同一套取指單元、譯碼單元。大量的SP可以同時工作,有著強(qiáng)大的并行計算能力。

3、globalmemyGPU……SMSPSPSPSPSPSPSPSPsharedSMSPSPSPSPSPSPSPSPsharedSMSPSPSPSPSPSPSPSPsharedSMSPSPSPSPSPSPSPSPsharedSMSPSPSPSPSPSPSPSPsharedhostmemy顯存,屬于GPU片外存儲,由全局存儲器(globalmemy)、固定存儲器(constantmemy)、紋理存儲器(texturememy)三者共同構(gòu)成,

4、共有4GB大小的空間,這里我們用到了全局存儲器,它是對所有的SM可見,由它們共享,全局有著嚴(yán)重的訪存延遲;共享存儲器(sharedmemy),位于GPU片內(nèi),每個SM擁有16KB的共享存儲空間,由之和構(gòu)成。數(shù)據(jù)一開始存入在全局存儲器中,由于訪問全局存儲器有著很大的延遲,將數(shù)據(jù)從全局存儲器中調(diào)入到共享存儲器中進(jìn)行計算。BAC(ij)N101N110……用GPU實現(xiàn)矩陣相乘時具體步驟如下:(1)初始數(shù)據(jù)從hostmemy→globalmem

5、y;(2)調(diào)用內(nèi)核函數(shù)使用GPU進(jìn)行計算:(i)將子塊AikBkj拷貝至共享內(nèi)存中;(ii)使用相應(yīng)的SM完成累加運算;(iii)重復(fù)(i)(ii),直到完成Cij的計算;(3)計算結(jié)果從globalmemy→hostmemy。在CUDA編程模型中,一個子塊計算由GPU線程調(diào)度器自動分配給空閑的SM執(zhí)行,對于一個SM來說,它處理完成一個塊后會執(zhí)行后面等待中的子塊計算。即,我們定義一個內(nèi)核程序,而每個SM都會執(zhí)行這個內(nèi)核程序。只需要描述一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論