欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于陣列處理器的數(shù)據(jù)推測的制作方法

文檔序號:11851373閱讀:319來源:國知局
用于陣列處理器的數(shù)據(jù)推測的制作方法與工藝

本公開涉及數(shù)據(jù)推測(speculation),并且更具體地涉及在處理周期期間結合推測性輸入數(shù)據(jù)利用計算裝置的未調度算術邏輯單元(ALU)。



背景技術:

術語“單指令多線程”是指相同處理代碼在許多線程(每個線程中具有不同輸入數(shù)據(jù))中的同時執(zhí)行。SIMT技術已經(jīng)被用于陣列處理器,陣列處理器被專門設計為對許多輸入重復地執(zhí)行類似操作。例如,現(xiàn)代圖形處理單元(GPU)陣列處理器包括數(shù)百或數(shù)千個算術邏輯單元(ALU),ALU均能夠使用輸入向量來計算函數(shù)。通過將不同輸入向量饋送到不同ALU,可以通過許多輸入在一個處理周期內多次計算給定函數(shù)。隨著GPU繼續(xù)變得更強大,計算機科學家已經(jīng)開始使用GPU,GPU通常處理僅針對計算機圖形的計算,以在傳統(tǒng)上由CPU處理的應用中執(zhí)行計算。該技術被稱為“通用計算圖形處理單元”(GPGPU)。然而,在給定處理周期期間,不能利用許多可用ALU。



技術實現(xiàn)要素:

根據(jù)本公開的一方面,公開了一種利用陣列處理器的多個算術邏輯單元(ALU)的方法。確定調度第一數(shù)量的ALU以在給定處理周期期間執(zhí)行函數(shù),每個ALU被調度2002-158d為使用多個所選輸入向量中的相應一個作為輸入。還確定不調度第二數(shù)量的ALU用于在給定處理周期期間使用。確定與多個所選輸入向量不同的多個預測的未來輸入向量。調度第二數(shù)量的ALU以使用多個預測的未來輸入向量中的相應預測的未來輸入向量作為輸入在給定處理周期期間執(zhí)行所述函數(shù)。在完成處理周期之后,緩存從第一數(shù)量的ALU和第二數(shù)量的ALU接收的函數(shù)輸出。

根據(jù)本公開的另一方面,公開了一種計算裝置,該計算裝置的特征在于:包括多個算術邏輯單元(ALU)的陣列處理器、以及處理電路。處理電路可以在陣列處理器外部或位于陣列處理器內。處理電路被構造為確定調度第一數(shù)量的ALU以在給定處理周期期間執(zhí)行函數(shù),每個ALU被調度為使用多個所選輸入向量中的相應一個作為輸入。處理電路還被構造為確定不調度第二數(shù)量的ALU用于在所述給定處理周期期間使用。處理電路還被構造為確定與所述多個所選輸入向量不同的多個預測的未來輸入向量,并且調度所述第二數(shù)量的ALU以使用所述多個預測的未來輸入向量中的相應預測的未來輸入向量作為輸入在所述給定處理周期期間執(zhí)行所述函數(shù)。處理電路還被構造為在完成所述處理周期之后,緩存從所述第一數(shù)量的ALU和第二數(shù)量的ALU接收的函數(shù)輸出。

在一些實施方式中,根據(jù)較大輸入向量集合隨機地確定預測的未來輸入向量。在其它實施方式中,通過將一個或更多個遺傳算法應用至在一個或更多個先前處理周期內已被用作針對給定函數(shù)的輸入的一個或更多個先前輸入向量來確定預測的未來輸入向量。一個或更多個遺傳算法的應用例如可以包括遺傳交叉的使用和/或變異算子的應用。

在一個或更多個實施方式中,陣列處理器包括圖形處理單元(GPU)。

附圖說明

圖1示意性地示出包括具有多個算術邏輯單元(ALU)的陣列處理器的示例計算裝置。

圖2示出利用圖1的多個ALU的示例方法。

圖3至圖4示意性地示出將輸入向量調度為多個ALU中的函數(shù)輸入的示例。

圖5示出圖2的方法的一部分的示例實現(xiàn)。

圖6示出圖2的方法的一部分的示例實現(xiàn)。

圖7示出確定預測的未來輸入向量的交叉算法的示例應用。

具體實施方式

本公開描述了用于通過在給定處理周期期間使用陣列處理器的未調度算術邏輯單元(ALU)來更有效地利用計算資源的技術。還公開了用于通過那些未調度的ALU預測將被用作函數(shù)輸入的未來輸入向量的技術。通過推測將在未來處理周期內使用什么輸入向量,計算裝置可以計算針對函數(shù)的預測輸出值的緩存。隨后,如果作出使用推測性輸入向量中的一個作為輸入來執(zhí)行所述函數(shù)的請求,則可以從緩存檢索函數(shù)輸出來代替重新計算函數(shù)輸出。在一個或更多個實施方式中,使用一個或更多個遺傳算法執(zhí)行輸入向量預測(或“推測”)。在其它實施方式中,可以通過從可能輸入向量集合隨機地選擇輸入向量或通過隨機地生成輸入向量來執(zhí)行輸入向量預測。

圖1示意性地示出包括主中央處理單元(CPU)12和陣列處理器14兩者的示例計算裝置10。在一個或更多個實施方式中,陣列處理器14包括圖形處理單元(GPU)。當然,可以使用其它陣列處理器14。CPU 12和陣列處理器14中的每個均包括一個或更多個處理電路,該處理電路例如包括配置有實現(xiàn)這里論述的一個或更多個技術的適當軟件和/或固件的一個或更多個微處理器、微控制器、專用集成電路(ASIC)等。

計算裝置10包括高速緩沖存儲器16。雖然高速緩沖存儲器16被示出為陣列處理器14的一部分,但是將理解,這是非限制性示例,并且高速緩沖存儲器16可以在陣列處理器14外部(例如,在儲存器22或RAM 24中)。陣列處理器包括多個內核18a-18n,每個內核包括多個ALU 20a-20m。為了簡單起見,示出了僅內核18a的ALU。然而,將理解,內核18a-18n中的每個均包括多個ALU 20。高速緩沖存儲器16被配置為存儲陣列處理器14的多個ALU 20的輸出以用于一個或更多個函數(shù)。計算裝置10還包括計算機可讀存儲介質(被示出為儲存器22)、隨機存取存儲器(RAM)24、通信接口26(例如,無線收發(fā)器)以及一個或更多個輸入/輸出裝置28(例如,電子顯示器、鼠標、觸摸屏、小鍵盤等)。儲存器22例如可以包括固態(tài)或光學硬盤驅動器。

圖2示出利用陣列處理器(例如,計算裝置10的陣列處理器14)的多個ALU的示例方法100。計算裝置10確定調度第一數(shù)量的ALU 20以在給定處理周期期間執(zhí)行函數(shù)(框102),每個ALU被調度為使用多個所選輸入向量中的相應一個作為輸入。計算裝置10還確定不調度第二數(shù)量的ALU用于在給定處理周期期間使用(框104)。計算裝置10確定與多個所選輸入向量不同的多個預測的未來輸入向量(框106),并且調度第二數(shù)量的ALU 20以使用多個預測的未來輸入向量中的相應預測的未來輸入向量作為輸入在給定處理周期間執(zhí)行函數(shù)(框108)。在完成處理周期之后,緩存從第一數(shù)量的ALU和第二數(shù)量的ALU接收的函數(shù)輸出(框110)。緩存例如可以發(fā)生在高速緩沖存儲器16中。

圖3提供方法100的示意性示例應用。根據(jù)針對給定處理周期的所請求調度(圖3的左邊),調度第一組30ALU,以使用輸入向量X1-X10計算函數(shù)f,但是不調度第二組32ALU用于在處理周期期間使用。根據(jù)修改后的調度(圖3的右邊)在處理周期期間針對所述一組32 ALU將預測的未來輸入向量X11-X16調度為到函數(shù)f的輸入。在完成所述處理周期之后,緩存每個ALU的函數(shù)輸出。當然,圖3假定輸入向量X1-X10先前未被用作函數(shù)輸入,并且因此尚未緩存函數(shù)輸出。圖4提供已經(jīng)緩存一些值的方法100的另一個示意性示例應用。

現(xiàn)在參照圖4,根據(jù)針對給定處理周期的所請求調度(圖4的左邊),請求第一組30 ALU使用輸入向量X1-X10計算函數(shù)f,但是不調度第二組32ALU用于在所述處理周期期間使用。然后,檢測到輸入向量X7和X8先前已被用作針對函數(shù)f的輸入并且已具有被緩存的函數(shù)輸出。圖4的中間示出第一次修改后的調度,其中,確定已被用于利用輸入向量X7和X8計算函數(shù)f的ALU_07和ALU_08可用。預測的未來輸入向量X10-X18不僅針對所述組32 ALU還針對ALU_07和ALU_08在處理周期期間被調度為到函數(shù)f的輸入(圖4的右側邊)。在完成所述處理周期之后,緩存每個ALU的函數(shù)輸出。

現(xiàn)在參照圖5,示出圖2的方法100的一部分的示例實現(xiàn)200。利用一個或更多個輸入向量作為輸入調用函數(shù)(框202為“是”)。然后,計算裝置10檢查任一個輸入向量是否已緩存針對函數(shù)的結果(框204)。如果任一個輸入向量已緩存針對函數(shù)的輸出結果(框204為“是”),則使用那些緩存結果,并且釋放本該重新計算緩存結果的一個或更多個ALU(框206)。

計算裝置10每輸入向量使用一個ALU在隨后處理周期內調度函數(shù)的執(zhí)行(框208)。如果在所調度的處理周期內沒有額外ALU可用(框210為“否”),則計算裝置使用所調度的輸入向量作為輸入計算函數(shù)(框214),并且從處理周期緩存從ALU接收的函數(shù)輸出(框216)。

然而,如果額外ALU在所調度的處理周期內可用(框210為“是”),則計算裝置10調度在可用ALU中的預測的未來輸入向量(框212),并且然后執(zhí)行框214-216。預測的未來輸入向量的使用增加在未來處理周期內針對函數(shù)的所選輸入向量將緩存能夠從高速緩沖存儲器返回而不是重新計算的輸出的幾率。

在一個或更多個實施方式中,如果高速緩沖存儲器16變滿,則可以選擇緩存輸入向量(及其對應函數(shù)輸出)用于替換。在一個或更多個實施方式中,根據(jù)適合度得分的分布使用隨機采樣執(zhí)行該選擇。適合度得分指示已從高速緩沖存儲器返回緩存值多少次。由此,因為具有最低適合度得分的緩存項不太頻繁地被使用,所以替換具有最低適合度得分的緩存項。另選地,可能期望替換很少或不強調適合度得分的更老緩存項。

推測性未來輸入向量可以以多種方式被預測。在一些實施方式中,所選輸入向量是較大輸入向量集合的一部分,并且確定與多個所選輸入向量不同的多個預測的未來輸入向量(框106)的特征在于:從尚未用作到函數(shù)的輸入的輸入向量集合隨機地選擇輸入向量作為預測的輸入向量。在一些實施方式中,隨機地生成預測的輸入向量。在一些實施方式中,遺傳算法被用于預測的未來輸入向量。

圖6示出遺傳交叉被用于預測的未來輸入向量的圖2的方法的一部分的示例實現(xiàn)300。執(zhí)行初始推測以確定將額外ALU中被用作針對函數(shù)的輸入的推測性輸入向量(框302)。執(zhí)行檢查以確定是否調度函數(shù)以在即將到來的處理周期內計算(框304)。如果不調度函數(shù)以計算,則計算裝置10等待另一個周期(框306)。否則,如果調度函數(shù)以在即將到來的周期內計算(框304為“是”),則計算裝置10確定被選擇作為輸入的所選輸入向量中的任一個是否已緩存針對所述函數(shù)的結果(框308)。

如果所選輸入向量中的任一個已緩存輸出,則在調度處理周期之后,計算裝置10使針對那些緩存結果中的每個的適合度得分遞增,并且將適合度得分分配給緩存結果及其對應輸入向量(框310)。如果預定義數(shù)量的適合度得分已遞增(框312為“是”),則計算裝置選擇具有適合度得分的兩個輸入向量(框314),并且執(zhí)行遺傳交叉,以確定將在隨后處理周期內用作針對函數(shù)的輸入的兩個新輸入向量(框316)??蛇x地,計算裝置將變異算子應用至新輸入向量中的一個或兩個。

再次參照框314,在一個或更多個實施方式中,根據(jù)先前輸入向量的適合度得分的分布執(zhí)行具有適合度得分的兩個輸入向量的選擇。這可以包括選擇具有兩個最高適合度得分的兩個輸入向量,或從處于適合度值分布的最上區(qū)域(指示那些輸入向量比其它輸入向量更多地被請求作為函數(shù)輸出)處的輸入向量池選擇兩個輸入向量。

現(xiàn)在將關于利用函數(shù)f(x,y,a,b,z)(該函數(shù)例如可以在生物醫(yī)學應用中用于計算針對不同窗口大小的串中的字符的同現(xiàn)并且將那些同現(xiàn)與特定值進行比較)的自然語言處理示例描述圖6的過程300。函數(shù)的變量表示以下內容:

-“x”是字符串;

-“y”是窗口大?。?/p>

-“a”是將在比較中使用的第一字符;

-“b”是將在比較中使用的第二字符;以及

-“z”是與同現(xiàn)的數(shù)量相比較的值。

還假定函數(shù)f(x,y,a,b,z)取大小為“y”的“x”的所有子串“s”,并且如果a和b出現(xiàn)在s中,則將c(s,a,b)=1應用至子串“s”。即,如果a和b兩者出現(xiàn)在子串s中,則確定為1。否則,確定為0。在對針對每個子串的所產生值求和之后,函數(shù)f將它們與值z進行比較,并且詢問比較是真還是假。

假定最初使用具有以下元素的輸入向量:

-x=″ADCEADFEBACED″

-y=3

-a=′A′

-b=′C′

-z=4.

這可以以更傳統(tǒng)的向量形式(如"ADCEADFEBACED″,3,′A′,′C′,4)示出。該輸入向量在圖5中被示出為40。將這些值插入到函數(shù)f中可以用以下表達式來表示。

f(ADCEADFEBACED,3,′A′,′C′,4)

分析三個字符(y=3)的第一個窗口,該第一個窗口對應于第一個子串“ADC”。因為‘A’和‘C’都出現(xiàn)在子串“ADC”中,所以產生1(參見下面括號中的第一個“1”)。三個字符的第二個子串為“DCE”。因為‘A’和‘C’都未出現(xiàn)在該子串中,所以產生0(參見下面括號中的第一個“0”)。第三個子串為“CEA"。因為‘A’和‘C’都出現(xiàn)在該子串中,所以產生1(參見下面括號中的第二個“1”)。這針對串x中的三個連續(xù)字符的每個子串繼續(xù)。由此,當使用輸入向量40時的函數(shù)f詢問以下內容:

(1+0+1+0+0+0+0+0+0+1+0)>4?

這可以被重述為詢問3>4是否為真。因為這不為真,所以將由使用上述輸入向量的函數(shù)輸出0。輸出值0將連同輸入向量一起被存儲在高速緩沖存儲器16中。

當將針對給定輸入向量執(zhí)行f的計算時,計算裝置10檢查高速緩沖存儲器16,以查看是否已針對該輸入向量計算了函數(shù)f。如果緩存了期望輸出,則可以返回緩存的輸出結果,代替用輸入向量重新計算f。每次這發(fā)生時,都使針對該輸入向量的適合度得分遞增。下面示出包括輸入向量、其函數(shù)輸出(“假”)及其適合度得分(“1”)的緩存項。

((″ADCEADFEBACED″,3,′A′,′C′,4),假,1)。

如果再次請求使用針對所述函數(shù)的輸入向量,則將再次返回緩存的輸出,并且使適合度得分再次遞增(例如,遞增1)。

如果高速緩沖存儲器16變滿,則可以選擇單獨緩存的輸入向量(及其對應輸出)用于替換(例如,通過根據(jù)適合度得分的適合度分布隨機地采樣)。由此,因為具有較低(或最低)適合度得分的緩存項不太頻繁地被使用,所以可以替換具有較低(或最低)適合度得分的緩存項。

如果調度陣列處理器14以在給定處理周期期間計算函數(shù),并且陣列處理器14的ALU在該處理周期期間可用,則調度預測的未來輸入值(參見圖2的框108)。這可以包括從可能輸入向量的已知集合隨機地選擇輸入向量,或者可以包括隨機地生成輸入向量。例如,可以隨機地生成輸入向量(″BDCEEDFEDACAD″,5,′D′,′C′,2)用于使用。該輸入向量在圖6中被示出為60。

一個或更多個遺傳算法(諸如兩個輸入變量之間的遺傳交叉、或單個輸入向量的元素的變異)可以被應用以確定另外預測的未來輸入向量?,F(xiàn)在將論述應用遺傳交叉和變異的示例。假定以上輸入向量40、60中的每個已被使用,并且因此具有適合度得分?;谀切┻m合度得分,選擇兩個輸入向量40、60以用于執(zhí)行遺傳交叉。

圖7中示出輸入向量40、60的遺傳交叉。首先,并置每個輸入向量以形成串42、62。然后,針對每個串選擇相同交叉點。在圖7的示例中,隨機地選擇交叉點6(參見附圖標記44、64)。交叉點44的使用將串42劃分為子串46和48。類似地,交叉點64的使用將串62劃分為子串66和68。

然后,執(zhí)行在子串的相應交叉點處交換子串以產生新串50、70的交叉。串50包括區(qū)段46和68,并且串70包括區(qū)段66和48。然后,串50被格式化為輸入向量52,并且串70被格式化為輸入向量72。每個輸入向量52、71被分配有適合度得分0。在一個示例中,不分配適合度得分,直到輸入向量52、72在處理周期內實際上被用作函數(shù)輸入之后為止。

由此,在一些實施方式中,確定多個預測的未來輸入向量(圖2的框106)包括:選擇已在一個或更多個處理周期內已被用作針對給定函數(shù)的輸入的一個或更多個先前輸入向量,以及將一個或更多個遺傳算法應用至一個或更多個先前輸入向量,以確定多個預測的未來輸入向量的至少一部分。例如,遺傳算法可以用于預測圖3的一些ALU 32的輸入向量,并且可以隨機地預測其它輸入向量。

而且,如上所述,在一些實施方式中,可以使用適合度得分,在每次輸入向量被選擇為針對給定函數(shù)的輸入時,使針對給定輸入向量的適合度得分遞增。在一些這樣的實施方式中,基于先前輸入值的適合度得分來執(zhí)行已被用作針對給定函數(shù)的輸入的一個或更多個先前輸入向量的選擇(圖6的框314)。

在圖7的示例中,將遺傳算法應用至先前輸入向量40、60的特征在于:對兩個先前輸入向量40、60執(zhí)行遺傳交叉,以確定兩個不同的新輸入向量52、72。在相同或其它實施方式中,應用遺傳算法的特征在于:將變異算子應用至新輸入向量52、72中的一個或更多個元素(或應用至先前輸入向量40、60)。一些示例變異算子包括:用隨機值替換輸入向量的元素的值,對輸入向量的元素的值求反,使輸入向量的元素的值增加預定義量,并且使輸入向量的元素的值減小預定義量。例如,可以通過將輸入向量40中的“3”改變?yōu)椤?”將變異算子應用至輸入變量40,這改變上述函數(shù)f的輸出。

當然,將理解,上述示例僅是非限制性示例,并且可以應用使用相同或不同遺傳算子、交叉點以及變異的各種其它遺傳算法。例如,可以使用包括以下遺傳算子的各種組合的一些另外遺傳算法:求反、多點交叉、三父輩交叉以及均勻交叉。作為另外示例,還可以使用的一些另外遺傳算子包括通過將群體劃分為子群體(例如,再分組、殖民-滅絕或遷移)工作于群體等級的算子。因為這種遺傳算子和遺傳算法對于本領域普通技術人員來說是已知的,所以這里不詳細論述它們。

因為空余計算資源被利用而不是空閑,所以針對許多內核處理器(或甚至具有多個ALU的單核處理器)執(zhí)行上述數(shù)據(jù)推測以確定預測的未來輸入向量并且然后使用這樣的計算裝置上的充??沼嗵幚砟芰媚切┹斎胂蛄坑嬎愫瘮?shù)輸出可以是有利的。而且,如果推測被很好地執(zhí)行,并且預測的未來輸入向量在未來被請求作為函數(shù)輸入,則它們的值可以從高速緩沖存儲器快速地返回,而不是被重新計算。這些技術對于具有數(shù)百或數(shù)千個可用ALU的GPU陣列處理器來說是特別有用的。

而且,雖然在以上各種示例中已經(jīng)提及圖1的計算裝置10,但是將理解,圖1的計算裝置10僅是非限制性示例,并且可以使用包括具有多個ALU的陣列處理器的其它計算裝置。

當然,在不脫離本公開的基本特征的情況下,本公開可以以除了這里具體闡述的那些方式之外的其它方式來實現(xiàn)。本實施方式在所有方面都被認為是示例性的且不是限制性的,并且在所附權利要求的意義和等同范圍內的所有改變旨在包含在其中。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
始兴县| 武邑县| 陇南市| 山东| 湟中县| 山丹县| 益阳市| 徐州市| 长阳| 鄂尔多斯市| 洮南市| 潍坊市| 宁波市| 德惠市| 拜泉县| 赤峰市| 洛阳市| 河北区| 韶山市| 密云县| 荔浦县| 德化县| 城固县| 抚宁县| 裕民县| 巴彦淖尔市| 昌图县| 松阳县| 彝良县| 饶阳县| 抚宁县| 怀化市| 怀来县| 信阳市| 蒙城县| 福清市| 平远县| 平顶山市| 阿克| 游戏| 渝北区|