【技術實現(xiàn)步驟摘要】
【國外來華專利技術】
本專利技術涉及處理單元和計算機架構,尤其涉及一種用于為中央處理器(centralprocessing?unit,cpu)提供矢量流指令集架構擴展的方法和設備。
技術介紹
1、一般來說,計算中的內(nèi)存訪問延遲比較高,往往是系統(tǒng)的性能瓶頸。在高性能計算(high?performance?computing,hpc)、數(shù)字信號處理(digital?signal?processing,dsp)、人工智能(artificial?intelligence,ai)/機器學習(machine?learning,ml)和計算機視覺(computer?vision,cv)等領域,通常以流的形式對存儲在內(nèi)存中的數(shù)據(jù)重復執(zhí)行類似的計算操作。在應用內(nèi)存在循環(huán)或嵌套循環(huán)的情況下,會對數(shù)據(jù)重復執(zhí)行類似的操作,而鑒于內(nèi)存訪問的限制,這會給性能帶來相當大的影響。為了提高內(nèi)存訪問的效率,通過預取操作,將cpu可能訪問的指令和/或數(shù)據(jù)從存儲數(shù)據(jù)的內(nèi)存位置復制到速度更快的本地內(nèi)存,例如本地高速緩存內(nèi)存。
2、根據(jù)索引值類型,基于數(shù)組的內(nèi)存訪問可以分類為以下兩種:基于歸納變量對索引值的直接內(nèi)存訪問,和基于另一個數(shù)組訪問對索引值的間接內(nèi)存訪問。在基于數(shù)組的間接內(nèi)存訪問的情況下,使用現(xiàn)有方案的預取操作的效率會大大降低,其中,訪問在數(shù)組結構中定義,數(shù)組索引由另一個數(shù)組訪問定義。
技術實現(xiàn)思路
1、本專利技術提供了一種用于為cpu提供矢量流指令集架構擴展并用于處理矢量數(shù)據(jù)流的方法和設備。通用cpu和域特定cpu都可以設計
2、根據(jù)本專利技術的第一方面,提供了一種處理單元處理矢量數(shù)據(jù)流的方法,所述方法包括:啟動用于第一組基于數(shù)組的內(nèi)存訪問的第一矢量數(shù)據(jù)流,其中,所述第一矢量數(shù)據(jù)流與用于向前移動所述第一組基于數(shù)組的內(nèi)存訪問的第一數(shù)組索引相關聯(lián),所述第一數(shù)組索引為歸納變量;啟動用于第二組基于數(shù)組的內(nèi)存訪問的第二矢量數(shù)據(jù)流,其中,所述第二矢量數(shù)據(jù)流與用于向前移動所述第二組基于數(shù)組的內(nèi)存訪問的第二數(shù)組索引相關聯(lián),所述第二數(shù)組索引依賴于所述第一組基于數(shù)組的內(nèi)存訪問的數(shù)組值;通過將所述第一數(shù)組索引向前移動多個增量,將所述第一組基于數(shù)組的內(nèi)存訪問請求的第一多個數(shù)據(jù)元素從內(nèi)存預取到第一快速內(nèi)存存儲器中;將所述第二組基于數(shù)組的內(nèi)存訪問請求的第二多個數(shù)據(jù)元素從矢量寄存器文件預取到第二快速內(nèi)存存儲器中,其中,當所述第一多個數(shù)據(jù)被用作數(shù)組值時,所述第二數(shù)組索引向前移動;通過用于所述第二矢量數(shù)據(jù)流的顯式指令來處理多個所述預取的第二多個數(shù)據(jù)元素,其中,所述顯式指令的所述執(zhí)行導致所述處理單元將所述顯式指令轉換為隱式指令,以執(zhí)行多個所述預取的第一多個數(shù)據(jù)元素。
3、在第一方面的一些或全部示例中,所述第一多個數(shù)據(jù)元素和所述第二多個數(shù)據(jù)元素是基于存儲在流配置表(stream?configuration?table,sct)中的流信息預取的。
4、在第一方面的一些或全部示例中,所述歸納變量的初始值和結束值以及所述第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在所述第一矢量數(shù)據(jù)流的所述sct中。
5、在第一方面的一些或全部示例中,所述sct的所述流信息包括流依賴關系信息。
6、在第一方面的一些或全部示例中,所述方法還包括:在預取所述第二多個數(shù)據(jù)元素之前,確定所述第二多個數(shù)據(jù)元素中的沖突;響應于在所述預取所述第二多個數(shù)據(jù)元素期間檢測到?jīng)_突,至少對所述第二多個數(shù)據(jù)元素中的沖突數(shù)據(jù)元素進行串行化。
7、在第一方面的一些或全部示例中,僅有所述沖突數(shù)據(jù)元素是在所述預取所述第二多個數(shù)據(jù)元素期間進行串行化的。
8、在第一方面的一些或全部示例中,所述方法還包括:響應于檢測到?jīng)_突,生成沖突掩碼;其中,所述沖突數(shù)據(jù)元素是使用所述沖突掩碼進行串行化的。
9、在第一方面的一些或全部示例中,在維持所述矢量數(shù)據(jù)流的數(shù)組之間的依賴關系的同時對所述矢量數(shù)據(jù)流進行矢量化處理,其中,通過基于所述依賴關系從所述矢量寄存器文件的寄存器中確定數(shù)組索引值來批量執(zhí)行數(shù)組索引計算。
10、在第一方面的一些或全部示例中,所述方法還包括:將標量指令轉換為矢量指令,其中,所述矢量指令包括所述第一矢量數(shù)據(jù)流和所述第二矢量數(shù)據(jù)流。
11、根據(jù)本專利技術的第二方面,提供了一種系統(tǒng),示例性地,所述系統(tǒng)可以是矢量流引擎單元,所述系統(tǒng)包括:第一快速內(nèi)存存儲器,其中,所述第一快速內(nèi)存存儲器用于臨時存儲來自內(nèi)存的矢量數(shù)據(jù)流的數(shù)據(jù),以加載到矢量寄存器文件中;第二快速內(nèi)存存儲器,其中,所述第二快速內(nèi)存存儲器用于臨時存儲來自所述矢量寄存器文件的所述矢量數(shù)據(jù)流的所述數(shù)據(jù),以加載到所述內(nèi)存中;預取器,其中,所述預取器用于執(zhí)行以下操作:將所述矢量數(shù)據(jù)流的所述數(shù)據(jù)從所述內(nèi)存預取到所述第一快速存儲器內(nèi)存中,將所述矢量數(shù)據(jù)流的所述數(shù)據(jù)從所述矢量寄存器文件預取到所述第二快速存儲器內(nèi)存中;流配置表(streamconfiguration?table,sct),其中,所述sct存儲用于從所述矢量數(shù)據(jù)流中預取數(shù)據(jù)的流信息。
12、在第二方面的一些或全部示例中,所述歸納變量的初始值和結束值以及所述第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在所述第一矢量數(shù)據(jù)流的sct中。
13、在第二方面的一些或全部示例中,所述sct的所述流信息包括流依賴關系信息。
14、在第二方面的一些或全部示例中,所述第一快速內(nèi)存存儲器和所述第二快速內(nèi)存存儲器為先進先出(first-in-first-out,fifo)緩沖器。
15、在第二方面的一些或全部示例中,所述fifo的大小基于預取深度。
16、在第二方面的一些或全部示例中,以固定大小的矢量批次訪問每個矢量化的數(shù)據(jù)流中的數(shù)據(jù),所述fifo的大小是所述矢量數(shù)據(jù)流的矢量批次的大小的倍數(shù)。
17、在第二方面的一些或全部示例中,多路復用器根據(jù)相應的信號類型選擇所述矢量流引擎單元的信號,并將所述選定的信號傳遞給所述內(nèi)存或本文檔來自技高網(wǎng)...
【技術保護點】
1.一種處理單元處理矢量數(shù)據(jù)流的方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述第一多個數(shù)據(jù)元素和所述第二多個數(shù)據(jù)元素是基于存儲在流配置表(stream?configuration?table,SCT)中的流信息預取的。
3.根據(jù)權利要求2所述的方法,其特征在于,所述歸納變量的初始值和結束值以及所述第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在所述第一矢量數(shù)據(jù)流的所述SCT中。
4.根據(jù)權利要求2所述的方法,其特征在于,所述SCT的所述流信息包括流依賴關系信息。
5.根據(jù)權利要求1所述的方法,其特征在于,還包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述沖突數(shù)據(jù)元素是在所述預取所述第二多個數(shù)據(jù)元素期間進行串行化的。
7.根據(jù)權利要求6所述的方法,其特征在于,還包括:
8.根據(jù)權利要求1所述的方法,其特征在于,在維持所述矢量數(shù)據(jù)流的數(shù)組之間的依賴關系的同時對所述矢量數(shù)據(jù)流進行處理,其中,通過基于所述依賴關系從所述矢量寄存器文件的寄存器中確定數(shù)組索引值來批量執(zhí)行數(shù)組索引計
9.根據(jù)權利要求1所述的方法,其特征在于,還包括:
10.一種系統(tǒng),其特征在于,包括:
11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,歸納變量的初始值和結束值以及第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在第一矢量數(shù)據(jù)流的SCT中。
12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述SCT的所述流信息包括流依賴關系信息。
13.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述第一快速內(nèi)存存儲器和所述第二快速內(nèi)存存儲器為先進先出(first-in-first-out,F(xiàn)IFO)緩沖器。
14.根據(jù)權利要求13所述的系統(tǒng),其特征在于,所述FIFO的大小基于預取深度。
15.根據(jù)權利要求14所述的系統(tǒng),其特征在于,以固定大小的矢量批次訪問每個矢量化的數(shù)據(jù)流中的數(shù)據(jù),所述FIFO的大小是所述矢量數(shù)據(jù)流的所述矢量批次的大小的倍數(shù)。
16.根據(jù)權利要求11所述的系統(tǒng),其特征在于,多路復用器根據(jù)相應的信號類型選擇矢量流引擎單元的信號,并將所述選定的信號傳遞給所述內(nèi)存或所述矢量寄存器文件。
17.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述矢量數(shù)據(jù)流包括具有重復模式的內(nèi)存訪問序列,其中,所述重復模式是循環(huán)和嵌套循環(huán)的結果。
18.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述矢量數(shù)據(jù)流分類為以下兩組:定義內(nèi)存訪問模式的內(nèi)存流和定義值的重復模式的歸納流。
19.根據(jù)權利要求18所述的系統(tǒng),其特征在于,所述內(nèi)存流依賴于用于直接內(nèi)存訪問的歸納流或用于間接內(nèi)存訪問的另一個內(nèi)存流。
20.根據(jù)權利要求11所述的系統(tǒng),其特征在于,矢量流引擎單元還包括編譯器,其中,所述編譯器用于編譯源代碼并將編譯后的代碼移植到主機計算設備的至少一個處理單元進行執(zhí)行。
...【技術特征摘要】
【國外來華專利技術】
1.一種處理單元處理矢量數(shù)據(jù)流的方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述第一多個數(shù)據(jù)元素和所述第二多個數(shù)據(jù)元素是基于存儲在流配置表(stream?configuration?table,sct)中的流信息預取的。
3.根據(jù)權利要求2所述的方法,其特征在于,所述歸納變量的初始值和結束值以及所述第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在所述第一矢量數(shù)據(jù)流的所述sct中。
4.根據(jù)權利要求2所述的方法,其特征在于,所述sct的所述流信息包括流依賴關系信息。
5.根據(jù)權利要求1所述的方法,其特征在于,還包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述沖突數(shù)據(jù)元素是在所述預取所述第二多個數(shù)據(jù)元素期間進行串行化的。
7.根據(jù)權利要求6所述的方法,其特征在于,還包括:
8.根據(jù)權利要求1所述的方法,其特征在于,在維持所述矢量數(shù)據(jù)流的數(shù)組之間的依賴關系的同時對所述矢量數(shù)據(jù)流進行處理,其中,通過基于所述依賴關系從所述矢量寄存器文件的寄存器中確定數(shù)組索引值來批量執(zhí)行數(shù)組索引計算。
9.根據(jù)權利要求1所述的方法,其特征在于,還包括:
10.一種系統(tǒng),其特征在于,包括:
11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,歸納變量的初始值和結束值以及第一組基于數(shù)組的內(nèi)存訪問的基地址存儲在第一矢量數(shù)據(jù)流的sct中。
12.根據(jù)權...
【專利技術屬性】
技術研發(fā)人員:馬齊亞爾·古達爾齊,芮澤·阿茲米,何瑞森,錢志釗,
申請(專利權)人:華為技術有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。