本技術(shù)屬于人工智能(artificial?intelligence,ai)領(lǐng)域,特別涉及一種模型權(quán)重部署方法、裝置、電子設(shè)備、存儲介質(zhì)和程序。
背景技術(shù):
1、近年來人工智能對算力的需求呈爆炸式增長,熱數(shù)據(jù)的近場低功耗實時處理需求激增,而經(jīng)典的馮·諾依曼架構(gòu)因存儲與計算分離帶來的數(shù)據(jù)搬運時延及能耗成為算力增長的主要瓶頸。存算一體技術(shù)通過模擬人腦“存算一體化”工作機制,從材料、器件、計算范式、架構(gòu)等方面進行革新,可在存儲器內(nèi)部實現(xiàn)高效的數(shù)據(jù)計算,突破馮·諾依曼架構(gòu)瓶頸,解決存算分離帶來的“存儲墻”、“功耗墻”問題,大幅提升算力和能效水平。
2、在相關(guān)技術(shù)中,存算一體芯片進行計算時,需要先將訓練好的模型權(quán)重部署在存算一體芯片的陣列上。然而,在向存算一體芯片的陣列部署模型權(quán)重是,只能由人工進行權(quán)重部署方案的設(shè)計,并逐層進行模型權(quán)重的部署,部署效率較低。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種模型權(quán)重部署方法、裝置、電子設(shè)備、存儲介質(zhì)和程序。
2、本技術(shù)實施例提供一種模型權(quán)重部署方法,所述方法包括:
3、獲取預訓練的神經(jīng)網(wǎng)絡(luò)模型中各隱藏層的權(quán)重尺寸信息、以及存算一體芯片中當前空閑陣列的屬性信息;
4、根據(jù)所述各隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,將所述各隱藏層的權(quán)重自動部署在所述存算一體芯片的當前空閑陣列中。
5、在一些實施例中,所述各隱藏層中每個隱藏層的權(quán)重尺寸信息至少包括對應(yīng)隱藏層的二維權(quán)重矩陣的行尺寸;所述存算一體芯片中當前空閑陣列的屬性信息包括:所述存算一體芯片中當前空閑陣列的數(shù)量和地址。
6、可以看出,本技術(shù)實施例可以根據(jù)神經(jīng)網(wǎng)絡(luò)模型中各隱藏層的二維權(quán)重的行尺寸、以及存算一體芯片中當前空閑陣列的數(shù)量和地址,確定各隱藏層的權(quán)重在存算一體芯片的當前空閑陣列的合理部署方式,從而有利于提高神經(jīng)網(wǎng)絡(luò)模型在存算一體芯片中的部署效率。
7、在一些實施例中,所述根據(jù)所述各隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,將所述各隱藏層的權(quán)重自動部署在所述存算一體芯片的當前空閑陣列中,包括:根據(jù)所述各隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述各隱藏層的權(quán)重的預部署方案;按照預設(shè)的優(yōu)化策略,對所述各隱藏層的權(quán)重的預部署方案進行優(yōu)化,得到優(yōu)化后的部署方案;按照所述優(yōu)化后的部署方案,將所述各隱藏層的權(quán)重部署在所述存算一體芯片的當前空閑陣列中。
8、可以看出,在生成各隱藏層的權(quán)重的預部署方案后,還可以按照預設(shè)的優(yōu)化策略,對各隱藏層的權(quán)重的預部署方案進行優(yōu)化;這樣,有利于按照優(yōu)化后的部署方案,將各隱藏層的權(quán)重合理地部署在存算一體芯片的當前空閑陣列中。
9、在一些實施例中,在獲取預訓練的神經(jīng)網(wǎng)絡(luò)模型中各隱藏層的權(quán)重尺寸信息之前,所述方法還包括:確定所述各隱藏層中的計算密集層和非計算密集層,所述計算密集層為層尺寸大于第一尺寸閾值的隱藏層;所述根據(jù)所述各隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述各隱藏層的權(quán)重的預部署方案,包括:在所述各隱藏層中當前待部署的隱藏層為非計算密集層時,根據(jù)當前待部署的隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述當前待部署的隱藏層的權(quán)重的預部署方案;在所述各隱藏層中當前待部署的隱藏層為計算密集層時,根據(jù)所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述當前待部署的隱藏層的權(quán)重的預部署方案。
10、可以看出,本技術(shù)實施例可以針對各隱藏層中的計算密集層和非計算密集層,分別采用不同的方式生成當前待部署的隱藏層的權(quán)重的預部署方案,有利于實現(xiàn)計算密集層的權(quán)重和非計算密集層的權(quán)重在存算一體芯片上的合理部署。
11、在一些實施例中,所述各隱藏層中每個隱藏層的權(quán)重尺寸信息至少包括對應(yīng)隱藏層的二維權(quán)重矩陣的行尺寸;所述存算一體芯片中當前空閑陣列的屬性信息包括:所述存算一體芯片中當前空閑陣列的數(shù)量和地址;
12、所述在所述各隱藏層中當前待部署的隱藏層為非計算密集層時,根據(jù)當前待部署的隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述當前待部署的隱藏層的權(quán)重的預部署方案,包括:
13、在所述當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸大于第二尺寸閾值,且所述存算一體芯片中當前空閑陣列的數(shù)量大于第一預設(shè)值時,將所述當前待部署的隱藏層的權(quán)重的預部署方案確定為第一預部署方案;所述第一預設(shè)值大于所述各隱藏層中剩余待部署的隱藏層的數(shù)量,所述第一預部署方案表示:將當前待部署的隱藏層的二維權(quán)重矩陣在行方向拆分為兩個子矩陣,將按照所述存算一體芯片中當前空閑陣列的順序,將所述兩個子矩陣部署在兩個相鄰的空閑陣列中;在所述當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸大于第二尺寸閾值,且所述存算一體芯片中當前空閑陣列的數(shù)量小于或等于第一預設(shè)值時,或者,在所述當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸小于或等于第二尺寸閾值時,將所述當前待部署的隱藏層的權(quán)重的預部署方案確定為第二預部署方案,所述第二預部署方案表示:按照所述存算一體芯片中當前空閑陣列的順序,將所述當前待部署的隱藏層的權(quán)重部署在所述存算一體芯片的下一個空閑陣列中。
14、可以看出,當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸大于第二尺寸閾值時,說明當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸較大,具有較大行尺寸的二維權(quán)重矩陣會產(chǎn)生較大的輸入電壓損失,導致權(quán)重寫入誤差增大;在這種情況下,如果存算一體芯片中當前空閑陣列的數(shù)量大于第一預設(shè)值,則可以當前待部署的隱藏層的權(quán)重的預部署方案確定為第一預部署方案,在第一預部署方案中,可以將當前待部署的隱藏層的二維權(quán)重矩陣在行方向拆分為兩個子矩陣,從而可以降低部署在空閑陣列中的矩陣的行尺寸,有利于降低輸入電壓損失和權(quán)重寫入誤差。如果當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸大于第二尺寸閾值,且存算一體芯片中當前空閑陣列的數(shù)量小于或等于第一預設(shè)值,則可以認為存算一體芯片中當前空閑陣列不足以按照第一預部署方案實施二維權(quán)重矩陣的拆分后部署,此時,可以將當前待部署的隱藏層的權(quán)重的預部署方案確定為第二預部署方案,在第二預部署方案中,可以將當前待部署的隱藏層的權(quán)重部署在存算一體芯片的下一個空閑陣列中,從而有利于實現(xiàn)當前待部署的隱藏層的權(quán)重的可靠部署。如果當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸小于或等于第二尺寸閾值,說明當前待部署的隱藏層的二維權(quán)重矩陣的行尺寸較小,此時無需通過矩陣拆分來降低輸入電壓損失和權(quán)重寫入誤差,在一定程度上可以提高模型權(quán)重的部署效率。
15、在一些實施例中,所述各隱藏層中每個隱藏層的權(quán)重尺寸信息至少包括對應(yīng)隱藏層的二維權(quán)重矩陣的行尺寸;所述存算一體芯片中當前空閑陣列的屬性信息包括:所述存算一體芯片中當前空閑陣列的數(shù)量和地址;所述在所述各隱藏層中當前待部署的隱藏層為計算密集層時,根據(jù)所述存算一體芯片中當前空閑陣列的屬性信息,自動生成所述當前待部署的隱藏層的權(quán)重的預部署方案,包括:在所述存算一體芯片中當前空閑陣列的數(shù)量大于第二預設(shè)值時,將所述當前待部署的隱藏層的權(quán)重的預部署方案確定為第三預部署方案;所述第二預設(shè)值大于所述各隱藏層中剩余待部署的隱藏層的數(shù)量,所述第三預部署方案表示:按照所述存算一體芯片中當前空閑陣列的順序,將所述當前待部署的隱藏層的二維權(quán)重矩陣重復k次部署在所述存算一體芯片的k個相鄰的空閑陣列中,k為大于或等于2的整數(shù);在所述存算一體芯片中當前空閑陣列的數(shù)量小于或等于第二預設(shè)值時,將所述當前待部署的隱藏層的權(quán)重的預部署方案確定為第二預部署方案;所述第二預部署方案表示:按照所述存算一體芯片中當前空閑陣列的順序,將所述當前待部署的隱藏層的權(quán)重部署在所述存算一體芯片的下一個空閑陣列中。
16、可以看出,在存算一體芯片中當前空閑陣列的數(shù)量大于第二預設(shè)值時,說明存算一體芯片中當前空閑陣列較多,這樣通過隱藏層權(quán)重的冗余部署,有利于在多個空閑陣列實現(xiàn)大尺寸隱藏層的計算負載的均衡;在存算一體芯片中當前空閑陣列的數(shù)量小于第二預設(shè)值時,說明存算一體芯片中當前空閑陣列較少,此時,通過實施第二預部署方案可以充分利用存算一體芯片中空閑陣列,即可以提高存算一體芯片中空閑陣列的利用率。
17、在一些實施例中,所述存算一體芯片中當前空閑陣列的屬性信息還包括:所述存算一體芯片中當前空閑陣列的尺寸信息;所述權(quán)重的預部署方案包括所述每個隱藏層在所述存算一體芯片的空閑陣列的部署尺寸;所述按照預設(shè)的優(yōu)化策略,對所述各隱藏層的權(quán)重的預部署方案進行優(yōu)化,得到優(yōu)化后的部署方案,包括:在按照所述權(quán)重的預部署方案實施權(quán)重部署的陣列中,篩選出滿足設(shè)定條件的m個陣列,所述設(shè)定條件包括:隱藏層在對應(yīng)陣列的部署尺寸中的行尺寸小于或等于對應(yīng)陣列的行尺寸與第一比例系數(shù)的乘積、以及隱藏層在對應(yīng)陣列的部署尺寸中的列尺寸小于或等于對應(yīng)陣列的列尺寸與第二比例系數(shù)的乘積,所述第一比例系數(shù)和第二比例系數(shù)均為小于1的正數(shù);生成優(yōu)化后的部署方案,所述優(yōu)化后的部署方案表示:將所述滿足設(shè)定條件的m個陣列中部署的二維權(quán)重矩陣,合并部署至所述滿足設(shè)定條件的m個陣列的t個陣列中,t為小于m的整數(shù)。
18、可以看出,可以看出,如果隱藏層在陣列的部署尺寸中的行尺寸小于或等于陣列的行尺寸與第一比例系數(shù)的乘積,并且隱藏層在陣列的部署尺寸中的列尺寸小于或等于陣列的列尺寸與第二比例系數(shù)的乘積,則可以認為陣列足以部署多個隱藏層的二維權(quán)重矩陣,這樣,通過將m個陣列中部署的二維權(quán)重矩陣,合并部署至所述滿足設(shè)定條件的m個陣列的t個陣列中,可以提高存算一體芯片的陣列的空間利用率。
19、在一些實施例中,所述存算一體芯片為采用阻變存儲器架構(gòu)的芯片。
20、本技術(shù)實施例還提供了一種模型權(quán)重部署裝置,所述裝置包括:
21、獲取模塊,用于獲取預訓練的神經(jīng)網(wǎng)絡(luò)模型中各隱藏層的權(quán)重尺寸信息、以及存算一體芯片中當前空閑陣列的屬性信息;
22、處理模塊,用于根據(jù)所述各隱藏層的權(quán)重尺寸信息、以及所述存算一體芯片中當前空閑陣列的屬性信息,將所述各隱藏層的權(quán)重自動部署在所述存算一體芯片的當前空閑陣列中。
23、本技術(shù)實施例還提供了一種電子設(shè)備,所述電子設(shè)備包括處理器和用于存儲能夠在處理器上運行的計算機程序的存儲器;其中,所述處理器用于運行所述計算機程序以執(zhí)行上述任意一種模型權(quán)重部署方法。
24、本技術(shù)實施例還提供了一種計算機存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述任意一種模型權(quán)重部署方法。
25、本技術(shù)實施例還提供了一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序在被處理器執(zhí)行時實現(xiàn)上述任意一種模型權(quán)重部署方法。
26、可以看出,本技術(shù)實施例可以根據(jù)各隱藏層的權(quán)重尺寸信息、以及存算一體芯片中當前空閑陣列的屬性信息,實現(xiàn)各隱藏層的權(quán)重在存算一體芯片中的自動化部署,與相關(guān)技術(shù)提供的通過人工部署模型權(quán)重的方案相比,可以提高神經(jīng)網(wǎng)絡(luò)模型在存算一體芯片中的部署效率。