[發(fā)明專利]基于工作隊列的圖形處理單元工作創(chuàng)建無效
| 申請?zhí)枺?/td> | 201310518042.X | 申請日: | 2013-10-28 |
| 公開(公告)號: | CN103793206A | 公開(公告)日: | 2014-05-14 |
| 發(fā)明(設(shè)計)人: | 依格納西奧·利亞馬斯;克雷格·羅斯·杜特韋勒;杰弗里·A·博爾茲;丹尼爾·埃利奧特·韋克斯勒 | 申請(專利權(quán))人: | 輝達(dá)公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/445 |
| 代理公司: | 北京市磐華律師事務(wù)所 11336 | 代理人: | 謝栒;董巍 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 工作 隊列 圖形 處理 單元 創(chuàng)建 | ||
技術(shù)領(lǐng)域
本發(fā)明總地涉及計算機(jī)處理,并且更具體地,涉及使能圖形處理單元(GPU)內(nèi)的工作的本地生成。
背景技術(shù)
圖形處理單元(GPU)設(shè)計為處理計算系統(tǒng)內(nèi)的各種密集任務(wù),諸如圖形處理工作和計算應(yīng)用工作。在典型的配置中,中央處理單元(CPU)生成基于GPU的工作并且將基于GPU的工作加載到CPU和GPU二者都可訪問的全局存儲器中。CPU之后訪問GPU的工作隊列-通常稱為“信道”-CPU能夠通過其使GPU處理存儲在全局存儲器中的基于GPU的工作。
在一個配置中,GPU的處理活動由兩個分開的指針的操縱所控制,每個指針涉及工作隊列中的條目,本文稱為GP_GET指針和GP_PUT指針。GP_GET指針指向工作隊列中的特定條目并且向CPU指示GPU在執(zhí)行存儲在工作隊列中的工作方面的進(jìn)展情況。可替換地,GP_PUT指針指向工作隊列中剛好在由CPU所寫的最后條目之后的條目。當(dāng)GPU完成由給定的工作隊列條目所指向的基于GPU的工作的執(zhí)行時,GPU增大GP_GET。顯而易見地,因為工作隊列是循環(huán)的,所以當(dāng)GP_GET達(dá)到工作隊列的條目計數(shù)時,將GP_GET重新設(shè)置為零值。如果在被增大之后,GP_GET等于GP_PUT,那么工作隊列中沒有更多的條目留待處理。否則,GPU執(zhí)行由GP_GET所指向的工作。另外,如果GP_GET等于“(GP_PUT+1)對‘工作隊列中的條目的數(shù)目’取模”,那么工作隊列被認(rèn)為是滿的。只要工作隊列不是滿的,CPU就能夠增大GP_PUT指針以提交在工作隊列中所寫的新的條目用于GPU處理。GPU監(jiān)視由CPU所實施的對GP_PUT的改變,使得CPU所提交的工作隊列條目以及時的方式加以處理。
在許多情況下,使得GPU能夠生成能夠由GPU加載到工作隊列中并且由GPU所處理的附加(即嵌套(nested))工作是可取的。不幸地,特定硬件限制存在于流行的CPU至GPU通信信道之間-諸如快速外圍部件互連(PCI-E)-并且防止GPU能夠修改GP_PUT指針,如以上所描述的,該GP_PUT指針需要在將新的工作插入工作隊列之后被增大。結(jié)果是,GPU必須依賴CPU來生成并執(zhí)行嵌套工作,其與在GPU內(nèi)本地生成并執(zhí)行嵌套工作相比是低效的。
因此,本領(lǐng)域需要的是用于在CPU至GPU通信信道硬件限制存在的情況下使得GPU能夠本地生成工作的技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的一個實施例闡述了用于配置工作隊列以使得在并行處理子系統(tǒng)中執(zhí)行的線程能夠在并行處理子系統(tǒng)內(nèi)生成并執(zhí)行工作的方法。方法包括生成工作隊列的步驟,其中工作隊列包括多個條目并且與第一指針和第二指針相關(guān)聯(lián),其中第一指針和第二指針中的每一個對線程是不可訪問的,建立工作隊列中的自由條目的范圍,通過:將第一指針指向多個條目的第一條目;以及將第二指針指向多個條目的最后條目;生成指向多個條目的第一條目的第三指針,其中第三指針對線程是可訪問的,生成指向多個條目的最后條目的第四指針,其中第四指針對線程是可訪問的,將工作隊列的第一條目指向包含指向被阻塞的信號量的信號量獲得命令的命令塊,經(jīng)由第三和第四指針將工作加載到工作隊列中,確定線程已經(jīng)完成加載工作;以及釋放信號量以使第一指針前進(jìn)到工作隊列中的下一個條目并且使并行處理子系統(tǒng)執(zhí)行由線程所生成的工作。
本發(fā)明所公開的實施例的一個優(yōu)勢是它們使得在處理單元上執(zhí)行的線程能夠在處理單元內(nèi)創(chuàng)建嵌套工作而不需要向CPU發(fā)出這樣做的請求。結(jié)果是,跨CPU和處理單元之間的通信路徑消耗較少的帶寬,并且進(jìn)一步地,CPU102的工作負(fù)載減少,從而提高效率。此外,線程能夠執(zhí)行有用的嵌套工作而不需要依賴CPU授權(quán)或不必等待CPU響應(yīng)將所生成的嵌套工作提交到GPU的請求。
附圖說明
因此,可以詳細(xì)地理解本發(fā)明的上述特征,并且可以參考實施例得到對如上面所簡要概括的本發(fā)明更具體的描述,其中一些實施例在附圖中示出。然而,應(yīng)當(dāng)注意的是,附圖僅示出了本發(fā)明的典型實施例,因此不應(yīng)被認(rèn)為是對其范圍的限制,本發(fā)明可以具有其他等效的實施例。
圖1是示出了配置為實現(xiàn)本發(fā)明的一個或多個方面的計算機(jī)系統(tǒng)的框圖。
圖2是根據(jù)本發(fā)明的一個實施例的、用于圖1的計算機(jī)系統(tǒng)的并行處理子系統(tǒng)的框圖。
圖3A是根據(jù)本發(fā)明的一個實施例的、圖2的任務(wù)/工作單元的框圖。
圖3B是根據(jù)本發(fā)明的一個實施例的、圖2的并行處理單元之一內(nèi)的通用處理集群的框圖。
圖3C是根據(jù)本發(fā)明的一個實施例的、圖3B的流多處理器的一部分的框圖。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于輝達(dá)公司,未經(jīng)輝達(dá)公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310518042.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





