版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(12)發(fā)明專利地址美國(guó)加利福尼亞州(72)發(fā)明人陳佳升鄒云曉(74)專利代理機(jī)構(gòu)上海勝康律師事務(wù)所31263具有低功率并行矩陣乘法流水線的流處理器本發(fā)明涉及一種具有低功率并行矩陣乘法矢量寄存器堆檢索的第一和第二組操作數(shù)的點(diǎn)外積操作的結(jié)果作為后續(xù)點(diǎn)積或外積操作的輸處理器流處理器存儲(chǔ)器設(shè)備21.一種用于執(zhí)行矩陣乘法操作的系統(tǒng),所述系統(tǒng)包括:耦合到所述第一矢量寄存器堆的第一執(zhí)行流水線,其中所述第一執(zhí)行流水線包括多個(gè)點(diǎn)積單元;其中,為了對(duì)包括二維或更多維的第一矩陣和包括二維或更多維的第二矩陣執(zhí)行矩陣僅將所述第一矩陣的每列和所述第二矩陣的每行提取入相應(yīng)的向量寄存器一次;使用所述多個(gè)點(diǎn)積單元,使用存儲(chǔ)在第一矢量寄存器和第二矢量寄存器中的值執(zhí)行外積操作;在第一周期中,通過(guò)使用所述第一矩陣的給定列的第一部分和所述第二矩陣的給定行的整體來(lái)計(jì)算中間矩陣的第一部分,該中間矩陣是所述第一矩陣的所述給定列和所述第二矩陣的所述給定行的外積;在所述第一周期之后的第二周期中,通過(guò)使用與所述給定列的第一部分和所述給定行的整體不同的第二部分來(lái)計(jì)算與所述中間矩陣的與所述第一部分不同的第二部分;以及累加由所述多個(gè)點(diǎn)積單元生成的值。2.如權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)還包括第二矢量寄存器堆,其中所述系統(tǒng)被配置為從所述第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供給所述第一執(zhí)行流水線。3.如權(quán)利要求2所述的系統(tǒng),其中,每個(gè)點(diǎn)積單元還被配置為將輸出寫入到所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。4.如權(quán)利要求1所述的系統(tǒng),其中所述第一執(zhí)行流水線還被配置為:在第一周期中,將給定列和給定行從所述第一矢量寄存器堆提取到多個(gè)存儲(chǔ)元件;和在所述多個(gè)存儲(chǔ)元件中存儲(chǔ)所述給定列和所述給定行,以供所述多個(gè)點(diǎn)積單元在所述第一周期之后的多個(gè)周期中重復(fù)使用,直到所述中間矩陣的每個(gè)元素被計(jì)算出。5.如權(quán)利要求4所述的系統(tǒng),其中所述系統(tǒng)還包括第二執(zhí)行流水線,其中所述系統(tǒng)還被配置為在所述第一周期之后的所述多個(gè)周期的任何周期中從所述第一矢量寄存器堆讀取第三矩陣的元素并且將所述第三矩陣的所述元素提供給所述第二執(zhí)行流水線。6.如權(quán)利要求1所述的系統(tǒng),其中所述第一執(zhí)行流水線還包括交叉開(kāi)關(guān),所述交叉開(kāi)關(guān)被配置為在將所述第一矩陣的元素發(fā)送到所述多個(gè)點(diǎn)積單元之前旋轉(zhuǎn)所述第一矩陣的所述元素,而所述第二矩陣的元素對(duì)于所述多個(gè)點(diǎn)積單元保持不變。7.一種用于執(zhí)行矩陣乘法操作的方法,其包括:通過(guò)下述方式通過(guò)多個(gè)執(zhí)行流水線的第一執(zhí)行流水線對(duì)包括二維或更多維的第一矩陣和包括二維或更多維的第二矩陣執(zhí)行矩陣乘法操作:僅將所述第一矩陣的每列和所述第二矩陣的每行提取入相應(yīng)的向量寄存器一次;使用多個(gè)點(diǎn)積單元,使用存儲(chǔ)在第一矢量寄存器和第二矢量寄存器中的值執(zhí)行外積操在第一周期中,通過(guò)使用所述第一矩陣的給定列的第一部分和所述第二矩陣的給定行的整體來(lái)計(jì)算中間矩陣的第一部分,該中間矩陣是所述第一矩陣的所述給定列和所述第二矩陣的所述給定行的外積;3在所述第一周期之后的第二周期中,通過(guò)使用與所述給定列的第一部分和所述給定行的整體不同的第二部分來(lái)計(jì)算與所述中間矩陣的與所述第一部分不同的第二部分;以及累加由所述多個(gè)點(diǎn)積單元生成的值。8.如權(quán)利要求7所述的方法,還包括從第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供給所述第一執(zhí)行流水線。9.如權(quán)利要求8所述的方法,其還包括將輸出寫入所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。在第一周期中,將給定列和給定行從第一矢量寄存器堆提取到多個(gè)存儲(chǔ)元件;和在所述多個(gè)存儲(chǔ)元件中存儲(chǔ)所述給定列和所述給定行,以供所述多個(gè)點(diǎn)積單元在所述第一周期之后的多個(gè)周期中重復(fù)使用,直到所述中間矩陣的每個(gè)元素被計(jì)算出。11.如權(quán)利要求10所述的方法,還包括在所述第一周期之后的所述多個(gè)周期的任何周期中從所述第一矢量寄存器堆讀取第三矩陣的元素并且將所述第三矩陣的所述元素提供給第二執(zhí)行流水線。12.如權(quán)利要求7所述的方法,還包括通過(guò)所述第一執(zhí)行流水線的交叉開(kāi)關(guān)在將所述第一矩陣的元素發(fā)送到所述多個(gè)點(diǎn)積單元之前旋轉(zhuǎn)所述第一矩陣的所述元素,而所述第二矩陣的元素對(duì)于所述多個(gè)點(diǎn)積單元保持不變。13.一種用于執(zhí)行矩陣乘法操作的裝置,所述裝置包括:耦合到所述多個(gè)矢量寄存器堆的多個(gè)執(zhí)行流水線;在所述多個(gè)執(zhí)行流水線的第一執(zhí)行流水線中的多個(gè)點(diǎn)積單元;其中,為了對(duì)包括二維或更多維的第一矩陣和包括二維或更多維的第二矩陣執(zhí)行矩陣僅將所述第一矩陣的每列和所述第二矩陣的每行提取入相應(yīng)的向量寄存器一次;使用所述多個(gè)點(diǎn)積單元,使用存儲(chǔ)在第一矢量寄存器和所述矢量寄存器中的值執(zhí)行外積操作;在第一周期中,通過(guò)使用所述第一矩陣的給定列的第一部分和所述第二矩陣的給定行的整體來(lái)計(jì)算中間矩陣的第一部分,該中間矩陣是所述第一矩陣的所述給定列和所述第二矩陣的所述給定行的外積;在所述第一周期之后的第二周期中,通過(guò)使用與所述給定列的第一部分和所述給定行的整體不同的第二部分來(lái)計(jì)算與所述中間矩陣的與所述第一部分不同的第二部分;以及累加由所述多個(gè)點(diǎn)積單元生成的值。14.如權(quán)利要求13所述的裝置,其中所述裝置被配置為從第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供到所述第一執(zhí)行流水線。15.如權(quán)利要求14所述的裝置,其中,所述裝置被配置為將輸出寫入所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。在第一周期中,將給定列和給定行從第一矢量寄存器堆提取到多個(gè)存儲(chǔ)元件;和在所述多個(gè)存儲(chǔ)元件中存儲(chǔ)所述給定列和所述給定行,以供所述多個(gè)點(diǎn)積單元在所述4第一周期之后的多個(gè)周期中重復(fù)使用,直到所述中間矩陣的每個(gè)元素被計(jì)算出。17.如權(quán)利要求16所述的裝置,其中所述裝置還被配置為在所述第一周期之后的所述多個(gè)周期的任何周期中從所述第一矢量寄存器堆讀取第三矩陣的元素并且將所述第三矩陣的所述元素提供給第二執(zhí)行流水線。5具有低功率并行矩陣乘法流水線的流處理器技術(shù)領(lǐng)域[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,更具體地涉及一種具有低功率并行矩陣乘法流水線的流處理器。背景技術(shù)[0002]許多不同類型的計(jì)算系統(tǒng)包括矢量處理器或單指令多數(shù)據(jù)(SIMD)處理器。任務(wù)可以在這些類型的并行處理器上并行執(zhí)行,以增加計(jì)算系統(tǒng)的吞吐量。注意,并行處理器在這里也可以被稱為“流處理器”。在流處理器上實(shí)現(xiàn)了各種類型的機(jī)器學(xué)習(xí)算法。這些機(jī)器學(xué)習(xí)算法中的一些實(shí)現(xiàn)矩陣乘法操作。這些矩陣乘法操作通常需要很多周期來(lái)產(chǎn)生結(jié)果,同時(shí)消耗大量的功率。因此,期望用于改進(jìn)性能、降低功耗和/或減少流處理器上的矩陣乘法操作的等待時(shí)間的技術(shù)。發(fā)明內(nèi)容[0003]本發(fā)明的一些方面具體體現(xiàn)如下:[0004]1.一種系統(tǒng),包括:第一矢量寄存器堆;和耦合到所述第一矢量行流水線,其中所述第一執(zhí)行流水線包括多個(gè)點(diǎn)積單元,并且其中所述多個(gè)點(diǎn)積單元中的每一個(gè)點(diǎn)積單元被配置為:計(jì)算第一組操作數(shù)中的元素與第二組操作數(shù)中的對(duì)應(yīng)元素的多個(gè)乘積;和計(jì)算累加輸入和所述多個(gè)乘積的總和,其中所述總和是所述點(diǎn)積單元的輸出。[0005]2.如條款1所述的系統(tǒng),其中所述系統(tǒng)被配置為從所述第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù),并將所述第一組操作數(shù)和所述第二組操作數(shù)提供給所述第一執(zhí)行流水線。[0006]3.如條款1所述的系統(tǒng),其中所述系統(tǒng)還包括第二矢量寄存器堆,其中所述系統(tǒng)被配置為從所述第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供給所述第一執(zhí)行流水線。[0007]4.如條款3所述的系統(tǒng),其中,每個(gè)點(diǎn)積單元還被配置為將所述輸出寫入到所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。[0008]5.如條款1所述的系統(tǒng),其中所述系統(tǒng)還包括第二執(zhí)行流水線,其中所述第二執(zhí)行流水線被配置為與由所述第一執(zhí)行流水線正在執(zhí)行的點(diǎn)積操作并行地執(zhí)行操作。[0009]6.如條款5所述的系統(tǒng),其中所述系統(tǒng)還被配置為:在第一周期中從所述第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù)并且將所述第一組操作數(shù)和所述第二組操作數(shù)存儲(chǔ)在存儲(chǔ)元件中;和在第二周期中從所述第一矢量寄存器堆讀取第三組操作數(shù)并且將所述第三組操作數(shù)提供給所述第二執(zhí)行流水線。[0010]7.如條款1所述的系統(tǒng),其中所述第一組操作數(shù)是第一矩陣的行,并且其中所述第二組操作數(shù)是第二矩陣的列,并且其中所述多個(gè)點(diǎn)積單元被配置成將所述第一矩陣乘以所述第二矩陣。[0011]8.一種方法,其包括:計(jì)算第一組操作數(shù)的元素和第二組操作數(shù)的對(duì)應(yīng)元素的多6個(gè)乘積;和計(jì)算累加輸入和所述多個(gè)乘積的總和,其中所述總和是點(diǎn)積單位的輸出。[0012]9.如條款8所述的方法,還包括從第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù),并將所述第一組操作數(shù)和所述第二組操作數(shù)提供給第一執(zhí)行流水線。[0013]10.如條款8所述的方法,還包括從第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供給第一執(zhí)行流水線。[0014]11.如條款10所述的方法,其還包括將所述輸出寫入所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。[0015]12.如條款8所述的方法,還包括與由第一執(zhí)行流水線正在執(zhí)行的點(diǎn)積操作并行地在第二執(zhí)行流水線上執(zhí)行操作。[0016]13.如條款12所述的方法,還包括:在第一周期中從第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù)并且將所述第一組操作數(shù)和所述第二組操作數(shù)存儲(chǔ)在存儲(chǔ)元件中;和在第二周期中從所述第一矢量寄存器堆讀取第三組操作數(shù)并且將所述第三組操作數(shù)提供給所述第二執(zhí)行流水線。[0017]14.如條款8所述的方法,其中所述第一組操作數(shù)是第一矩陣的行,并且其中所述第二組操作數(shù)是第二矩陣的列,并且其中所述方法進(jìn)一步包括利用多個(gè)點(diǎn)積單元將所述第一矩陣乘以所述第二矩陣。[0018]15.一種裝置,其包括:多個(gè)矢量寄存器堆;和耦合到所述多個(gè)矢量寄存器堆的多個(gè)執(zhí)行流水線;其中所述裝置被配置為:計(jì)算第一組操作數(shù)的元素和第二組操作數(shù)的對(duì)應(yīng)元素的多個(gè)乘積;和計(jì)算累加輸入和所述多個(gè)乘積的總和,其中所述總和是點(diǎn)積單元的輸[0019]16.如條款15所述的裝置,其中,所述裝置還被配置為從第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù),并將所述第一組操作數(shù)和所述第二組操作數(shù)提供給第一執(zhí)行流水線。[0020]17.根據(jù)條款16所述的裝置,其中所述裝置被配置為從第二矢量寄存器堆讀取多個(gè)累加輸入,并將所述多個(gè)累加輸入提供到所述第一執(zhí)行流水線。[0021]18.如條款17所述的裝置,其中,所述裝置被配置為將所述輸出寫入所述第二矢量寄存器堆,其中先前點(diǎn)積操作的輸出是被加到當(dāng)前點(diǎn)積操作的總和的累加輸入。[0022]19.如條款15所述的裝置,其中,所述裝置還被配置為與由第一執(zhí)行流水線正在執(zhí)行的點(diǎn)積操作并行地在第二執(zhí)行流水線上執(zhí)行操作。[0023]20.如條款19所述的裝置,其中所述裝置還被配置為:在第一周期中從所述第一矢量寄存器堆讀取所述第一組操作數(shù)和所述第二組操作數(shù)并且將所述第一組操作數(shù)和所述第二組操作數(shù)存儲(chǔ)在存儲(chǔ)元件中;和在第二周期中從所述第一矢量寄存器堆讀取第三組操作數(shù)并且將所述第三組操作數(shù)提供給所述第二執(zhí)行流水線。附圖說(shuō)明[0024]通過(guò)結(jié)合附圖參考以下描述,可以更好地理解在此描述的方法和機(jī)制的優(yōu)點(diǎn),其[0025]圖1是計(jì)算系統(tǒng)的一個(gè)實(shí)施方式的框圖。[0026]圖2是矩陣乘法操作的一個(gè)實(shí)施方式的框圖。7[0027]圖3是流處理器的一個(gè)實(shí)施方式的框圖。[0028]圖4是執(zhí)行流水線上的重疊執(zhí)行的一個(gè)實(shí)施方式的時(shí)序圖。[0029]圖5是執(zhí)行流水線上的重疊執(zhí)行的另一個(gè)實(shí)施方式的時(shí)序圖。[0030]圖6是矩陣乘法操作的另一個(gè)實(shí)施方式的框圖。[0031]圖7是流處理器的另一個(gè)實(shí)施方式的框圖。[0032]圖8是執(zhí)行矩陣乘法操作的一個(gè)實(shí)施方式的時(shí)序圖。[0033]圖9是執(zhí)行矩陣乘法操作的另一個(gè)實(shí)施方式的時(shí)序圖。[0034]圖10是矩陣乘法操作的另一個(gè)實(shí)施方式的框圖。[0035]圖11是流處理器的另一個(gè)實(shí)施方式的框圖。[0036]圖12是執(zhí)行矩陣乘法操作的一個(gè)實(shí)施方式的時(shí)序圖。[0037]圖13是執(zhí)行矩陣乘法操作的另一個(gè)實(shí)施方式的時(shí)序圖。[0038]圖14是示出用于執(zhí)行矩陣乘法操作的方法的一個(gè)實(shí)施方式的概括性流程圖。具體實(shí)施方式[0039]在以下描述中,闡述了許多具體細(xì)節(jié)以提供對(duì)本文所呈現(xiàn)的方法和機(jī)制的透徹理解。然而,本領(lǐng)域的普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐各種以避免模糊本文所述的方法。應(yīng)該理解的是,為了說(shuō)明的簡(jiǎn)單和清楚,圖中所示的元件不一定按比例繪制。例如,一些元件的尺寸可能相對(duì)于其他元件被放大。[0040]這里公開(kāi)了用于實(shí)現(xiàn)低功率并行矩陣乘法流水線的系統(tǒng)、裝置和方法。在一個(gè)實(shí)施方式中,流處理器包括多個(gè)矢量寄存器堆和耦合到矢量寄存器堆的多個(gè)執(zhí)行流水線。第一執(zhí)行流水線包括多個(gè)點(diǎn)積單元。在一個(gè)實(shí)施方式中,這些點(diǎn)積單元中的每一個(gè)被配置為通過(guò)計(jì)算第一組操作數(shù)的元素與第二組操作數(shù)的對(duì)應(yīng)元素的多個(gè)乘積的總和來(lái)對(duì)第一和第二組操作數(shù)執(zhí)行點(diǎn)積操作。每個(gè)點(diǎn)積單元還被配置為產(chǎn)生與添加到點(diǎn)積運(yùn)算結(jié)果的累加值相等的輸出。在一個(gè)實(shí)施方式中,累加值是先前點(diǎn)積操作的結(jié)果。在另一個(gè)實(shí)施方式中,每個(gè)點(diǎn)積單元被配置為通過(guò)計(jì)算第一和第二組操作數(shù)的外積來(lái)執(zhí)行矩陣乘法操作。[0041]在一個(gè)實(shí)施方式中,流處理器被配置為從第一矢量寄存器堆中讀取第一和第二組操作數(shù),并將第一和第二組操作數(shù)提供給第一執(zhí)行流水線。在該實(shí)施方式中,流處理器被配置為從第二矢量寄存器堆讀取多個(gè)累加值,并將該多個(gè)累加值提供給第一執(zhí)行流水線。而且,第一執(zhí)行流水線被配置為將由點(diǎn)積單元生成的輸出寫入第二矢量寄存器堆。[0042]現(xiàn)在參考圖1,示出了計(jì)算系統(tǒng)100的一個(gè)實(shí)施方式的框圖。在一個(gè)實(shí)施方式中,計(jì)算系統(tǒng)100至少包括處理器110、輸入/輸出(I/0)接口120、總線125和存儲(chǔ)器設(shè)備130。在其他實(shí)施方式中,計(jì)算系統(tǒng)100可以包括其他組件/或計(jì)算系統(tǒng)100可以被不同地布置。處理器110代表任何數(shù)量和類型的處理單元(例如,中央處理單元(CPU)、圖形處理單元(GPU)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用集成電路[0043]在一個(gè)實(shí)施方式中,處理器110包括具有多個(gè)流處理器115的矢量處理器。每個(gè)流處理器115也可以被稱為處理器或處理通道。在一個(gè)實(shí)施方式中,每個(gè)流處理器115包括共享一個(gè)或多個(gè)矢量寄存器堆的至少兩種類型的執(zhí)行流水線(例如,矩陣乘法流水線、融合乘加(FMA)流水線)。在一個(gè)實(shí)施方式中,每個(gè)矢量寄存器堆包括多庫(kù)高密度隨機(jī)存取存儲(chǔ)器8(RAM)。在各種實(shí)施方式中,指令的執(zhí)行可以在多個(gè)執(zhí)行流水線上重疊以增加流處理器的吞吐量。[0044]存儲(chǔ)器設(shè)備130代表任何數(shù)量和類型的存儲(chǔ)器設(shè)備。舉例來(lái)說(shuō),存儲(chǔ)器設(shè)備130中存儲(chǔ)器、NOR快閃存儲(chǔ)器、鐵電隨機(jī)存取存儲(chǔ)器(FeRAM)等。存儲(chǔ)器設(shè)備130可由處理器110訪問(wèn)。I/0接口120代表任何數(shù)量和類型的I/0接口(例如,外圍組件互連(PCI)總線、PCI-擴(kuò)展的外圍設(shè)備可以耦合到I/0接口120。這些外圍設(shè)備包括(但不限于)顯示器、鍵盤、鼠標(biāo)、打等等。[0045]在各種實(shí)施方式中,計(jì)算系統(tǒng)100可以是計(jì)算機(jī)、膝上型計(jì)算機(jī)、移動(dòng)設(shè)備、服務(wù)器、游戲控制臺(tái)或各種其他類型的計(jì)算系統(tǒng)或設(shè)備中的任何一種。注意到,計(jì)算系統(tǒng)100的組件的數(shù)目可因?qū)嵤┓绞蕉?。每個(gè)組件/子組件可以比圖2中所示的數(shù)量更多或更少。還要注意的是,計(jì)算系統(tǒng)100可以包括圖1中未示出的其他組件。[0046]現(xiàn)在轉(zhuǎn)到圖2,示出了矩陣乘法操作的一個(gè)實(shí)施方式的框圖200。在一個(gè)實(shí)施方式中,矩陣202乘以矩陣204以生成矩陣206.矩陣202也可以被稱為矩陣A,矩陣204也可以被稱為矩陣B,并且矩陣206也可以被稱為矩陣C。在一個(gè)實(shí)施方式中,矩陣202是32×4矩陣,矩陣204是4×32矩陣。矩陣202和矩陣204可以存儲(chǔ)在矢量通用寄存器(VGPR)堆的任何庫(kù)(bank)中。在一些實(shí)施方式中,矩陣202是第一矩陣的一部分,矩陣204是第二矩陣的一部分。第一矩陣和第二矩陣可以被分割成更小的矩陣,矩陣乘法操作在更小的矩陣上執(zhí)行。[0047]在一個(gè)實(shí)施方式中,矩陣202和矩陣204中的每個(gè)條目的數(shù)據(jù)是16位浮點(diǎn)值。在其他實(shí)施方式中,數(shù)據(jù)可以以其他格式和/或其他數(shù)量的比特來(lái)表示。在一個(gè)實(shí)施方式中,矩陣202包括輸入數(shù)據(jù)集的值,矩陣204包括要應(yīng)用于輸入數(shù)據(jù)集的加權(quán)值。在該實(shí)施方式中,輸入數(shù)據(jù)集的元素被乘以加權(quán)值,然后被累加到表示神經(jīng)網(wǎng)絡(luò)的神經(jīng)元的總和中。在一個(gè)實(shí)施方式中,可以將神經(jīng)元與閾值進(jìn)行比較以確定神經(jīng)元是否被輸入值激活。在其他實(shí)施方式中,可以基于神經(jīng)元值做出其他類型的決定,和/或可以將神經(jīng)元值饋送到神經(jīng)網(wǎng)絡(luò)的另一層中。[0048]在一個(gè)實(shí)施方式中,在矩陣202和矩陣204上執(zhí)行外積矩陣乘法操作以產(chǎn)生矩陣206。執(zhí)行外積矩陣乘法操作以最小化在提取輸入矩陣202和204時(shí)使用的內(nèi)部和外部存儲(chǔ)器的帶寬。外積矩陣乘法操作也減少了通過(guò)處理器的數(shù)據(jù)移動(dòng)。例如,在一個(gè)實(shí)施方式中,矩陣202和204的元素被提取一次,然后在多個(gè)周期中重新使用。而且,在一個(gè)實(shí)施方式中,當(dāng)矩陣204被提供給矩陣乘法流水線時(shí),通過(guò)保持矩陣204不變,而使數(shù)據(jù)路徑切換減少。[0049]如圖2的圖200所示,在第一周期(周期0)期間,使用矩陣乘法流水線將矩陣202的第一行乘以矩陣204的列。需要說(shuō)明的是,矩陣乘法流水線也可以稱為矩陣乘法單元。在第二周期(周期1)中,矩陣202的第二行乘以矩陣204的列。該模式可以在32個(gè)周期的其余周期期間持續(xù),以完成矩陣202和矩陣204之間的矩陣乘法操作,以產(chǎn)生矩陣206。[0050]在一個(gè)實(shí)施方式中,在第一時(shí)鐘周期中在矩陣202的第一行和矩陣204的列之間執(zhí)行多個(gè)四操作數(shù)點(diǎn)積(有時(shí)稱為內(nèi)積)操作。然后,在第二時(shí)鐘周期中,在矩陣202的第二行和矩陣204的列之間執(zhí)行多個(gè)四操作數(shù)點(diǎn)積操作。對(duì)于32個(gè)周期序列中的其它周期,該模式9可以繼續(xù)用于矩陣202的剩余行。在另一個(gè)實(shí)施方式中,在第一時(shí)鐘周期中通過(guò)計(jì)算矩陣202的第一行和矩陣204的列的外積來(lái)執(zhí)行矩陣乘法操作。在第二時(shí)鐘周期中,計(jì)算矩陣202的第二行和矩陣204的列的外積。對(duì)于矩陣202的其他行繼續(xù)該模式。注意,在其他實(shí)施方式中,矩陣的大小和/或矩陣乘法流水線的大小可以變化。[0051]現(xiàn)在參考圖3,示出了流處理器300的一個(gè)實(shí)施方式的框圖。在一個(gè)實(shí)施方式中,流處理器300的組件被包括在每個(gè)流處理器115(圖1)中。應(yīng)注意的是,流處理器300的架構(gòu)旨在表示流處理器的一個(gè)特定實(shí)現(xiàn)。應(yīng)該理解,在其他實(shí)施方式中,流處理器300的架構(gòu)可以變化。例如,在整個(gè)架構(gòu)中指示一些路徑的數(shù)據(jù)寬度(例如,128位(b),32b),但是在其他實(shí)施方式中,這些路徑可以具有其它寬度。而且,每個(gè)路徑的通道數(shù)也可以不同于流處理器300中所示的通道數(shù)。另外,雖然在流處理器300的矩陣乘法流水線中示出了32個(gè)DOT4單元330A-H,但是其他流水線也可以具有其它數(shù)量和/或其它尺寸的點(diǎn)積單元(例如,DOT8單元)。[0052]在一個(gè)實(shí)施方式中,流處理器300包括兩個(gè)單獨(dú)的矢量寄存器堆304和308。矢量寄存器堆304和308也可以被稱為矢量通用寄存器(VGPR)堆。另外,VGPR堆304可以被稱為累加和矩陣D可以被存儲(chǔ)在任何一個(gè)累加VGPR堆30[0053]在一個(gè)實(shí)施方式中,DOT4單元330A-H的輸出經(jīng)由多路復(fù)用器(或多路復(fù)用器)302導(dǎo)出單元314以被寫入到存儲(chǔ)器(未示出)或另一個(gè)位置。在一個(gè)實(shí)施方式中,每個(gè)DOT4單元330A-H被配置為生成兩個(gè)輸入矢量的點(diǎn)積。例如,對(duì)于具有從0到3的元素i的輸入矢量X和Y,由每個(gè)DOT4單元330A-H生成的點(diǎn)積等于x?y+x?y?+x?y?+x?y?每個(gè)DOT4單元將中間結(jié)果添加到點(diǎn)積中,從而通過(guò)執(zhí)行多個(gè)四元點(diǎn)積并且累加中間結(jié)果來(lái)計(jì)算更長(zhǎng)的點(diǎn)X?y?+x?Y?+x?Y?+dot-product(i點(diǎn)積運(yùn)算。在另一個(gè)實(shí)施方式中,每個(gè)DOT4單元330A-H被配置為生成兩個(gè)例如,對(duì)于每個(gè)具有四個(gè)元素的輸入矢量,由每個(gè)DOT4單元330A-H生成的外積將是4×4矩作數(shù)從架構(gòu)VGPR308耦合到DOT4單元330A-H。第二組操作數(shù)包括從VGPR308的庫(kù)0到3中讀出的A和B矩陣的元素。將A和B矩陣的矩陣乘法操作的中間結(jié)果寫入到累加VGPR304,并將中間結(jié)果從累加VGPR304的庫(kù)0-1路由回到DOT4單元330A-H。另外,來(lái)自架構(gòu)VGPR308的庫(kù)2的操作數(shù)被耦合到FMA流水線324和矢量輸入/輸出(I/O)導(dǎo)出單元318.來(lái)自架構(gòu)VGPR308的庫(kù)3的操作數(shù)被耦合到矢量輸入/輸出(I/0)導(dǎo)出單元318.架構(gòu)VGPR308的四個(gè)庫(kù)用于實(shí)現(xiàn)偽多端口寄存器堆。源多路復(fù)用器312被設(shè)計(jì)成為架構(gòu)VGPR308提供這種多端口能力。來(lái)自FMA流水線324的輸出通過(guò)多路復(fù)用器306耦合回架構(gòu)VGPR308[0055]在一個(gè)實(shí)施方式中,源A和B操作數(shù)經(jīng)由具有多個(gè)組件的數(shù)據(jù)路徑從架構(gòu)VGPR308耦合到DOT4單元330A-H。在一個(gè)實(shí)施方式中,這些數(shù)據(jù)路徑包括源多路復(fù)用器312、架構(gòu)寄存器旋轉(zhuǎn)交叉開(kāi)關(guān)(architectureregisterrotationcrossbar)316、雙緩沖器320和322以及交叉開(kāi)關(guān)326。架構(gòu)寄存器旋轉(zhuǎn)交叉開(kāi)關(guān)316被用于將A和B操作數(shù)旋轉(zhuǎn)到適當(dāng)?shù)耐ǖ乐幸择詈系紻OT4單元330A-H,以在適當(dāng)?shù)木仃囋厣蠄?zhí)行點(diǎn)積操作。用于A操作數(shù)的雙緩沖器320和用于B操作數(shù)的雙緩沖器322被用于存儲(chǔ)操作數(shù),使得操作數(shù)可以在多個(gè)周期中被使用而不必從架構(gòu)VGPR308重新獲取。雙緩沖器320的輸出被耦合到4×4矩陣復(fù)制交叉開(kāi)關(guān)(replicationcrossbar)326,以根據(jù)正在執(zhí)行矩陣乘法操作的某個(gè)階段以在通道之間旋轉(zhuǎn)操作數(shù)。注意的是,在其他實(shí)施方式中,可以使用其它合適類型的緩沖器來(lái)代替雙緩沖器320和322。[0056]在一個(gè)實(shí)施方式中,操作數(shù)從累加VGPR304和架構(gòu)VGPR308耦合到DOT4單元330A-H,以便在執(zhí)行矩陣乘法操作時(shí)減少流處理器300的外部存儲(chǔ)器帶寬利用率。從架構(gòu)VGPR308單次讀取A和B矩陣的元素,然后這些元素在多個(gè)周期內(nèi)從雙緩沖器320和322饋送周期內(nèi)不被切換(toggled)。這有助于減少在矩陣乘法操作中消耗的功率量。[0057]來(lái)自架構(gòu)VGPR308的A和B操作數(shù)還被耦合到融合乘加(FMA)流水線324。當(dāng)在第一作數(shù)可以在隨后的時(shí)鐘周期中被重復(fù)使用。這允許在后續(xù)時(shí)鐘周期中從架構(gòu)VGPR308讀取操作數(shù),并將其提供給FMA流水線324。這使得在流水線330和324上能發(fā)生重疊的并發(fā)執(zhí)行。[0058]現(xiàn)在轉(zhuǎn)到圖4,示出了在執(zhí)行流水線上重疊執(zhí)行的一個(gè)實(shí)施方式的時(shí)序圖400A。為了討論的目的可以假定時(shí)序圖400A適用于(圖3的)流處理器300上的指令的執(zhí)行。在時(shí)序圖400中示出的操作僅僅是一個(gè)特定實(shí)施方式的指示。在其他實(shí)施方式中,可以在流處理器300上執(zhí)行其他操作序列。在時(shí)序圖400A的頂部示出的周期指示流處理器300的時(shí)鐘周期。在一個(gè)實(shí)施方式中,在時(shí)序圖400A中示出的每個(gè)周期表示針對(duì)矩陣乘法流水線的點(diǎn)積單元用于產(chǎn)生矩陣乘法操作的給定階段的結(jié)果的四個(gè)實(shí)際時(shí)鐘周期。在其他實(shí)施方式中,時(shí)序圖400A中示出的每個(gè)周期可以表示其它數(shù)量的實(shí)際時(shí)鐘周期。的操作數(shù)。這些操作數(shù)被提供給要在周期1中使用的矩陣乘法流水線。在周期1期間,可以從架構(gòu)VGPR堆中讀取源操作數(shù)并將其提供給FMA流水線,使得執(zhí)行可以在矩陣乘法流水線和FMA流水線兩者上重疊。這允許流處理器在并發(fā)周期中執(zhí)行不同的操作。而且,在周期1期間,從累加VGPR堆中讀取源X和Y的操作數(shù),并將其提供給要在周期2中使用的矩陣乘法流水線。該模式可以繼續(xù)以用于后續(xù)周期,源X和Y的操作數(shù)被從累加VGPR堆讀取且被提供給矩陣乘法流水線。[0060]而且,在周期1期間,累加源Z操作數(shù)可以從累加VGPR堆讀取。然后可以在周期2中將這些累加源Z操作數(shù)寫入存儲(chǔ)器。這種從累加VGPR堆讀取累加源Z操作數(shù)并且隨后將這些值寫入存儲(chǔ)器的模式可以在隨后的周期中發(fā)生。而且,源A和B的操作數(shù)可以存儲(chǔ)在雙緩沖器(或其他臨時(shí)存儲(chǔ)器)中,并且在隨后的周期中被旋轉(zhuǎn)以將操作數(shù)移位到矩陣乘法流水線的適當(dāng)通道。11[0061]現(xiàn)在參考圖5,示出了在執(zhí)行流水線上重疊執(zhí)行的時(shí)序圖400B的另一個(gè)實(shí)施方式。時(shí)序圖400B旨在表示(圖4的)時(shí)序圖400A的延續(xù)。在隨后的周期6-10中,在時(shí)序圖400A中示出的操作的相同模式可以針對(duì)在(圖3的)流處理器300上執(zhí)行的操作的時(shí)序圖400B繼續(xù)。[0062]在一個(gè)實(shí)施方式中,在周期8中,針對(duì)第一組矩陣元素完成矩陣乘法操作。在周期89開(kāi)始,F(xiàn)MA流水線可以再次訪問(wèn)架構(gòu)VGPR堆并開(kāi)始讀取用于新的FMA操作的操作數(shù),新的FMA操作可以與在周期10和隨后的周期中執(zhí)行的矩陣乘法操作并行執(zhí)行。當(dāng)圖400B在周期10中停止時(shí),后續(xù)周期可以遵循圖400A-B中所示的相同操作模式。[0063]現(xiàn)在轉(zhuǎn)到圖6,示出了矩陣乘法操作的另一個(gè)實(shí)施方式的框圖600。在一個(gè)實(shí)施方部分,并且B矩陣604被劃分為8×4部分以進(jìn)陣602的第一行乘以B矩陣604的每一列以產(chǎn)生C矩陣606的第一行。在周期1中,A矩陣602的第二行乘以B矩陣604的每一列以產(chǎn)生C矩陣606的第二行。對(duì)于周期2-15,該模式可對(duì)于A矩陣602的其余行繼續(xù)。[0064]現(xiàn)在參考圖7,示出了流處理器700的另一個(gè)實(shí)施方式的框圖。在一個(gè)實(shí)施方式中,流處理器700的組件包括在每個(gè)流處理器115(圖1)中。在一個(gè)實(shí)施方式中,流處理器700包括兩個(gè)單獨(dú)的矢量寄存器堆。第一矢量寄存器堆是累加VGPR堆704.DOT8單元730A-H的輸出經(jīng)由多路復(fù)用器702耦合回到累加VGPR堆704的輸入。第二寄存器堆是架構(gòu)VGPR堆708.FMA流水線724的輸出經(jīng)由多路復(fù)用器706耦合到架構(gòu)VGPR堆708的輸入。累加VGPR堆704的讀取可以被組合以形成其他維度的矩陣乘法流水線。例如,在另一個(gè)實(shí)施方式中,可以將16個(gè)DOT8單元組合在一起以形成矩陣乘法流水線。在另一個(gè)實(shí)施例中,可以將32個(gè)DOT8單元組合在一起以形成矩陣乘法流水線。其他實(shí)施方式可以包括其他數(shù)量用于實(shí)現(xiàn)矩陣乘法流水線。[0066]在一個(gè)實(shí)施方式中,每個(gè)DOT8單元730A-H被配置為通過(guò)來(lái)自第二矩陣(例如,圖6的B矩陣604)的對(duì)應(yīng)的八個(gè)元素實(shí)現(xiàn)來(lái)自第一矩陣(例如,圖6的A矩陣602)的八個(gè)元素的點(diǎn)積操作,以生成單個(gè)輸出。這些輸出被寫回到累加VGPR堆704,并且還被耦合回到DOT8單元730A-H,以被加回到針對(duì)每個(gè)隨后成組的來(lái)自第一矩陣的八個(gè)元素以及來(lái)自第二個(gè)矩陣的對(duì)應(yīng)的八個(gè)元素執(zhí)行的下一個(gè)點(diǎn)積操作中。在另一個(gè)實(shí)施方式中,每個(gè)DOT8單元730A-H被配置為實(shí)現(xiàn)來(lái)自第一矩陣(例如,圖6的A矩陣602)的八個(gè)元素與來(lái)自第二矩陣(例如,圖6的B矩陣604)的對(duì)應(yīng)的八個(gè)元素的外積運(yùn)算以產(chǎn)生8×8矩陣。[0067]架構(gòu)VGPR堆708的端口A、B和C的操作數(shù)被耦合到源多路復(fù)用器712并且然后通過(guò)交叉開(kāi)關(guān)716。端口C和D的架構(gòu)VGPR堆708的操作數(shù)都耦合到矢量I/0輸出單元718。在交叉開(kāi)關(guān)716之后,架構(gòu)VGPR堆708的端口A、B和C的操作數(shù)分別耦合到雙緩沖器720、722和723。雙緩沖器720、722和723被配置為將操作數(shù)提供給DOT8單元730A-H多個(gè)周期,而不必在隨后的周期中讀取來(lái)自架構(gòu)VGPR堆708的操作數(shù)。因此,可以在一個(gè)周期中從架構(gòu)VGPR堆708的以從架構(gòu)VGPR堆708中讀取操作數(shù)并將其提供給FMA流水線724.這允許在第一周期之后在路復(fù)用器706耦合回到架構(gòu)VGPR堆708。[0068]在一個(gè)實(shí)施方式中,來(lái)自架構(gòu)VGPR堆708的端口C的操作數(shù)被耦合到要在矩陣乘法操作中使用的DOT8單元730E-H。在這個(gè)實(shí)施方式中,來(lái)自架構(gòu)VGPR堆708的端口B的操作數(shù)堆708的端口A的操作數(shù)通過(guò)交叉開(kāi)關(guān)726,以允許操作數(shù)被旋轉(zhuǎn)到針對(duì)矩陣乘法操作的每個(gè)階段的正確通道。[0069]現(xiàn)在轉(zhuǎn)到圖8,示出了用于執(zhí)行矩陣乘法操作的時(shí)序圖800A的一個(gè)實(shí)施方式。時(shí)序圖800A旨在表示圖7的流處理器700的操作的時(shí)序。在一個(gè)實(shí)施方式中,在周期0中,來(lái)自架構(gòu)VGPR堆的源A和源B的操作數(shù)被讀取,并被耦合到流處理器的第一矩陣乘法流水線(即,的用于源A、B和C的這些操作數(shù)被存儲(chǔ)在臨時(shí)存儲(chǔ)器(例如雙緩沖器)中,并在隨后的周期中在隨后的周期中從架構(gòu)VGPR堆中取出操作數(shù),并且使得能夠?qū)τ趶闹芷?開(kāi)始的矩陣乘法讀取并耦合到第一矩陣乘法流水線,并且用于源Y的操作數(shù)是從累加VGPR堆中讀取并耦合到第二矩陣乘法流水線。在周期1中,矩陣乘法流水線生成輸出矩陣C的第一行的點(diǎn)積或外積結(jié)果。到FMA流水線。而且,在周期1中,源X和Y的操作數(shù)可以從累加VGPR堆中期2中提供給第一和第二矩陣乘法流水線。另外,在周期1中,源Z的操作數(shù)可以從累加VGPR堆讀取,然后在周期2中寫入存儲(chǔ)器。如時(shí)序圖800A所示,該操作模式可以對(duì)于隨后的周期3-5繼續(xù)。在隨后的周期中,矩陣乘法流水線在輸出C矩陣中生成后續(xù)的行。[0071]現(xiàn)在參考圖9,示出了用于執(zhí)行矩陣乘法操作的時(shí)序圖800B的另一個(gè)實(shí)施方式。時(shí)序圖800B旨在是時(shí)序圖800A(圖8)中所示的操作的延續(xù)。在周期6、7和8中,矩陣乘法流水線按照如時(shí)序圖800A所示的相同模式在輸出C矩陣中生成附加行。[0072]現(xiàn)在轉(zhuǎn)到圖10,示出了矩陣乘法操作1000的另一個(gè)實(shí)施方式的框圖。在一個(gè)實(shí)施方式中,尺寸為16×8的A矩陣1002乘以尺寸為8×16的B矩陣1004以生成尺寸為16×16的C矩陣1006。在一個(gè)實(shí)施方式中,使用矩陣乘法流水線將A矩陣1002乘以B矩陣1004,所述矩陣乘法流水線包括被配置為對(duì)八對(duì)輸入操作數(shù)執(zhí)行點(diǎn)積或外積操作的點(diǎn)積單元。在一個(gè)實(shí)施方式中,A矩陣1002乘以B矩陣1004的矩陣乘法操作需要16個(gè)周期。[0073]現(xiàn)在參考圖11,示出了流處理器1100的另一個(gè)實(shí)施方式的框圖。在一個(gè)實(shí)施方式中,流處理器1100的組件被包括在每個(gè)流處理器115(圖1)中。在一個(gè)實(shí)施方式中,流處理器1100被配置為執(zhí)行圖1000(圖10)中所示的矩陣乘法操作。在一個(gè)實(shí)施方式中,流處理器1100包括單個(gè)架構(gòu)VGPR堆1108.分別與圖3和圖7中所示的其他流處理器300和700相比,流[0074]在一個(gè)實(shí)施方式中,A矩陣1002(圖10)存儲(chǔ)在架構(gòu)VGPR堆1108的庫(kù)0中,并且B矩陣1004(圖10)存儲(chǔ)在架構(gòu)VGPR堆1108的庫(kù)1中。這些矩陣的元素被耦合通過(guò)源多路復(fù)用器1112,然后通過(guò)架構(gòu)寄存器旋轉(zhuǎn)交叉開(kāi)關(guān)1116。架構(gòu)寄存器旋轉(zhuǎn)交叉開(kāi)關(guān)1116的輸出被耦合到用于A矩陣1002的雙緩沖器1120和用于B矩陣1004的雙緩沖器1122.雙緩沖器1120的輸出被耦合通過(guò)復(fù)制交叉開(kāi)關(guān)1126,然后被耦合到DOT8單元1130A-H。雙緩沖器1122的輸出也[0075]在一個(gè)實(shí)施方式中,DOT8單元1130A-H被配置為在A矩陣1002的行和B矩陣1004的列之間執(zhí)行點(diǎn)積或外積操作。這些點(diǎn)積或外積操作的結(jié)果被經(jīng)由多路復(fù)用器1106耦合回到架構(gòu)VGPR堆1108。可以將被標(biāo)記為源多路復(fù)用器1112中的源C操作數(shù)的之前的點(diǎn)積或外積操作的結(jié)果耦合回DOT8單元1130A-H的輸入以用于進(jìn)一步的累加。另外,在第一周期中從架取操作數(shù)并將其提供給FMA流水線1124.這允許在DOT8單元1130A-H和FMA流水線1124上進(jìn)的庫(kù)2和3可被寫入矢量I/0導(dǎo)出單元1118,以導(dǎo)出由DOT8單元1130A-H或FMA流水線1124生成的結(jié)果。[0076]現(xiàn)在轉(zhuǎn)到圖12,示出了用于執(zhí)行矩陣乘法操作的時(shí)序圖1200A的一個(gè)實(shí)施方式。時(shí)序圖1200A圖示了可以被實(shí)施以在流處理器1100(圖11)上執(zhí)行矩陣乘法操作的步驟的序的操作數(shù)提供給矩陣乘法流水線。同樣在周期1中,可以從架構(gòu)VGPR堆中讀取源A和源B操作閑的,但是FMA流水線可以啟動(dòng)從周期2開(kāi)始的操作。另外,源D操作數(shù)可以在周期1中從累加VGPR堆中讀取并且在周期2中寫入到存儲(chǔ)器中。這種操作模式可以在周期2-4中繼續(xù)直到矩陣乘法流水線完成矩陣乘法操作。在周期5中可以啟動(dòng)新的矩陣乘法操作,而在第5個(gè)周期[0077]現(xiàn)在參考圖13,示出了執(zhí)行矩陣乘法操作的另一個(gè)實(shí)施方式的時(shí)序圖1200B。時(shí)序圖1200B旨在是時(shí)序圖1200A(圖12)中所示的操作的延續(xù)。在周期6中,矩陣乘法流水線執(zhí)行矩陣乘法操作的第二階段,而FMA流水線可以啟動(dòng)新的FMA操作。而且,可以在周期6中將結(jié)果寫入存儲(chǔ)器。在周期7-8中,矩陣乘法操作的下一階段可以由矩陣乘法流水線執(zhí)行,而FMA流水線訪問(wèn)操作數(shù)的累加VGPR堆并執(zhí)行與矩陣乘法操作重疊的操作。通過(guò)矩陣乘法流水線和FMA流水線,這種操作模式可以對(duì)于任何數(shù)量的附加周期繼續(xù)。[0078]現(xiàn)在參考圖14,示出了用于執(zhí)行矩陣乘法操作的方法1400的一個(gè)實(shí)施方式。為了討論的目的,按順序示出了本實(shí)施方式中的步驟。然而,注意到,在所描述的方法的各種實(shí)施方式中,所描述的一個(gè)或多個(gè)元素是同時(shí)執(zhí)行的、以不同于所示的順序執(zhí)行或者完全被省略。其他附加元素也按需要執(zhí)行。本文描述的各種系統(tǒng)或設(shè)備中的任一個(gè)被配置為實(shí)施方法1400。[0079]流處理器從第一矢量寄存器堆中讀取第一和第二矩陣,并將第一和第二矩陣存儲(chǔ)在臨時(shí)存儲(chǔ)器中(框1405)。注意,在框1405中讀取并存儲(chǔ)的第一和第二矩陣實(shí)際上可以是較大矩陣的一部分。接下來(lái),流處理器將第一矩陣的第一部分和第二矩陣的第一部分提供給矩陣乘法流水線(框1410)。然后,矩陣乘法流水線生成結(jié)果,該結(jié)果第一矩陣的第一部分的元素與第二矩陣的第一部分的對(duì)應(yīng)元素的點(diǎn)積或外積(框1415)。接下來(lái),矩陣乘法流水線將點(diǎn)積或外積操作的結(jié)果寫入第二矢量寄存器堆(框1420)。[0080]然后,如果矩陣乘法操作完成(決策框1425,“是”分支),則流處理器將矩陣乘法運(yùn)算的結(jié)果寫入存儲(chǔ)器(框1430)。在框1430之后,方法1400結(jié)束。如果矩陣乘法操作未完成(決策框1425,“否”分支),則流處理器將第一矩陣的下一部分和第二矩陣的下一部分提供給矩陣乘法流水線(框1435)。流處理器還將來(lái)自第二矢量寄存器堆的累加值提供給矩陣乘法流水線(框1440)。在另一個(gè)實(shí)施方式中,累加值可以從存儲(chǔ)器中讀出并提供給矩陣乘法流水線。在一個(gè)實(shí)施方式中,累加值是由矩陣乘法流水線執(zhí)行的先前的點(diǎn)積運(yùn)算的結(jié)果。[0081]接下來(lái),矩陣乘法流水線生成結(jié)果,所述結(jié)果是第一矩陣的元素與第二矩陣的對(duì)應(yīng)元素的點(diǎn)積或外積(框1445)。而且,矩陣乘法流水線將累加值加到當(dāng)前的點(diǎn)積或外積操作的結(jié)果(框1450)。在另一個(gè)實(shí)施方式中,當(dāng)前點(diǎn)積或外積操作的結(jié)果被加到累計(jì)值上。然后,矩陣乘法流水線將(在框1450中計(jì)算的)總和寫入第二矢量寄存器堆(框1455)。在框[0082]在各種實(shí)施方式中,使用軟件應(yīng)用程序的程序指令來(lái)實(shí)現(xiàn)本文描述的方法和/或機(jī)制。例如,可以設(shè)想可由通用或?qū)S锰幚砥鲌?zhí)行的程序指令。在各種實(shí)施方式中,這樣的程序指令可以由高級(jí)編程語(yǔ)言來(lái)表示。在其他實(shí)施方式中,程序指令可以從高級(jí)編程語(yǔ)言編譯為二進(jìn)制、中級(jí)或其他形式?;蛘撸梢跃帉懨枋鲇布袨榛蛟O(shè)計(jì)的程序指令。這樣的程序指令可以由諸如C之類的高級(jí)編程語(yǔ)言來(lái)表示?;蛘?,可以使用諸如Verilog之類的硬件設(shè)計(jì)語(yǔ)言(HDL)。在各種實(shí)施方式中,程序指令被存儲(chǔ)在各種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的任一個(gè)上。存儲(chǔ)介質(zhì)在使用期間可由計(jì)算系統(tǒng)訪問(wèn)以向計(jì)算系統(tǒng)提供程序指令用于程序執(zhí)行。一般而言,這樣的計(jì)算系統(tǒng)包括至少一個(gè)或多個(gè)存儲(chǔ)器以及被配置為執(zhí)行程序指令的一個(gè)或多個(gè)處理器。[0083]應(yīng)該強(qiáng)調(diào)的是,上述實(shí)施方式僅是實(shí)現(xiàn)方案的非限制性示例。一旦完全理解了上述公開(kāi)內(nèi)容,許多變化和修改對(duì)于本領(lǐng)域技術(shù)人員將變得顯而易見(jiàn)。意圖將以下權(quán)利要求解釋為包含所有這些變化和修改。流處理器I/O接口存儲(chǔ)器設(shè)備5B012345674x4444444CC周期0周期1周期2周期3周期4周期5周期6周期7周期8周期9周期10周期18周期19周期22周期26周期29周期302/14頁(yè)3/14頁(yè)雙A緩沖器庫(kù)0庫(kù)1庫(kù)2庫(kù)34x4矩陣復(fù)4x4矩陣復(fù)通道通道通道通道通道源用器源用器CCDOT4x4DOT4x4出單元出單元EADOT4x4EADOT4x4-316.架構(gòu)寄存區(qū)雙B-316.架構(gòu)寄存區(qū)雙B源用器源用器導(dǎo)出單堆堆01
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣東江門市高職單招職業(yè)技能測(cè)試考試題庫(kù)(含答案)
- 2023中國(guó)男性乳房發(fā)育臨床診治專家共識(shí)解讀
- 達(dá)沃斯司機(jī)安全培訓(xùn)內(nèi)容課件
- 邊坡防護(hù)培訓(xùn)課件
- 實(shí)驗(yàn)室安全生產(chǎn)培訓(xùn)方案
- 車隊(duì)管理培訓(xùn)課件
- 內(nèi)科主治醫(yī)師考試模擬試題(1)及答案
- 車隊(duì)全年安全培訓(xùn)記錄課件
- 2026年順德疾控面試題庫(kù)及答案
- (2026)醫(yī)院重大事件請(qǐng)示報(bào)告制度(3篇)
- 羅茨鼓風(fēng)機(jī)行業(yè)發(fā)展趨勢(shì)報(bào)告
- 慢性阻塞性肺疾病患者非肺部手術(shù)麻醉及圍術(shù)期管理的專家共識(shí)
- 燈謎大全及答案1000個(gè)
- 中建辦公商業(yè)樓有限空間作業(yè)專項(xiàng)施工方案
- 急性胰腺炎護(hù)理查房課件ppt
- 初三數(shù)學(xué)期末試卷分析及中考復(fù)習(xí)建議課件
- GB/T 4074.8-2009繞組線試驗(yàn)方法第8部分:測(cè)定漆包繞組線溫度指數(shù)的試驗(yàn)方法快速法
- 第十章-孤獨(dú)癥及其遺傳學(xué)研究課件
- 人教版四年級(jí)上冊(cè)語(yǔ)文期末試卷(完美版)
- 防空警報(bào)系統(tǒng)設(shè)計(jì)方案
- 酒店管理用水 酒店廚房定額用水及排水量計(jì)算表分析
評(píng)論
0/150
提交評(píng)論