本技術(shù)涉及人工智能(artificial?intelligence,ai),尤其涉及一種服務(wù)器的能效確定方法及相關(guān)裝置。
背景技術(shù):
1、隨著科技的進步,社會環(huán)境問題也越發(fā)突出,因此為保證社會的可持續(xù)發(fā)展,節(jié)能減排成了當(dāng)前社會發(fā)展的主旋律。在信息技術(shù)(information?technology,it)領(lǐng)域,服務(wù)器消耗著大量的電能,因此服務(wù)器的能效就顯得格外重要。
2、目前,相關(guān)技術(shù)中通過服務(wù)器能效評估工具來評估服務(wù)器的能效,以便于基于服務(wù)器的能效情況有針對性地對服務(wù)器進行能效調(diào)優(yōu),從而降低服務(wù)器的耗能。然而,相關(guān)技術(shù)中的服務(wù)器能效評估工具僅支持對通用服務(wù)器中的中央處理器(central?processingunit,cpu)、內(nèi)存以及硬盤的能效測評,并不支持對ai服務(wù)器的能效測評。
3、隨著ai領(lǐng)域的快速發(fā)展,ai服務(wù)器的應(yīng)用越來越廣泛,因此目前亟需一種能夠確定ai服務(wù)器能效的方法。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種服務(wù)器的能效確定方法,能夠準(zhǔn)確地確定ai服務(wù)器的能效。
2、本技術(shù)第一方面提供一種服務(wù)器的能效確定方法,應(yīng)用于確定ai服務(wù)器的能效。該方法包括:首先,獲取ai服務(wù)器分別運行多個ai負(fù)載中的每個ai負(fù)載時的運行情況。其中,ai服務(wù)器運行的多個ai負(fù)載包括多個神經(jīng)網(wǎng)絡(luò)模型,多個神經(jīng)網(wǎng)絡(luò)模型分別用于執(zhí)行不同的ai任務(wù),,即一個神經(jīng)網(wǎng)絡(luò)模型作為一個ai負(fù)載。ai服務(wù)器運行每個ai負(fù)載時的運行情況包括ai服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù)和功率。即,ai服務(wù)器是單獨地運行每個ai負(fù)載,且ai服務(wù)器運行每個ai負(fù)載的期間,都能夠獲取到ai服務(wù)器運行負(fù)載的次數(shù)以及運行期間的功率。
3、此外,ai服務(wù)器上部署有用于執(zhí)行ai計算的硬件,例如圖形處理單元(graphprocessing?unit,gpu)、神經(jīng)網(wǎng)絡(luò)處理單元(neural-network?processing?unit,npu)以及張量處理單元(tensor?processing?unit,tpu)等硬件。
4、然后,基于ai服務(wù)器運行每個ai負(fù)載時的運行情況,確定ai服務(wù)器在運行每個ai負(fù)載時的能效值。例如,基于ai服務(wù)器在設(shè)定時長內(nèi)運行每個ai負(fù)載時的次數(shù),可以確定ai服務(wù)器在單位時間(即每秒)內(nèi)運行每個ai負(fù)載時的次數(shù),然后將ai服務(wù)器每秒運行ai負(fù)載的次數(shù)除以ai服務(wù)器運行ai負(fù)載時的功率,進而得到能效值。
5、最后,基于ai服務(wù)器在運行多個ai負(fù)載中的每個ai負(fù)載時的能效值,確定ai服務(wù)器的目標(biāo)能效值,目標(biāo)能效值用于指示ai服務(wù)器運行ai負(fù)載時的能效。例如,通過將ai服務(wù)器在運行每個ai負(fù)載時的能效值進行綜合加權(quán)計算(比如求取加權(quán)幾何平均值),則能夠得到ai服務(wù)器的目標(biāo)能效值。
6、本方案中,通過針對當(dāng)前ai服務(wù)器的主流應(yīng)用場景,設(shè)計了多個用于執(zhí)行不同ai任務(wù)的神經(jīng)網(wǎng)絡(luò)模型作為ai負(fù)載。并且,在ai服務(wù)器上分別運行每個ai負(fù)載,獲得ai服務(wù)器在設(shè)定時長內(nèi)運行每個ai負(fù)載時的次數(shù)和平均功率,進而確定ai服務(wù)器運行每個ai負(fù)載時的能效值;最后,通過綜合多個ai負(fù)載對應(yīng)的能效值,可以得到ai服務(wù)器在運行ai負(fù)載時的能效,實現(xiàn)ai服務(wù)器的能效測評。
7、總的來說,本方案中通過設(shè)計能夠覆蓋ai服務(wù)器主流應(yīng)用場景的多個神經(jīng)網(wǎng)絡(luò)模型來作為ai負(fù)載,并測試ai服務(wù)器在運行每個神經(jīng)網(wǎng)絡(luò)模型時的運行情況,從而綜合計算得到ai服務(wù)器的能效,填補ai服務(wù)器能效基準(zhǔn)測試的空白,便于支撐后續(xù)實現(xiàn)ai服務(wù)器的能效調(diào)優(yōu)。
8、在一種可能的實現(xiàn)方式中,多個ai負(fù)載還包括多個ai算子,且該多個ai算子均為神經(jīng)網(wǎng)絡(luò)模型中所使用的算子。也就是說,多個ai負(fù)載中同時包括多個神經(jīng)網(wǎng)絡(luò)模型和多個ai算子。
9、本方案中,通過設(shè)計作為ai計算最小基本單元的ai算子作為ai負(fù)載,能夠基于ai計算的本質(zhì)來構(gòu)造ai負(fù)載,保證所設(shè)計的ai負(fù)載能夠應(yīng)對未來的各種不確定場景,保證所設(shè)計的ai負(fù)載能夠適配ai服務(wù)器的實際應(yīng)用場景。
10、在一種可能的實現(xiàn)方式中,在確定ai服務(wù)器的目標(biāo)能效值的過程中,可以先基于多個ai負(fù)載中每個ai負(fù)載的類型,獲取每個ai負(fù)載對應(yīng)的權(quán)重值。其中,ai負(fù)載的類型可以為神經(jīng)網(wǎng)絡(luò)模型或ai算子,且類型為神經(jīng)網(wǎng)絡(luò)模型的ai負(fù)載與類型為算子的ai負(fù)載對應(yīng)于不同的權(quán)重值。
11、然后,基于每個ai負(fù)載對應(yīng)的權(quán)重值,對ai服務(wù)器在運行每個ai負(fù)載時的能效值進行加權(quán)求取幾何平均值,從而得到ai服務(wù)器的目標(biāo)能效值。
12、由于ai算子是ai計算的最小基本單元,而神經(jīng)網(wǎng)絡(luò)模型是由大量的ai算子構(gòu)成的,因此多個ai負(fù)載中的神經(jīng)網(wǎng)絡(luò)模型和ai算子的負(fù)載量級相差較大?;诖耍痉桨钢?,在綜合多個ai負(fù)載對應(yīng)的能效值來求取ai服務(wù)器的能效值時,可以為不同類型的ai負(fù)載分配不同的權(quán)重值,從而保證最終綜合評估得到的目標(biāo)能效值的準(zhǔn)確性。
13、在一種可能的實現(xiàn)方式中,多個ai算子中的每個ai算子用于執(zhí)行以下任意一種類型的運算:激活函數(shù)運算、卷積運算、池化運算、歸一化運算、矩陣乘運算、數(shù)據(jù)丟棄運算以及全連接運算。
14、在一種可能的實現(xiàn)方式中,可以是獲取ai服務(wù)器在多種不同的負(fù)荷狀態(tài)下分別運行每個ai負(fù)載時的運行情況,得到每個ai負(fù)載對應(yīng)的不同負(fù)荷狀態(tài)下的運行情況。也就是說,對于同一個ai負(fù)載而言,ai服務(wù)器是在不同的負(fù)荷狀態(tài)下來分別獨立地運行該ai負(fù)載,進而得到同一個ai負(fù)載對應(yīng)的不同負(fù)荷狀態(tài)下的運行情況。
15、然后,基于ai服務(wù)器在每種負(fù)荷狀態(tài)下運行每個ai負(fù)載時的運行情況,確定ai服務(wù)器在每種負(fù)荷狀態(tài)下運行每個ai負(fù)載時的能效值,即可以得到同一個ai負(fù)載對應(yīng)的不同負(fù)荷狀態(tài)下的能效值。進而,對ai服務(wù)器在多種不同的負(fù)荷狀態(tài)下運行同一個ai負(fù)載時的能效值求取幾何平均值,得到ai服務(wù)器在運行每個ai負(fù)載時的能效值。
16、本方案中,通過分別獲取ai服務(wù)器在不同負(fù)荷狀態(tài)下運行同一個ai負(fù)載時的運行情況,并基于ai服務(wù)器在不同負(fù)荷狀態(tài)下的運行情況來確定ai服務(wù)器運行該ai負(fù)載時的能效,能夠真實還原ai服務(wù)器在實際應(yīng)用場景下運行ai負(fù)載時的狀態(tài),保證計算得到符合實際應(yīng)用場景的能效值,提高計算得到的能效值的準(zhǔn)確性。
17、在一種可能的實現(xiàn)方式中,在確定ai服務(wù)器運行ai負(fù)載時的能效值的過程中,可以先獲取每個ai負(fù)載對應(yīng)的預(yù)設(shè)運行次數(shù),其中預(yù)設(shè)運行次數(shù)用于指示預(yù)設(shè)服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù)。也就是說,預(yù)先通過預(yù)設(shè)服務(wù)器分別獨立地在設(shè)定時長內(nèi)運行每個ai負(fù)載,進而得到預(yù)設(shè)服務(wù)器在設(shè)定時長內(nèi)運行每個ai負(fù)載時的次數(shù)。預(yù)設(shè)服務(wù)器可以是預(yù)先指定的一個服務(wù)器,同樣能夠用于執(zhí)行ai計算。
18、然后,通過求取每個ai負(fù)載對應(yīng)的目標(biāo)比值與ai服務(wù)器運行每個ai負(fù)載的功率之間的比值,得到ai服務(wù)器在運行每個ai負(fù)載時的能效值,每個ai負(fù)載對應(yīng)的目標(biāo)比值為ai服務(wù)器在設(shè)定時長內(nèi)運行每個ai負(fù)載的次數(shù)與每個ai負(fù)載對應(yīng)的預(yù)設(shè)運行次數(shù)之間的比值。也就是說,在求取ai服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù)與預(yù)設(shè)服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù)的比值之后,再將該比值除以ai服務(wù)器運行ai負(fù)載時的功率,進而得到能效值。
19、本方案中,通過引入預(yù)設(shè)服務(wù)器運行每個ai負(fù)載時的次數(shù)作為參考,可以有效地平衡不同ai負(fù)載之間的量級差,保證后續(xù)能夠?qū)i服務(wù)器運行不同的ai負(fù)載時的能效值進行綜合計算。
20、在一種可能的實現(xiàn)方式中,多個神經(jīng)網(wǎng)絡(luò)模型中的每個神經(jīng)網(wǎng)絡(luò)模型用于執(zhí)行以下任意一種類型的ai任務(wù):計算機視覺處理任務(wù)、自然語言處理任務(wù)、排序?qū)W習(xí)處理任務(wù)、內(nèi)容推薦處理任務(wù)以及數(shù)據(jù)挖掘任務(wù)。
21、本技術(shù)第二方面提供一種服務(wù)器的能效確定裝置,包括:獲取模塊,用于獲取ai服務(wù)器分別運行多個ai負(fù)載中的每個ai負(fù)載時的運行情況,運行情況包括ai服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù)和功率,多個ai負(fù)載包括多個神經(jīng)網(wǎng)絡(luò)模型,多個神經(jīng)網(wǎng)絡(luò)模型分別用于執(zhí)行不同的ai任務(wù),ai服務(wù)器上部署有用于執(zhí)行ai計算的硬件;處理模塊,用于基于ai服務(wù)器運行每個ai負(fù)載時的運行情況,確定ai服務(wù)器在運行每個ai負(fù)載時的能效值;處理模塊,還用于基于ai服務(wù)器在運行多個ai負(fù)載中的每個ai負(fù)載時的能效值,確定ai服務(wù)器的目標(biāo)能效值,目標(biāo)能效值用于指示ai服務(wù)器運行ai負(fù)載時的能效。
22、在一種可能的實現(xiàn)方式中,多個ai負(fù)載還包括多個ai算子,多個ai算子均為神經(jīng)網(wǎng)絡(luò)模型中所使用的算子。
23、在一種可能的實現(xiàn)方式中,處理模塊,還用于:基于多個ai負(fù)載中每個ai負(fù)載的類型,獲取每個ai負(fù)載對應(yīng)的權(quán)重值,其中類型為神經(jīng)網(wǎng)絡(luò)模型的ai負(fù)載與類型為算子的ai負(fù)載對應(yīng)于不同的權(quán)重值;基于每個ai負(fù)載對應(yīng)的權(quán)重值,對ai服務(wù)器在運行每個ai負(fù)載時的能效值進行加權(quán)求取幾何平均值,得到ai服務(wù)器的目標(biāo)能效值。
24、在一種可能的實現(xiàn)方式中,多個ai算子中的每個ai算子用于執(zhí)行以下任意一種類型的運算:激活函數(shù)運算、卷積運算、池化運算、歸一化運算、矩陣乘運算、數(shù)據(jù)丟棄運算以及全連接運算。
25、在一種可能的實現(xiàn)方式中,獲取模塊,具體用于獲取ai服務(wù)器在多種不同的負(fù)荷狀態(tài)下分別運行每個ai負(fù)載時的運行情況,得到每個ai負(fù)載對應(yīng)的不同負(fù)荷狀態(tài)下的運行情況;處理模塊,還用于:基于ai服務(wù)器在每種負(fù)荷狀態(tài)下運行每個ai負(fù)載時的運行情況,確定ai服務(wù)器在每種負(fù)荷狀態(tài)下運行每個ai負(fù)載時的能效值;對ai服務(wù)器在多種不同的負(fù)荷狀態(tài)下運行同一個ai負(fù)載時的能效值求取幾何平均值,得到ai服務(wù)器在運行每個ai負(fù)載時的能效值。
26、在一種可能的實現(xiàn)方式中,獲取模塊,還用于獲取每個ai負(fù)載對應(yīng)的預(yù)設(shè)運行次數(shù),預(yù)設(shè)運行次數(shù)用于指示預(yù)設(shè)服務(wù)器在設(shè)定時長內(nèi)運行ai負(fù)載的次數(shù);處理模塊,還用于通過求取每個ai負(fù)載對應(yīng)的目標(biāo)比值與ai服務(wù)器運行每個ai負(fù)載的功率之間的比值,得到ai服務(wù)器在運行每個ai負(fù)載時的能效值,每個ai負(fù)載對應(yīng)的目標(biāo)比值為ai服務(wù)器在設(shè)定時長內(nèi)運行每個ai負(fù)載的次數(shù)與每個ai負(fù)載對應(yīng)的預(yù)設(shè)運行次數(shù)之間的比值。
27、在一種可能的實現(xiàn)方式中,多個神經(jīng)網(wǎng)絡(luò)模型中的每個神經(jīng)網(wǎng)絡(luò)模型用于執(zhí)行以下任意一種類型的ai任務(wù):計算機視覺處理任務(wù)、自然語言處理任務(wù)、排序?qū)W習(xí)處理任務(wù)、內(nèi)容推薦處理任務(wù)以及數(shù)據(jù)挖掘任務(wù)。
28、在一種可能的實現(xiàn)方式中,ai服務(wù)器上部署有以下硬件中的任意一種:gpu、npu以及tpu。
29、本技術(shù)第三方面提供一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)中存儲有計算機程序,當(dāng)其在計算機上運行時,使得計算機執(zhí)行如第一方面或第二方面中的任意一種實現(xiàn)方式的方法。
30、本技術(shù)第四方面提供一種計算機程序產(chǎn)品,當(dāng)其在計算機上運行時,使得計算機執(zhí)行如第一方面或第二方面中的任意一種實現(xiàn)方式的方法。
31、本技術(shù)第五方面提供一種芯片,包括一個或多個處理器。處理器中的部分或全部用于讀取并執(zhí)行存儲器中存儲的計算機程序,以執(zhí)行上述第一方面或第二方面中的任意一種實現(xiàn)方式中的方法。
32、可選地,該芯片該包括存儲器,該存儲器與該處理器通過電路或電線與存儲器連接。可選地,該芯片還包括通信接口,處理器與該通信接口連接。通信接口用于接收需要處理的數(shù)據(jù)和/或信息,處理器從該通信接口獲取該數(shù)據(jù)和/或信息,并對該數(shù)據(jù)和/或信息進行處理,并通過該通信接口輸出處理結(jié)果。該通信接口可以是輸入輸出接口。本技術(shù)提供的方法可以由一個芯片實現(xiàn),也可以由多個芯片協(xié)同實現(xiàn)。
33、其中,第二方面至第五方面中任一種設(shè)計方式所帶來的技術(shù)效果可參見上述第一方面中不同實現(xiàn)方式所帶來的技術(shù)效果,在此不再贅述。