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

神經(jīng)網(wǎng)絡的計算方法、系統(tǒng)及其裝置與流程

文檔序號:11276912閱讀:279來源:國知局
神經(jīng)網(wǎng)絡的計算方法、系統(tǒng)及其裝置與流程

本發(fā)明涉及計算機技術領域,尤其涉及一種神經(jīng)網(wǎng)絡的計算方法、系統(tǒng)及其裝置。



背景技術:

在大數(shù)據(jù)時代,越來越多的設備需要對于真實世界的實時輸入進行越來越復雜的處理,如工業(yè)機器人、自動駕駛無人汽車以及移動設備等等。這些任務大多數(shù)偏向于機器學習領域,其中大部分運算為向量運算或者矩陣運算,具有極高的并行度。相較于傳統(tǒng)通用的gpu/cpu加速方案,硬件asic加速器是目前最受歡迎的加速方案,一方面可以提供極高的并行度以實現(xiàn)極高的性能,另外一方面具有極高的能效性。

然而,這其中帶寬成為限制加速器性能的一大瓶頸,常見的解決方案是通過放置在片上的緩存來平衡帶寬的不均衡性。這些常見的解決方案并沒有對數(shù)據(jù)讀寫進行優(yōu)化,從而不能很好的利用數(shù)據(jù)的特性使得片上存儲開銷過大,數(shù)據(jù)讀寫開銷過大。對于目前常見的機器學習類算法,一方面數(shù)據(jù)量極其龐大,于硬件來說,資源十分有限,龐大的網(wǎng)絡無法一次計算完成;另一方面其數(shù)據(jù)大多具有重用性,也即同樣的數(shù)據(jù)會被多次使用,從而數(shù)據(jù)具有相同的特征。

綜上可知,現(xiàn)有的神經(jīng)網(wǎng)絡的計算技術在實際使用上,顯然存在不便與缺陷,所以有必要加以改進。



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

針對上述的缺陷,本發(fā)明的目的在于提供一種神經(jīng)網(wǎng)絡的計算方法、系統(tǒng)及其裝置,以提升神經(jīng)網(wǎng)絡的計算效率。

為了實現(xiàn)上述目的,本發(fā)明提供一種神經(jīng)網(wǎng)絡的計算方法,所述計算方法包括如下步驟:

a、將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

b、對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;

c、根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。

根據(jù)所述的計算方法,所述步驟a包括:

a1、根據(jù)所述神經(jīng)網(wǎng)絡的輸出神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

a2、根據(jù)所述神經(jīng)網(wǎng)絡的輸入神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

a3、根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

根據(jù)所述的計算方法,所述步驟a3包括:

根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的分布,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);或者

根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的正負,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

根據(jù)所述的計算方法,在所述步驟c中,對每個所述子網(wǎng)的第一計算結果進行拼接或者加權的方式計算所述神經(jīng)網(wǎng)絡的總計算結果。

根據(jù)上述任一項所述的計算方法,所述神經(jīng)網(wǎng)絡的數(shù)據(jù)存儲于片外存儲介質,所述子網(wǎng)的數(shù)據(jù)存儲于片上存儲介質。

為了實現(xiàn)本發(fā)明的另一發(fā)明目的,本發(fā)明還提供了一種神經(jīng)網(wǎng)絡的計算系統(tǒng),所述計算系統(tǒng)包括:

劃分模塊,用于將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第一計算模塊,用于對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;

第二計算模塊,用于根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。

根據(jù)所述的計算系統(tǒng),所述劃分模塊包括:

第一劃分子模塊,用于根據(jù)所述神經(jīng)網(wǎng)絡的輸出神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第二劃分子模塊,用于根據(jù)所述神經(jīng)網(wǎng)絡的輸入神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第三劃分子模塊,用于根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值,將所述神經(jīng)網(wǎng)絡 劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

根據(jù)所述的計算系統(tǒng),所述第三劃分子模塊根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的分布,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);或者

根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的正負,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

根據(jù)所述的計算系統(tǒng),所述第二計算模塊對每個所述子網(wǎng)的第一計算結果進行拼接或者加權的方式計算所述神經(jīng)網(wǎng)絡的總計算結果;

所述神經(jīng)網(wǎng)絡的數(shù)據(jù)存儲于片外存儲介質,所述子網(wǎng)的數(shù)據(jù)存儲于片上存儲介質。

為了實現(xiàn)本發(fā)明的另一發(fā)明目的,本發(fā)明還提供了一種用于上述任一項所述的計算系統(tǒng)的裝置,所述裝置包括:

片上存儲模塊以及尋址模塊,設置于片上存儲介質,且連接于片上地址索引模塊和片上計算模塊,用于存儲所述子網(wǎng)的數(shù)據(jù);

片上地址索引模塊,用于索引所述片上存儲模塊以及尋址模塊存儲的數(shù)據(jù);

片上計算模塊,用于計算所述子網(wǎng)的第一計算結果。

本發(fā)明通過將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。由此,可以通過合理調度數(shù)據(jù),縮減片上緩存開銷,從而可以提供更加高效的加速器設計支持。由于針對大規(guī)模數(shù)據(jù)進行有效劃分,從而降低硬件資源需求如訪存帶寬需求,同時提供良好的靈活性,解決了對重復數(shù)據(jù)進行高效讀寫的問題,提升神經(jīng)網(wǎng)絡的計算效率。

附圖說明

圖1是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算系統(tǒng)的結構示意圖;

圖2是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算系統(tǒng)的結構示意圖;

圖3是本發(fā)明實施例提供的根據(jù)輸出神經(jīng)元劃分子網(wǎng)的示意圖;

圖4是本發(fā)明實施例提供的根據(jù)輸入神經(jīng)元劃分子網(wǎng)的示意圖;

圖5是本發(fā)明實施例提供的根據(jù)權值連接劃分子網(wǎng)的示意圖;

圖6a是本發(fā)明實施例提供的根據(jù)權值正負劃分子網(wǎng)的示意圖;

圖6b是本發(fā)明實施例提供的根據(jù)權值分布劃分子網(wǎng)的示意圖;

圖7是本發(fā)明實施例提供的根據(jù)按照正負進行權值劃分子網(wǎng)及其可能的均值優(yōu)化表示的示意圖;

圖8a是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算裝置的結構示意圖;

圖8b是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算的總體結構的框圖;

圖9是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算方法流程圖;

圖10是本發(fā)明實施例提供的神經(jīng)網(wǎng)絡的計算方法流程圖。

具體實施方式

為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

參見圖1,在本發(fā)明的第一實施例中,提供了一種神經(jīng)網(wǎng)絡的計算系統(tǒng)100,所述計算系統(tǒng)100包括:

劃分模塊10,用于將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第一計算模塊20,用于對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;

第二計算模塊30,用于根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。

在該實施例中,提供了神經(jīng)網(wǎng)絡的計算系統(tǒng)100,通過該計算系統(tǒng)100首先將神經(jīng)網(wǎng)絡的劃分為多個子網(wǎng),根據(jù)不同的劃分原則,神經(jīng)網(wǎng)絡可以被劃分成為不同的子網(wǎng),而不同的劃分方法使得子網(wǎng)具有不同的特征。其中,所述神經(jīng)網(wǎng)絡的數(shù)據(jù)存儲于片外存儲介質,所述子網(wǎng)的數(shù)據(jù)存儲于片上存儲介質。具體的,劃分模塊10根據(jù)不同的劃分原則劃分神經(jīng)網(wǎng)絡成為不同的子網(wǎng),該劃分原則是使得同一子網(wǎng)內部的數(shù)據(jù)特征具有一致性,不同子網(wǎng)間的數(shù)據(jù)可能具有不同特質,以及不同的子網(wǎng)可能被存儲在不同的介質中,如片內(即片上)片外,從而在不同的時刻被硬件調度進行計算。第一計算模塊20進行子網(wǎng)計算,對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果。通常情況下,片上有限的資源限制了所有數(shù)據(jù)同時進行計算的可能性,所以數(shù)據(jù)被進行劃分,大存儲介質(廉價,速度稍慢)放在片外,小存儲介質(昂貴,速度快)集成在片上,數(shù)據(jù)按照子網(wǎng)存儲在片外介質,在不同的時刻被搬運至計算模塊進行子 網(wǎng)相關操作。盡管神經(jīng)網(wǎng)絡本身有可能為復雜的龐大網(wǎng)絡,但是每個子網(wǎng)的計算與原本網(wǎng)絡本身一致。最后,第二計算模塊30對每個所述子網(wǎng)的第一計算結果進行拼接或者加權的方式計算所述神經(jīng)網(wǎng)絡的總計算結果;對于不同的子網(wǎng)根據(jù)不同的劃分原則,需要進行不同的操作,如第二計算模塊30簡單拼接或者計算得到最終的總網(wǎng)的計算結果。由此,提高了神經(jīng)網(wǎng)絡的計算效率。

參見圖2,在本發(fā)明的第二實施例中,劃分模塊10包括:

第一劃分子模塊11,用于根據(jù)所述神經(jīng)網(wǎng)絡的輸出神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第二劃分子模塊12,用于根據(jù)所述神經(jīng)網(wǎng)絡的輸入神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第三劃分子模塊13,用于根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

在該實施例中,本發(fā)明中的子網(wǎng)劃分原則包括根據(jù)輸出神經(jīng)元劃分,根據(jù)輸入神經(jīng)元劃分,以及根據(jù)權值劃分,第一劃分子模塊11、第二劃分子模塊12以及第三劃分子模塊13根據(jù)不同的劃分原則進行劃分。如圖3所示的子網(wǎng)劃分方式,其原則為根據(jù)輸出神經(jīng)元劃分。不同的輸出神經(jīng)元需要根據(jù)所有的輸入神經(jīng)元計算輸出結果,神經(jīng)元間具有不同權值的連接。在圖3中輸入為4個神經(jīng)元,輸出為2個神經(jīng)元,輸入輸出神經(jīng)元之間為全連接,根據(jù)神經(jīng)網(wǎng)絡的輸出神經(jīng)元,兩個子網(wǎng)分別計算一個輸出神經(jīng)元。圖4為一個神經(jīng)網(wǎng)絡(同圖3中的規(guī)模)根據(jù)輸入神經(jīng)元劃分子網(wǎng),每個子網(wǎng)都只包含2個輸入神經(jīng)元。圖3和圖4所示的根據(jù)輸入輸出神經(jīng)元劃分的原則不局限于全連接情況,也是適用于非全連接狀況。圖5則是根據(jù)權值進行劃分子網(wǎng)的例子,其中每個子網(wǎng)只計算一份的連接,子網(wǎng)加和在一起即是總的網(wǎng)絡。

此外,第三劃分子模塊13根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的分布,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);或者

根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的正負,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

如圖5所示的子網(wǎng)劃分,其原則為根據(jù)神經(jīng)元權值連接劃分。權值具有不同的屬性,從而可以根據(jù)不同的劃分原則將網(wǎng)絡劃分成為不同的子網(wǎng)。這里根據(jù)權值將網(wǎng)絡劃分成為兩個子網(wǎng)。此外,圖5所示的子網(wǎng)劃分,還根據(jù)權值劃 分的原則包括正負——將整個網(wǎng)絡劃分成為正子網(wǎng)和負子網(wǎng),閾值——大于x的子網(wǎng)和小于等于x的子網(wǎng),分段——權值在不同區(qū)間形成的不同子網(wǎng)等等。以及根據(jù)權值進行子網(wǎng)劃分,還包括復雜的劃分原則,如根據(jù)權值分布劃分。在本發(fā)明的一個實施方式中,圖6a所示子網(wǎng)劃分,其根據(jù)權值劃分的原則為權值正負,根據(jù)權值正負將網(wǎng)絡劃分成為正負兩個子網(wǎng)。如圖6b所示的子網(wǎng)劃分,其根據(jù)權值分布進行劃分,將一個權值符合正態(tài)分布的網(wǎng)絡劃分成為兩個權值符合正態(tài)分布的子網(wǎng)。圖6b所示一個實施例的子網(wǎng)劃分原則的一個優(yōu)點,即可以通過劃分將每個子網(wǎng)的權值分布的范圍縮減,從而每個子網(wǎng)中的權值可以表示為均值和偏差。從硬件角度上看,均值可以復用,偏差可以直接存儲,或者進行聚類,或者進行壓縮,從而降低硬件資源需求,降低硬件開銷。此外,子網(wǎng)劃分原則還包括根據(jù)連接劃分,這種劃分原則可以自然的被歸入根據(jù)輸入或者輸出神經(jīng)元進行劃分,本發(fā)明故不特別分為一類。子網(wǎng)計算與原始神經(jīng)網(wǎng)絡并無而異,子網(wǎng)劃分在每個子網(wǎng)中并不引入額外的操作。

在本發(fā)明的一個實施例中,如圖7所示一個實施例的子網(wǎng)劃分原則,根據(jù)權值的分布將數(shù)值進行變換表示,也即將單個數(shù)值分解成為a+b的形式,其中a是均值,b為相對均值該數(shù)值的偏差(b可為正也可為負)。圖7所示的實施例的劃分原則的一個優(yōu)點在于,b此時相對0點對稱分布,可以采用最少bit的數(shù)據(jù)表示,a對于所有數(shù)值一樣,則子網(wǎng)劃分成為兩個網(wǎng)絡,一個為均值子網(wǎng),另外一個為偏差子網(wǎng)。從硬件資源上來說,均值子網(wǎng)所有權值一致,大大的減少了該子網(wǎng)的權值數(shù)據(jù)讀取次數(shù),如存在片上寄存器則只需要讀取一次即夠無限次使用;偏差子網(wǎng)中權值的表示一方面有效的降低了每個數(shù)值的表示位寬從而降低了帶寬需求,一方面偏差權值可以聚類或者壓縮從而使得帶寬不成為計算的瓶頸。

在上述多個實施例中,神經(jīng)網(wǎng)絡的計算系統(tǒng)100的多個模塊可以為軟件單元,硬件單元或軟硬件結合單元。

參見圖8a和圖8b,在本發(fā)明第三實施例中,還提供了一種用于上述多個計算系統(tǒng)的裝置101,該裝置101包括:

片上存儲模塊以及尋址模塊1011,設置于片上存儲介質,且連接于片上地址索引模塊1012和片上計算模塊1013,用于存儲所述子網(wǎng)的數(shù)據(jù);

片上地址索引模塊1012,用于索引所述片上存儲模塊以及尋址模塊1011存 儲的數(shù)據(jù);

片上計算模塊1013,用于計算所述子網(wǎng)的第一計算結果。

在該實施例中,神經(jīng)網(wǎng)絡的計算系統(tǒng)的裝置101包含片上存儲模塊以及尋址模塊1011、片上地址索引模塊1012和片上計算模塊1013。片上地址索引模塊1012索引片上存儲的數(shù)據(jù);片上存儲模塊以及尋址模塊1011數(shù)據(jù)讀出接口則是已索引到數(shù)據(jù)的輸出出口;片上存儲模塊以及尋址模塊1011數(shù)據(jù)寫入接口則是存儲單元數(shù)據(jù)根據(jù)寫入地址寫入相應存儲位置。該片上存儲模塊以及尋址模塊1011采用讀寫端口分離設計,從而使得數(shù)據(jù)的讀出和寫入相互獨立,可以同時進行。由此,可以高效的進行片上地址空間內的重復尋址,也可以進行片外地址尋址;具體的,具有片上存儲介質,片外存儲介質,地址索引單元,片內片外數(shù)據(jù)通路,片內數(shù)據(jù)通路。片上存儲介質包含靜態(tài)隨機存儲器(staticrandomaccessmemory,sram),動態(tài)隨機存儲器(dynamicrandomaccessmemory,dram),增強動態(tài)隨機存取存儲器(enhanceddynamicrandomaccessmemory,edram),寄存器堆(registerfile,rf)等常見存儲介質也可以是新型的存儲期間,如非易失存儲器(non-volatilememory,nvm)或者3d存儲器件等等。對于片上存儲介質不局限存儲介質。片外存儲介質包含靜態(tài)隨機存儲器(staticrandomaccessmemory,sram),動態(tài)隨機存儲器(dynamicrandomaccessmemory,dram),增強動態(tài)隨機存取存儲器(enhanceddynamicrandomaccessmemory,edram),寄存器堆(registerfile,rf)等常見存儲介質也可以是新型的存儲期間,如非易失存儲器(non-volatilememory,nvm)或者3d存儲器件等等。地址空間劃分成為片外數(shù)據(jù)空間和片內數(shù)據(jù)空間。地址空間劃分具有較強的靈活性,不局限地址空間的大小。片內片外數(shù)據(jù)通路,包含pci、pcie、ht等互聯(lián)技術。片內片外數(shù)據(jù)通路,不局限互聯(lián)技術。片內數(shù)據(jù)通路,包含fattree、htree等互聯(lián)技術。片內數(shù)據(jù)通路,不局限互聯(lián)技術。神經(jīng)網(wǎng)絡與子網(wǎng)的數(shù)據(jù)可以被一次或者多次讀寫。數(shù)據(jù)可以被讀至一個或者多個片上運算單元。片上存儲介質可以被一次或者多次從外部進行讀寫。片上存儲介質可以被一次或者多次從內部讀寫。片外存儲介質數(shù)據(jù)可以被一次或者多次讀寫。片外存儲介質的數(shù)據(jù)可以被讀至一個或者多個片上運算單元。片外存儲介質可以被一次或者多次從外部進行讀寫。片外存儲介質可以被一次或者多次從內部讀寫。片上存儲介質包含一次或者多次替換。片上存儲介質的數(shù)據(jù)替換策略包含順序替換,逆序替換, 隨機替換等。

參見圖9,在本發(fā)明的第四實施例中,提供了一種神經(jīng)網(wǎng)絡的計算方法,所述計算方法包括如下步驟:

步驟s901中,劃分模塊10將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

步驟s902中,第一計算模塊20對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;

步驟s903中,第二計算模塊30根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。

在該實施例中,通過劃分模塊10對神經(jīng)網(wǎng)絡進行子網(wǎng)劃分從而通過分別加速單個子網(wǎng),使得子網(wǎng)可以被芯片快速高效的完成計算,從而使得總網(wǎng)絡的計算快速高效,根據(jù)不同的劃分原則,神經(jīng)網(wǎng)絡被劃分成為不同的子網(wǎng)由第一計算模塊20、第二計算模塊30進行組織計算。此外,所述神經(jīng)網(wǎng)絡的數(shù)據(jù)存儲于片外存儲介質,所述子網(wǎng)的數(shù)據(jù)存儲于片上存儲介質。對每個所述子網(wǎng)的第一計算結果進行拼接或者加權的方式計算所述神經(jīng)網(wǎng)絡的總計算結果??梢杂行У奶峁?shù)據(jù)的復用性和其靈活尋址的需求,高效的滿足硬件資源需求如帶寬,能夠適用于不同場景。

在本發(fā)明的另一實施例中,所述步驟s901包括:

第一劃分子模塊11根據(jù)所述神經(jīng)網(wǎng)絡的輸出神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第二劃分子模塊12根據(jù)所述神經(jīng)網(wǎng)絡的輸入神經(jīng)元,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);

第三劃分子模塊13根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

其中,第三劃分子模塊13根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的分布,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);或者

根據(jù)所述神經(jīng)網(wǎng)絡的神經(jīng)元權值的正負,將所述神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng)。

對于異構平臺來說,加速器的片上能夠存儲的數(shù)據(jù)十分有限,而如今的神經(jīng)網(wǎng)絡通常具有較大規(guī)模,需要將整個神經(jīng)網(wǎng)絡劃分成為不同的子網(wǎng)進行計算, 通過片外大存儲介質和片內小存儲介質上的數(shù)據(jù)交互將所需數(shù)據(jù)塊讀入或者寫出。最后,根據(jù)不同的子網(wǎng)計算結果計算總網(wǎng)結果。圖8b所示的片內片外數(shù)據(jù)連接并不局限于pcie總線連接,也包含多芯片互聯(lián)結構如片上網(wǎng)絡等。圖8b所示的片上計算單元與片上存儲介質的數(shù)據(jù)通路不局限于h-tree,或者fat-tree等互聯(lián)技術。

在本發(fā)明的一個實施例中,圖10所示神經(jīng)網(wǎng)絡的計算流程,以聚類了權值的一層神經(jīng)網(wǎng)絡為例,即圖6a,具體描述如下:

步驟s1001中,神經(jīng)網(wǎng)絡子網(wǎng)的劃分,此例中網(wǎng)絡劃分方式見步驟s1011。步驟s1011中其中這里假設權值聚類成為356類,而片上資源只能存放256個,根據(jù)存儲限制,網(wǎng)絡被劃分成為兩個子網(wǎng),即子網(wǎng)1和子網(wǎng)2;

步驟s1002中,load256個權值至片上,為子網(wǎng)1計算做數(shù)據(jù)準備;

步驟s1003中,尋址特定權值的連接;

步驟s1004中,計算特定權值的連接;

步驟s1005中,判斷子網(wǎng)1是否已經(jīng)完成計算,這里也即所有256個權值已經(jīng)使用完畢,如果使用完畢則進入s1012確定子網(wǎng)1的計算結果和s1006進入子網(wǎng)2的計算;如果沒有則進入步驟s1003繼續(xù)進行子網(wǎng)1的計算;

步驟s1006中,尋址特定權值的連接;

步驟s1007中,計算特定權值的連接;

步驟s1008中,判斷子網(wǎng)2是否已經(jīng)完成計算,這里也即所有100個權值已經(jīng)使用完畢,如果使用完畢則進入s1013確定子網(wǎng)2的計算結果和s1009進入總網(wǎng)的計算;如果沒有則進入步驟s1006繼續(xù)進行子網(wǎng)2的計算;

步驟s1009中,計算總網(wǎng)為子網(wǎng)1和子網(wǎng)2;

步驟s1012中,子網(wǎng)1的結果確定;

步驟s1013中,子網(wǎng)2的結果確定。

在該實施例中,選對神經(jīng)網(wǎng)絡子網(wǎng)劃分,神經(jīng)網(wǎng)絡權值聚類成為356類,也即356個權值,此處假設片上的權值緩存只能存下256個數(shù),這樣自然而然的將神經(jīng)網(wǎng)絡劃歸成為兩類,一類是使用前256個權值的連接的網(wǎng)絡,即子網(wǎng)1;另一類則是使用剩下100個權值連接的網(wǎng)絡,即子網(wǎng)2。這樣最終的神經(jīng)元結果只需要將子網(wǎng)1和子網(wǎng)2的累加結果相加就可以得到最后的總網(wǎng)的結果。開始計算后,前256個權值載入片上,所有輸出神經(jīng)元根據(jù)輸入神經(jīng)元進行一一尋 址然后計算直到所有權值使用完畢,子網(wǎng)1的計算完成;類似的子網(wǎng)2計算完成。將子網(wǎng)1和子網(wǎng)2的結果相加,得到最后總網(wǎng)絡的結果。需要注意的是,本發(fā)明各實施例中的存儲裝置并不限定存儲所用介質,可以是靜態(tài)隨機存儲器(staticrandomaccessmemory,sram),動態(tài)隨機存儲器(dynamicrandomaccessmemory,dram),增強動態(tài)隨機存取存儲器(enhanceddynamicrandomaccessmemory,edram),寄存器堆(registerfile,rf)等常見存儲介質,也可以是新型的存儲器件,如非易失存儲器(non-volatilememory,nvm)或者3d存儲器件等等。

綜上所述,本發(fā)明通過將神經(jīng)網(wǎng)絡劃分為多個內部數(shù)據(jù)特征一致的子網(wǎng);對每個所述子網(wǎng)進行計算,獲得每個所述子網(wǎng)的第一計算結果;根據(jù)每個所述子網(wǎng)的第一計算結果計算所述神經(jīng)網(wǎng)絡的總計算結果。由此,可以通過合理調度數(shù)據(jù),縮減片上緩存開銷,從而可以提供更加高效的加速器設計支持。由于針對大規(guī)模數(shù)據(jù)進行有效劃分,從而降低硬件資源需求如訪存帶寬需求,同時提供良好的靈活性,解決了對重復數(shù)據(jù)進行高效讀寫的問題。

當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1