[發(fā)明專利]一種GPU上的訪存方法有效
| 申請?zhí)枺?/td> | 201410419711.2 | 申請日: | 2014-08-25 |
| 公開(公告)號: | CN104199782B | 公開(公告)日: | 2017-04-26 |
| 發(fā)明(設(shè)計)人: | 吳明暉;裴玉龍;陳天洲;李頌元;孟靜磊 | 申請(專利權(quán))人: | 浙江大學(xué)城市學(xué)院 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司33200 | 代理人: | 林超 |
| 地址: | 310015 浙*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 gpu 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及GPU體系結(jié)構(gòu)和GPU的訪存方法設(shè)計領(lǐng)域,特別是涉及在GPU體系結(jié)構(gòu)下一種GPU上的訪存方法。
背景技術(shù)
GPU的硬件結(jié)構(gòu)與CPU的硬件結(jié)構(gòu)有著差別極大,GPU的硬件由內(nèi)存和流處理器組成。GPU實際上是一個處理器核的陣列,每個流處理器包含多個核,一個GPU設(shè)備中包含一個或多個流處理器,因此處理器才具有可擴(kuò)展性。如果向設(shè)備中增加更多的流處理器,GPU就可以在同一時刻處理更多的任務(wù),或者對于同一任務(wù),如果有充足的并行性的話,GPU可以更快的完成該任務(wù)。
GPU使用的是高速存儲器,具有穩(wěn)定的帶寬,但同所有內(nèi)存一樣,存在嚴(yán)重的訪存延遲。通過對內(nèi)存以融合方式的訪問,訪存延遲在一定程度上能被隱藏。原始的融合訪問就是融合所有線程訪問連續(xù)的對齊的內(nèi)存塊。如果對內(nèi)存進(jìn)行一對一連續(xù)訪問,則每個線程的訪存地址可融合,只需一次訪存請求即可解決問題。假設(shè)每個線程訪問一個4字節(jié)的內(nèi)存塊。內(nèi)存會基于線程束進(jìn)行融合,也就是訪問一次內(nèi)存將得到32×4=128個字節(jié)的數(shù)據(jù)。合并的大小支持32字節(jié),64字節(jié)和128字節(jié),分別表示線程束中的每個線程以1個字節(jié),2個字節(jié)及4個字節(jié)為單位讀取數(shù)據(jù),但前提是訪存請求必須連續(xù),并且是以32字節(jié)為基準(zhǔn)對齊的。
發(fā)明內(nèi)容
為了解決背景技術(shù)中存在的問題,本發(fā)明的目的在于提供一種GPU上的訪存方法,本發(fā)明能提高訪存效率,隱藏內(nèi)存延遲,提高GPU的綜合性能。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下:
1)對流處理器中發(fā)出的請求進(jìn)行訪存融合;
2)流處理器將融合后的訪存請求發(fā)送到相應(yīng)內(nèi)存中;
3)內(nèi)存中將融合后的訪存請求進(jìn)行拆分,并讀出數(shù)據(jù);
4)內(nèi)存中將讀出數(shù)據(jù)形成數(shù)據(jù)塊返回到流處理器;
5)流處理器對發(fā)回的數(shù)據(jù)塊進(jìn)行處理、存儲。
所述的步驟1)中對流處理器中發(fā)出的請求進(jìn)行訪存融合具體包括:
1.1)將GPU多核中的流處理器發(fā)出的請求地址放在一個數(shù)組中;
1.2)將數(shù)組中的訪存地址按從小到大順序進(jìn)行排序,并使得同一數(shù)組中的各訪存地址不重復(fù);每個數(shù)組中,按從小到大的順序依次將所有訪存地址中訪存地址之間的距離相同的訪存地址融合為一次訪存請求。
所述的步驟2)具體包括:
2.1)流處理器通過訪存地址判斷將融合后得到的訪存請求需要發(fā)送到內(nèi)存序號,并將融合后得到的訪存請求發(fā)送到與該內(nèi)存序號對應(yīng)的內(nèi)存中;
所述的步驟2.1)通過訪存地址判斷的判斷方式為:將某一融合后的訪存請求中的所有訪存地址展開為數(shù)組,將展開后數(shù)組中的訪存地址對內(nèi)存?zhèn)€數(shù)取余,得到需要發(fā)送訪存請求的內(nèi)存序號。
所述的步驟3)具體包括:
3.1)內(nèi)存接收從流處理器發(fā)出的經(jīng)過融合的訪存請求后,將融合過的訪存請求還原為未融合的多個訪存請求;
3.3)將未融合的多個訪存請求發(fā)送到相應(yīng)的內(nèi)存塊,讀出所需數(shù)據(jù)。
所述的步驟3.1)中將融合過的訪存請求還原為未融合的多個訪存請求具體過程為:
將某一融合后的訪存請求中的所有訪存地址展開為數(shù)組,形成未融合的多個訪存請求,其中一個訪存地址作為一個訪存請求。
所述的步驟3.3)中將未融合的多個訪存請求發(fā)送到相應(yīng)的內(nèi)存塊,具體為:
將其中各個訪存地址對內(nèi)存?zhèn)€數(shù)取余,得到需要發(fā)送訪存請求的內(nèi)存序號;若得到的內(nèi)存序號與當(dāng)前內(nèi)存序號相同,則發(fā)送該訪存請求到相應(yīng)的內(nèi)存塊;若得到的內(nèi)存序號與當(dāng)前內(nèi)存序號不相同,則忽略該訪存請求。
所述的步驟4)具體包括:
4.1)內(nèi)存將從內(nèi)存塊中讀出的所有數(shù)據(jù)放在緩沖區(qū)中;
4.2)將各個數(shù)據(jù)首部加上該數(shù)據(jù)對應(yīng)的融合后的訪存請求和當(dāng)前內(nèi)存序號,得到數(shù)據(jù)塊;
4.3)將數(shù)據(jù)塊發(fā)送回發(fā)出該數(shù)據(jù)塊對應(yīng)請求的流處理器。
所述的步驟5)具體包括:
5.1)接收從內(nèi)存發(fā)送回的數(shù)據(jù)塊后,通過數(shù)據(jù)塊中融合后的訪存請求和內(nèi)存序號計算得到數(shù)據(jù)塊中各字節(jié)的地址;
5.2)最后通過數(shù)據(jù)塊中各字節(jié)的地址存儲數(shù)據(jù)。
所述的步驟5.1)數(shù)據(jù)塊中各字節(jié)的地址采用以下方式計算:將數(shù)據(jù)塊中融合后的訪存請求的所有訪存地址展開為數(shù)組,將展開后各訪存地址對內(nèi)存?zhèn)€數(shù)取余得到的內(nèi)存序號與數(shù)據(jù)塊中的內(nèi)存序號相比較;如果兩者相同,則將該訪存地址為數(shù)據(jù)塊中對應(yīng)字節(jié)的地址;如果兩者不相同,則忽略。
本發(fā)明與背景技術(shù)相比,具有的有益的效果是:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浙江大學(xué)城市學(xué)院,未經(jīng)浙江大學(xué)城市學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410419711.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 圖形處理器任務(wù)的分配方法和裝置
- 一種資源調(diào)度裝置、資源調(diào)度系統(tǒng)和資源調(diào)度方法
- 一種免工具GPU支架固定裝置
- 一種YARN集群GPU資源調(diào)度方法、裝置和介質(zhì)
- 一種服務(wù)器內(nèi)4GPU布局結(jié)構(gòu)及其安裝方法
- 一種GPU資源調(diào)度系統(tǒng)及其調(diào)度方法
- 一種GPU拓?fù)浞謪^(qū)方法與裝置
- 一種基于Kubernetes的共享GPU調(diào)度方法
- 一種數(shù)據(jù)處理的方法和裝置
- 一種GPU分配方法、系統(tǒng)、存儲介質(zhì)及設(shè)備





