亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有減小的帶寬要求的矩陣乘法的制作方法

文檔序號(hào):6608633閱讀:296來(lái)源:國(guó)知局
專利名稱:具有減小的帶寬要求的矩陣乘法的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例大體上涉及使用多線程處理或向量處理來(lái)執(zhí)行矩陣乘法,且更具體來(lái)說(shuō)涉及減小存儲(chǔ)器帶寬。
背景技術(shù)
矩陣-矩陣乘法是高性能計(jì)算領(lǐng)域中許多計(jì)算的重要構(gòu)成塊。用于執(zhí)行矩陣-矩陣乘法的每個(gè)乘法-加法運(yùn)算均需要存取存儲(chǔ)器中的兩個(gè)源操作數(shù)。因此,在同時(shí)執(zhí)行T個(gè)線程(每個(gè)線程執(zhí)行一乘法-加法運(yùn)算)的多線程處理器中,需要2T個(gè)存儲(chǔ)器操作數(shù)來(lái)供給用于運(yùn)算的乘法部分的操作數(shù)。類(lèi)似地,在并行執(zhí)行T個(gè)數(shù)據(jù)通道的向量處理器(例如,T通道單指令多數(shù)據(jù)(SIMD)向量處理器)中,每個(gè)向量乘法-加法需要2T個(gè)存儲(chǔ)器操作數(shù)。一般來(lái)說(shuō),提供用于2T個(gè)同時(shí)存取的存儲(chǔ)器帶寬隨著T增加而逐漸變難,且因此矩陣乘法對(duì)于充分大的T來(lái)說(shuō)存儲(chǔ)器帶寬變得有限。這限制了處理裝置針對(duì)矩陣乘法的整體計(jì)算性能。
因此,期望減小供給用于乘法-加法運(yùn)算所需的存儲(chǔ)器帶寬,以改進(jìn)針對(duì)矩陣乘法的計(jì)算性能。

發(fā)明內(nèi)容
本發(fā)明涉及用于使用多線程處理器減小矩陣乘法的存儲(chǔ)器帶寬要求的新的系統(tǒng)和方法。通過(guò)以在矩陣乘法的給定步驟中,T個(gè)執(zhí)行線程群組或T個(gè)向量通道對(duì)其各自乘法-加法運(yùn)算共享兩個(gè)源操作數(shù)中的一個(gè)的方式執(zhí)行兩個(gè)矩陣的乘法,可減小存儲(chǔ)器帶寬要求。通過(guò)在多線程處理裝置內(nèi)包括操作數(shù)傳播機(jī)制來(lái)利用此方法。傳播機(jī)制允許將一個(gè)存儲(chǔ)位置的內(nèi)容傳播到線程群組中的所有T個(gè)線程或向量中的所有T個(gè)通道,在該處所述值可用作執(zhí)行指令的源操作數(shù),所述執(zhí)行指令包括構(gòu)成乘法-加法運(yùn)算的一個(gè)或多個(gè)指令。所述機(jī)制提供軟件方式來(lái)控制此傳播傳遞。當(dāng)使用傳播機(jī)制時(shí),可減小執(zhí)行例如乘法-加法的運(yùn)算所需的存儲(chǔ)器帶寬要求。
對(duì)于每個(gè)同時(shí)執(zhí)行的乘法-加法運(yùn)算,與使用執(zhí)行矩陣乘法的常規(guī)方法時(shí)的2T個(gè)存儲(chǔ)器位置相反,線程群組的T個(gè)執(zhí)行線程僅存取T+1個(gè)存儲(chǔ)器位置。當(dāng)存儲(chǔ)器帶寬受限時(shí),減小獲得用于矩陣乘法運(yùn)算的操作數(shù)所需的存儲(chǔ)器帶寬可改進(jìn)矩陣乘法性能。此外,可改進(jìn)其它的存儲(chǔ)器帶寬受限的運(yùn)算的性能。
本發(fā)明的用于執(zhí)行線程群組中多個(gè)線程的程序指令的方法的各種實(shí)施例包括獲得由所述程序指令包括的傳播操作數(shù)規(guī)定的第一值和獲得由所述程序指令包括的并行操作數(shù)規(guī)定的一組第二值,其中所述第二值中的每一者均對(duì)應(yīng)于所述線程群組中多個(gè)線程中的一者。將所述第一值提供到多個(gè)程序指令執(zhí)行單元,將所述第二值提供到所述多個(gè)程序指令執(zhí)行單元,且針對(duì)所述線程群組中多個(gè)線程中的每一者執(zhí)行所述程序指令。
本發(fā)明的用于將第一矩陣與第二矩陣的第一列相乘以產(chǎn)生乘積矩陣的第一列的方法的各種實(shí)施例包括將第一矩陣的第一列的每個(gè)元素乘以第二矩陣的第一列的第一元素以產(chǎn)生對(duì)應(yīng)于乘積矩陣的第一列的第一元素群組,將對(duì)應(yīng)于乘積矩陣的列的第一元素群組存儲(chǔ)在一組寄存器中,將第一矩陣的第二列的每個(gè)元素乘以第二矩陣的第一列的第二元素以產(chǎn)生對(duì)應(yīng)于乘積矩陣的第一列的第二元素群組,將所存儲(chǔ)的元素群組中的每個(gè)元素與第二元素群組中的相應(yīng)元素求和以產(chǎn)生乘積矩陣的第一列內(nèi)的乘積元素群組,和將所述乘積元素群組存儲(chǔ)在所述組寄存器中。


為了能詳細(xì)理解上文陳述的本發(fā)明的特征,參考實(shí)施例可獲得上文簡(jiǎn)要概述的本發(fā)明的更特定描述,所述實(shí)施例中的某些在附圖中有說(shuō)明。然而應(yīng)注意,附圖僅說(shuō)明本發(fā)明的典型實(shí)施例,且因此不應(yīng)視為限制本發(fā)明的范圍,本發(fā)明可允許其它同樣有效的實(shí)施例。
圖1A說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的經(jīng)相乘以產(chǎn)生矩陣C的矩陣A和矩陣B的概念圖。
圖1B說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的將矩陣A與矩陣B相乘以產(chǎn)生矩陣C的示范性方法的流程圖。
圖1C說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的接收并行操作數(shù)和傳播操作數(shù)的多個(gè)執(zhí)行單元的概念方框圖。
圖2說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的執(zhí)行包括傳播操作數(shù)的指令的示范性方法的流程圖。
具體實(shí)施例方式
在以下描述中,陳述多種特定細(xì)節(jié)來(lái)提供對(duì)本發(fā)明的更徹底的理解。然而,所屬領(lǐng)域的技術(shù)人員將明了,可在沒(méi)有這些特定細(xì)節(jié)中的一個(gè)或一個(gè)以上細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其它情況下,為了避免混淆本發(fā)明,沒(méi)有描述眾所周知的特征。
圖1A說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的經(jīng)相乘以產(chǎn)生矩陣C 103的矩陣A 101和矩陣B 102的概念圖。常規(guī)上,使用矩陣A 101的行和矩陣B 102的列中的元素來(lái)計(jì)算點(diǎn)乘積,以產(chǎn)生矩陣C 103的列的元素。舉例來(lái)說(shuō),矩陣A 101的行107中的元素和矩陣B 102的列105中的元素(例如,131、132和146)用于產(chǎn)生矩陣C 103的列104中的元素152。當(dāng)常規(guī)系統(tǒng)中使用多個(gè)執(zhí)行線程來(lái)產(chǎn)生矩陣C 103,其中每個(gè)線程產(chǎn)生矩陣C的一元素時(shí),每個(gè)線程讀取來(lái)自矩陣A 101的元素和來(lái)自矩陣B 102的元素,以執(zhí)行產(chǎn)生矩陣C 103的列(或行)的連續(xù)乘法-加法運(yùn)算。如先前描述,在常規(guī)系統(tǒng)中,當(dāng)并行處理T個(gè)線程時(shí),對(duì)于乘法-加法運(yùn)算中的每次運(yùn)算來(lái)說(shuō)均讀取2T個(gè)元素。
在本發(fā)明中,不是讀取來(lái)自矩陣A 101的多個(gè)元素和來(lái)自矩陣B 102的多個(gè)元素以產(chǎn)生矩陣C 103的列,而是讀取矩陣A 101的列和矩陣B 102的單個(gè)元素來(lái)產(chǎn)生矩陣C 103的部分點(diǎn)乘積的列。舉例來(lái)說(shuō),可讀取列106和列105的元素131并相乘以產(chǎn)生乘積列。接著將乘積列,即,元素111和元素131的乘積、元素112和元素131的乘積、元素113和元素131的乘積、元素114和元素131的乘積等等,與列104求和以更新列104的部分點(diǎn)乘積。使用矩陣A 101的列和矩陣B 102的列105的元素來(lái)計(jì)算額外的乘積列。額外的乘積列隨著部分點(diǎn)乘積列而依次累積,直到部分點(diǎn)乘積列完成為止。因此,每個(gè)線程讀取來(lái)自矩陣A 101的一列的元素,且來(lái)自矩陣B 102的一行的單個(gè)元素被讀取并由所有線程共享以執(zhí)行乘法-加法。經(jīng)讀取以產(chǎn)生矩陣C 103的每個(gè)部分點(diǎn)乘積列的輸入矩陣元素的數(shù)目從2T減少到T+1。從矩陣B 102讀取的每個(gè)元素被傳播到T個(gè)線程以乘以矩陣A 101的列的元素。
圖1B說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的將矩陣A與矩陣B相乘以產(chǎn)生矩陣C的示范性方法的流程圖。在步驟170中,初始化存儲(chǔ)矩陣C 103的元素的寄存器或存儲(chǔ)器位置。舉例來(lái)說(shuō),可將每個(gè)元素初始化為0值。在步驟171中,將矩陣A 101的第一列中的每個(gè)元素乘以矩陣B 102的列中的一個(gè)元素。舉例來(lái)說(shuō),第一線程將元素111乘以元素131,第二線程將元素112乘以元素131等等,以產(chǎn)生乘積元素列。在步驟172中,將步驟171中產(chǎn)生的每個(gè)乘積元素與矩陣C 103的列中的相應(yīng)元素求和。舉例來(lái)說(shuō),將元素111與131的乘積與元素151求和以累積部分點(diǎn)乘積。
在步驟173中,所述方法判定矩陣B 102的列中是否存在另一元素。舉例來(lái)說(shuō),在已使用元素131累積矩陣C 103的列104的部分點(diǎn)乘積之后,將使用元素132,依此類(lèi)推,直到使用列中的最后的元素——元素146為止。如果在步驟173中所述方法判定已使用矩陣B 102的列中的所有元素,那么所述方法繼續(xù)進(jìn)行到步驟175。否則,在步驟174中所述方法獲得矩陣B 102的列中的下一元素并獲得矩陣A 174的下一列,且重復(fù)步驟171、172和173以將另一乘積累積到矩陣C 103的列104的每個(gè)部分點(diǎn)乘積中。不需要以任何特定次序使用矩陣B 102的列中的元素,只要使用每個(gè)元素來(lái)產(chǎn)生與矩陣A 101的相應(yīng)列的乘積。
在步驟175中,所述方法判定矩陣B 102中是否存在另一列,且如果不存在,那么所述方法繼續(xù)進(jìn)行到步驟177且矩陣乘法運(yùn)算完成。否則,在步驟176中所述方法獲得矩陣B 102的未使用的列并獲得矩陣A 101的第一列。重復(fù)步驟171、172、173和174以產(chǎn)生矩陣C 103的另一列。
圖1C說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的各自接收傳播操作數(shù)的多個(gè)程序指令執(zhí)行單元的概念方框圖。所述多個(gè)程序指令執(zhí)行單元可經(jīng)配置以減小獲得源操作數(shù)(即,矩陣A 101和矩陣B 102的元素)以產(chǎn)生矩陣C 103所需的帶寬。每個(gè)程序指令執(zhí)行單元(執(zhí)行單元180、181、182、183、184、185、186和187)經(jīng)配置以產(chǎn)生矩陣C 103的至少一個(gè)元素。執(zhí)行單元180、181、182、183、184、185、186和187可經(jīng)配置以并行執(zhí)行程序指令。舉例來(lái)說(shuō),所述執(zhí)行單元中的每個(gè)執(zhí)行單元可處理一群組多個(gè)線程內(nèi)的線程,以并行執(zhí)行多個(gè)線程的程序指令,例如,在多線程處理器中。在另一實(shí)例中,所述執(zhí)行單元中的每個(gè)執(zhí)行單元可處理一群組多個(gè)通道中的通道,以并行執(zhí)行多個(gè)通道的程序指令,例如,在單指令多數(shù)據(jù)(SIMD)向量處理器中。
每個(gè)執(zhí)行單元接收來(lái)自并行操作數(shù)190的一個(gè)唯一的并行操作數(shù)。矩陣A 101的元素可為并行操作數(shù)。每個(gè)執(zhí)行單元還接收來(lái)自傳播操作數(shù)191的一個(gè)傳播操作數(shù)。同一傳播操作數(shù)由傳播操作數(shù)191輸出到每個(gè)執(zhí)行單元。矩陣B 102的元素可為傳播操作數(shù)。在本發(fā)明的其它實(shí)施例中,顛倒矩陣A 101和矩陣B 102,且矩陣A 101提供傳播操作數(shù),矩陣B 102提供并行操作數(shù)。
對(duì)于每個(gè)同時(shí)執(zhí)行的乘法-加法運(yùn)算,與使用執(zhí)行矩陣乘法的常規(guī)方法時(shí)的2T個(gè)存儲(chǔ)器位置相反,T個(gè)執(zhí)行單元僅存取T+1個(gè)存儲(chǔ)器位置。當(dāng)使用傳播機(jī)制時(shí),可減小執(zhí)行例如乘法-加法的運(yùn)算所需的存儲(chǔ)器帶寬要求。因此,當(dāng)處理性能受存儲(chǔ)器帶寬限制時(shí),可通過(guò)使用傳播機(jī)制使性能改進(jìn)可能幾乎兩倍。盡管在矩陣-矩陣乘法(特定來(lái)說(shuō),乘法-加法運(yùn)算)的情形中描述了傳播機(jī)制,但也可使用傳播機(jī)制來(lái)執(zhí)行多線程處理期間的其它運(yùn)算。其它運(yùn)算的實(shí)例包括求最小值、求最大值、加法、減法、絕對(duì)差求和、平方差求和、乘法和除法。
常規(guī)的處理系統(tǒng)通過(guò)細(xì)分可能處于若干級(jí)別的運(yùn)算以有效利用由具有不同性能(例如,處理量、等待時(shí)間或類(lèi)似性能)的存儲(chǔ)器裝置組成的存儲(chǔ)器體系的多個(gè)級(jí)別,來(lái)執(zhí)行矩陣-矩陣乘法。所述細(xì)分導(dǎo)致將大矩陣的矩陣乘法分解為整個(gè)矩陣的若干部分(稱為瓷磚片(tile))的矩陣乘法。在耦合到存儲(chǔ)器體系的具有不同速度的至少兩個(gè)級(jí)別的處理裝置上,可通過(guò)將來(lái)自存儲(chǔ)在存儲(chǔ)器體系的較慢級(jí)別中的兩個(gè)源矩陣的瓷磚片復(fù)制到存儲(chǔ)器體系的較快級(jí)別、將所述瓷磚片相乘得到結(jié)果瓷磚片、并將結(jié)果瓷磚片復(fù)制回到存儲(chǔ)在存儲(chǔ)器體系的所述較慢級(jí)別中的結(jié)果矩陣的適當(dāng)部分,來(lái)加速矩陣乘法。
用于執(zhí)行矩陣乘法的分片技術(shù)是所屬領(lǐng)域的技術(shù)人員已知的。本發(fā)明的系統(tǒng)和方法可應(yīng)用于計(jì)算乘積矩陣的每個(gè)瓷磚片中的元素。特定地,可使用傳播機(jī)制計(jì)算瓷磚片的元素,其中矩陣A 101、矩陣B 102和矩陣C 103各自為較大矩陣的瓷磚片。類(lèi)似地,將矩陣-向量乘法歸類(lèi)為一個(gè)維度是單位元素的矩陣的特殊情況。
圖2說(shuō)明根據(jù)本發(fā)明一個(gè)或一個(gè)以上方面的執(zhí)行包括傳播操作數(shù)的指令的示范性方法的流程圖。在步驟200中,所述方法接收包括用于多線程處理的一個(gè)或一個(gè)以上操作數(shù)的指令。在步驟205中,所述方法判定第一操作數(shù)是否為傳播操作數(shù)??墒褂枚喾N技術(shù)來(lái)規(guī)定特定操作數(shù)為傳播操作數(shù)。一個(gè)此種技術(shù)是定義包括由指令格式規(guī)定為傳播操作數(shù)的操作數(shù)的指令。舉例來(lái)說(shuō),可定義兩個(gè)不同的載入指令,一個(gè)包括并行操作數(shù)且另一個(gè)包括傳播操作數(shù)。
表1中所示的代碼表示用于如圖1C所示的多線程或向量處理器的T個(gè)并行執(zhí)行單元的一組運(yùn)算或指令,可用于執(zhí)行T個(gè)用于矩陣-矩陣乘法的乘法-加法運(yùn)算。
表1

LD指令包括用于T個(gè)線程或T個(gè)向量通道的并行操作數(shù),其規(guī)定每個(gè)線程或通道的存儲(chǔ)器地址A1+offsetA,其中A1可為矩陣瓷磚片、矩陣、列或類(lèi)似物的基地址,且offsetA可為特定列或列的一部分的偏移量。offsetA可省略。有效地址隨每個(gè)線程或通道而變化,例如,T個(gè)地址寄存器A1(每個(gè)線程或通道一個(gè))針對(duì)每個(gè)線程或通道以不同地址初始化。將存儲(chǔ)在由T個(gè)地址A1+offsetA規(guī)定的T個(gè)存儲(chǔ)器位置中的T個(gè)元素載入每個(gè)執(zhí)行單元的寄存器A。處理線程或通道的每個(gè)執(zhí)行單元讀取不同的存儲(chǔ)器位置。因此,地址A1+offsetA可隨著唯一的線程或通道識(shí)別符而變化,以針對(duì)每個(gè)線程或通道規(guī)定不同的存儲(chǔ)器位置。舉例來(lái)說(shuō),每個(gè)線程或通道中的地址寄存器A1以隨線程或通道識(shí)別符變化的不同地址而初始化。
LDB指令包括規(guī)定存儲(chǔ)器地址A2+offsetB的傳播操作數(shù),其中A2可為矩陣瓷磚片、矩陣、列或類(lèi)似物的基地址,且offsetB可為特定列或列的一部分的偏移量。將存儲(chǔ)在由A2+offsetB規(guī)定的存儲(chǔ)器位置中的元素載入每個(gè)執(zhí)行單元的寄存器B。不同于其中A1+offsetA針對(duì)每個(gè)線程或通道具有不同值的LD指令,A2+offsetB針對(duì)線程群組中的所有線程或向量中的所有通道均具有相同的值。最終,每個(gè)執(zhí)行單元執(zhí)行FMAD(浮點(diǎn)乘法累積)指令以使用寄存器A、B和C執(zhí)行乘法-加法功能。在本發(fā)明的其它實(shí)施例中,使用IMAD(整數(shù)乘法累積)指令來(lái)執(zhí)行乘法-加法功能。在本發(fā)明的另外的實(shí)施例中,可用指令表示另一計(jì)算(例如,加法、減法或類(lèi)似計(jì)算)以基于傳播操作數(shù)產(chǎn)生結(jié)果。
在本發(fā)明的某些實(shí)施例中,可使用較少指令實(shí)現(xiàn)表1中所示運(yùn)算組所提供的功能性。舉例來(lái)說(shuō),可將LD和LDB指令組合成單個(gè)指令,其以雙發(fā)射(dual issue)方式具有用于并行執(zhí)行的FMAD指令。在另一實(shí)例中,LD、LDB和FMAD指令可組合形成組合的寬指令,其被提供到多個(gè)執(zhí)行單元進(jìn)行并行執(zhí)行。
可用于規(guī)定特定操作數(shù)為傳播操作數(shù)的另一技術(shù)是定義處在傳播存儲(chǔ)器區(qū)域內(nèi)的特殊存儲(chǔ)器地址。舉例來(lái)說(shuō),在表1中,可用LD指令替代LDB指令,其中A2+offsetB對(duì)應(yīng)于傳播存儲(chǔ)器區(qū)域內(nèi)的存儲(chǔ)器地址。當(dāng)規(guī)定了傳播存儲(chǔ)器區(qū)域內(nèi)的地址時(shí),僅讀取一個(gè)存儲(chǔ)器位置,且將存儲(chǔ)在所述一個(gè)位置中的數(shù)據(jù)傳播到目的地(B)的每個(gè)字段。
可用于規(guī)定特定操作數(shù)為傳播操作數(shù)的又一技術(shù)是定義傳播到每個(gè)執(zhí)行單元的特定寄存器。舉例來(lái)說(shuō),在表1中,LDB指令將載入單個(gè)寄存器(例如,寄存器B)而不是將存儲(chǔ)在由A2+offsetB規(guī)定的存儲(chǔ)器位置中的元素傳播到每個(gè)執(zhí)行單元。寄存器B將被規(guī)定為傳播寄存器,且當(dāng)寄存器B被規(guī)定為用于指令(例如表1中的FMAD指令)的操作數(shù)時(shí),存儲(chǔ)在寄存器B中的值被傳播到每個(gè)執(zhí)行單元以便執(zhí)行所述指令。
如果在步驟205中所述方法判定第一操作數(shù)是傳播操作數(shù),那么在步驟210中所述方法讀取由所述操作數(shù)規(guī)定的單個(gè)值。在步驟215中,將所述單個(gè)值傳播到執(zhí)行單元中的每個(gè)執(zhí)行單元。在本發(fā)明的規(guī)定一個(gè)或一個(gè)以上傳播寄存器的實(shí)施例中,將所述單個(gè)值載入傳播寄存器且隨后傳播到執(zhí)行單元。如果在步驟205中所述方法判定第一操作數(shù)不是傳播操作數(shù),即,第一操作數(shù)是并行操作數(shù),那么在步驟220中所述方法讀取由所述操作數(shù)規(guī)定的值。用于每個(gè)線程或通道的每個(gè)執(zhí)行單元可讀取不同的值,即,值的數(shù)目等于執(zhí)行的線程或通道的數(shù)目。在步驟225中,將讀取的值輸出(并行)到執(zhí)行單元。
在步驟230中所述方法判定是否為所述指令規(guī)定了另一操作數(shù),且如果是這樣,那么所述方法返回到步驟205。否則,所述方法繼續(xù)執(zhí)行所述指令以使用提供到執(zhí)行單元的并行和/或傳播值產(chǎn)生結(jié)果。請(qǐng)注意,所述指令可能表示單個(gè)運(yùn)算,例如載入或計(jì)算,或者所述指令可能表示運(yùn)算的組合,例如多個(gè)載入和/或計(jì)算。
所屬領(lǐng)域的技術(shù)人員將了解,任何經(jīng)配置以執(zhí)行圖1B或圖2的方法步驟或其均等物的系統(tǒng)均在本發(fā)明的范圍內(nèi)。通過(guò)以在矩陣乘法的給定步驟中,T個(gè)執(zhí)行線程群組或通道對(duì)其各自乘法-加法運(yùn)算共享兩個(gè)源操作數(shù)中的一個(gè)的方式執(zhí)行兩個(gè)矩陣的乘法,可減小存儲(chǔ)器帶寬要求。通過(guò)在并行處理裝置(例如,多線程處理器或SIMD向量處理器)內(nèi)包括操作數(shù)傳播機(jī)制來(lái)利用此方法。
傳播機(jī)制允許將一個(gè)存儲(chǔ)位置的內(nèi)容傳播到線程群組中的所有T個(gè)線程(或SIMD向量處理器中的所有T個(gè)通道),在該處所述值可用作源操作數(shù)以執(zhí)行包括用于執(zhí)行矩陣運(yùn)算的一個(gè)或多個(gè)指令的指令。軟件可通過(guò)規(guī)定傳播存儲(chǔ)器區(qū)域和包括一個(gè)或一個(gè)以上傳播操作數(shù)的程序指令來(lái)控制此傳播傳遞。當(dāng)使用傳播機(jī)制時(shí),可減小執(zhí)行例如乘法-加法的運(yùn)算所需的存儲(chǔ)器帶寬要求,藉此當(dāng)存儲(chǔ)器帶寬受限時(shí)改進(jìn)性能。
雖然上述內(nèi)容針對(duì)本發(fā)明的實(shí)施例,但在不脫離本發(fā)明基本范圍的情況下可設(shè)計(jì)本發(fā)明的其它和另外的實(shí)施例,且本發(fā)明的范圍由隨附的權(quán)利要求書(shū)決定。因此上述描述和圖式被視為說(shuō)明性的而不是限制性的意義。方法項(xiàng)中步驟的列出不意味著以任何特定次序執(zhí)行所述步驟,除非權(quán)利要求中已明確規(guī)定。
所有商標(biāo)都是其擁有者的個(gè)人財(cái)產(chǎn)。
權(quán)利要求
1.一種執(zhí)行包括用于多個(gè)線程或通道的傳播操作數(shù)的一組運(yùn)算的方法,其包含獲得由所述組運(yùn)算包括的所述傳播操作數(shù)規(guī)定的第一值;將所述第一值提供到多個(gè)程序指令執(zhí)行單元;獲得由所述組運(yùn)算包括的并行操作數(shù)規(guī)定的一組第二值,其中所述第二值中的每一者均對(duì)應(yīng)于所述多個(gè)線程或通道中的一者;將所述組第二值中的一個(gè)第二值提供到所述多個(gè)程序指令執(zhí)行單元中的每一者;和針對(duì)所述多個(gè)線程或通道中的每一者執(zhí)行所述組運(yùn)算。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含基于針對(duì)所述組運(yùn)算規(guī)定的格式來(lái)判定所述組運(yùn)算中包括的存儲(chǔ)器操作數(shù)是傳播操作數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含基于針對(duì)存儲(chǔ)器操作數(shù)規(guī)定的地址來(lái)判定所述組運(yùn)算中包括的所述存儲(chǔ)器操作數(shù)是傳播操作數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含基于針對(duì)源操作數(shù)規(guī)定的寄存器來(lái)判定所述組運(yùn)算中包括的所述源操作數(shù)是傳播操作數(shù)。
5.根據(jù)權(quán)利要求1所述的方法,其中以定點(diǎn)數(shù)據(jù)格式表示所述第一值和所述第二值。
6.根據(jù)權(quán)利要求1所述的方法,其中以浮點(diǎn)數(shù)據(jù)格式表示所述第一值和所述第二值。
7.根據(jù)權(quán)利要求1所述的方法,其中所述組運(yùn)算包括乘法-加法運(yùn)算。
8.根據(jù)權(quán)利要求1所述的方法,其中將所述組運(yùn)算表示為包括所述傳播操作數(shù)、所述并行操作數(shù)和用于基于所述傳播操作數(shù)產(chǎn)生結(jié)果的計(jì)算的單個(gè)程序指令。
9.根據(jù)權(quán)利要求1所述的方法,其中將所述組運(yùn)算表示為包括所述傳播操作數(shù)和所述并行操作數(shù)的第一載入程序指令及規(guī)定用于基于所述傳播操作數(shù)產(chǎn)生結(jié)果的計(jì)算的第二程序指令。
10.根據(jù)權(quán)利要求1所述的方法,其中將所述組運(yùn)算表示為包括所述傳播操作數(shù)的第一載入程序指令、包括所述并行操作數(shù)的第二載入程序指令,和規(guī)定用于基于所述傳播操作數(shù)產(chǎn)生結(jié)果的計(jì)算的第三程序指令。
11.根據(jù)權(quán)利要求1所述的方法,其中所述傳播操作數(shù)規(guī)定針對(duì)所述多個(gè)線程中的每一者均具有單個(gè)值的地址。
12.根據(jù)權(quán)利要求1所述的方法,其中所述并行操作數(shù)規(guī)定針對(duì)所述多個(gè)線程中的每一者均具有不同值的地址。
全文摘要
用于減小讀取矩陣乘法運(yùn)算的輸入所需的帶寬的系統(tǒng)和方法可改進(jìn)系統(tǒng)性能。不是讀取第一輸入矩陣的行和第二輸入矩陣的列以產(chǎn)生乘積矩陣的列,而是讀取第一輸入矩陣的列和第二輸入矩陣的單個(gè)元素以產(chǎn)生乘積矩陣的部分點(diǎn)乘積的列。因此,經(jīng)讀取以產(chǎn)生每個(gè)乘積矩陣元素的輸入矩陣元素的數(shù)目從2N減少到N+1,其中N為所述乘積矩陣的列中的元素的數(shù)目。
文檔編號(hào)G06F9/38GK101075185SQ20071009745
公開(kāi)日2007年11月21日 申請(qǐng)日期2007年4月29日 優(yōu)先權(quán)日2006年5月8日
發(fā)明者諾伯特·朱法, 約翰·R·尼科爾斯 申請(qǐng)人:輝達(dá)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1