本發(fā)明涉及神經(jīng)網(wǎng)絡(luò)通信?,尤其涉及一種基于雙卡雙芯片的模型訓(xùn)練通信方法及裝置。
背景技術(shù):
1、目前,在神經(jīng)網(wǎng)絡(luò),例如:大模型、視覺模型和語音模型等的推理以及訓(xùn)練的規(guī)約分散(reduce?scatter)通信過程中,沒有充分利用加速卡,例如:圖像處理器(graphicsprocessing?unit,gpu)上的執(zhí)行單元(excution?unit,eu)之間的通信鏈路,即加速卡內(nèi)兩芯片(die)間通信時,沒有充分利用通信鏈路的高速帶寬,導(dǎo)致卡內(nèi)兩芯片間通信的時長較長。因此,在編排兩加速卡的卡間p2p通信(即卡間reduce?scatter)的流水線時,一次p2p通信完成后,需要較長時間地等待卡內(nèi)兩芯片間規(guī)約(reduce)的完成,才能進行下一次卡間p2p通信,從而使得利用雙卡雙芯片進行模型訓(xùn)練的整體通信性能下降。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種基于雙卡雙芯片的模型訓(xùn)練通信方法及裝置,用以解決相關(guān)技術(shù)中p2p流水線上兩次卡間p2p通信之間的等待時間較長,使得利用雙卡雙芯片進行模型訓(xùn)練的整體通信性能下降的問題。
2、本發(fā)明提供一種基于雙卡雙芯片的模型訓(xùn)練通信方法,包括如下步驟。
3、將所述任一加速卡上兩芯片各自的待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊,其中,n大于等于2。
4、對n個所述數(shù)據(jù)塊串行進行卡內(nèi)兩芯片間的規(guī)約操作,且每個所述數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作,m大于等于2。
5、在第i個數(shù)據(jù)塊的卡內(nèi)兩芯片間的規(guī)約操作完成后,與所述雙加速卡中另一加速卡卡內(nèi)兩芯片間規(guī)約操作完成后的第i個數(shù)據(jù)塊進行的第i次卡間規(guī)約分散操作,其中,i=1,2,…,n。
6、在第i次所述卡間規(guī)約分散操作完成后,進行第i次卡內(nèi)兩芯片間的分散操作,直到完成n個數(shù)據(jù)塊的卡內(nèi)兩芯片間的分散操作完,以完成數(shù)據(jù)通信。
7、根據(jù)本發(fā)明提供的一種基于雙卡雙芯片的模型訓(xùn)練通信方法,在第i次所述卡間規(guī)約分散操作完成后,進行第i次卡內(nèi)兩芯片間的分散操作,包括以下步驟。
8、將第i次所述卡間規(guī)約分散操作后得到的第i個目標(biāo)數(shù)據(jù)塊切分成m個目標(biāo)數(shù)據(jù)子塊。
9、將m個所述目標(biāo)數(shù)據(jù)子塊分成兩部分數(shù)據(jù),將m個目標(biāo)數(shù)據(jù)子塊各自的兩部分數(shù)據(jù)通過兩芯片間不同的通信鏈路并行分散到卡內(nèi)兩芯片上。
10、根據(jù)本發(fā)明提供的一種基于雙卡雙芯片的模型訓(xùn)練通信方法,所述雙芯片包括:主芯片和從芯片,每個所述數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作,包括以下步驟。
11、將每個所述數(shù)據(jù)塊切分成m個數(shù)據(jù)子塊。
12、將每個所述數(shù)據(jù)塊的m個數(shù)據(jù)子塊中屬于所述從芯片的部分通過兩芯片間不同的通信鏈路并行規(guī)約到所述主芯片中。
13、根據(jù)本發(fā)明提供的一種基于雙卡雙芯片的模型訓(xùn)練通信方法,將每個所述數(shù)據(jù)塊切分成m個數(shù)據(jù)子塊,包括:基于卡內(nèi)兩芯片間通信鏈路的數(shù)量,將每個所述數(shù)據(jù)塊均切分成m個數(shù)據(jù)子塊,m小于等于卡內(nèi)兩芯片間通信鏈路的數(shù)量。
14、根據(jù)本發(fā)明提供的一種基于雙卡雙芯片的模型訓(xùn)練通信方法,將每個所述數(shù)據(jù)塊切分成m個數(shù)據(jù)子塊,使每個數(shù)據(jù)子塊的卡內(nèi)芯片間規(guī)約操作的時長小于等于一次所述卡間規(guī)約分散操作的時長。
15、根據(jù)本發(fā)明提供的一種基于雙卡雙芯片的模型訓(xùn)練通信方法,將待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊,包括:基于一次所述卡間規(guī)約分散操作的數(shù)據(jù)量大小,將所述待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊。
16、本發(fā)明還提供一種基于雙卡雙芯片的模型訓(xùn)練通信裝置,包括如下模塊。
17、數(shù)據(jù)切分模塊,用于將所述任一加速卡上兩芯片各自的待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊,其中,n大于等于2。
18、卡內(nèi)規(guī)約模塊,用于對n個所述數(shù)據(jù)塊串行進行卡內(nèi)兩芯片間的規(guī)約操作,且每個所述數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作。
19、卡間規(guī)約分散模塊,用于第i個數(shù)據(jù)塊的卡內(nèi)兩芯片間的規(guī)約操作完成后,與所述雙加速卡中另一加速卡卡內(nèi)兩芯片間規(guī)約操作完成后的第i個數(shù)據(jù)塊進行的第i次卡間規(guī)約分散操作,其中,i=1,2,…,n,m大于等于2。
20、卡內(nèi)分散模塊,用于在第i次所述卡間規(guī)約分散操作完成后,進行第i次卡內(nèi)兩芯片間的分散操作,直到完成n個數(shù)據(jù)塊的卡內(nèi)兩芯片間的分散操作完,以完成數(shù)據(jù)通信。
21、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述任一種所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。
22、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。
23、本發(fā)明還提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。
24、本發(fā)明提供的基于雙卡雙芯片的模型訓(xùn)練通信方法及裝置,通過將待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊,n大于等于2;對n個所述數(shù)據(jù)塊串行進行卡內(nèi)兩芯片間的規(guī)約操作,且每個所述數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作;在第i個數(shù)據(jù)塊的卡內(nèi)兩芯片間的規(guī)約操作完成后,與所述雙加速卡中另一加速卡卡內(nèi)兩芯片間規(guī)約操作完成后的第i個數(shù)據(jù)塊進行的第i次卡間規(guī)約分散操作,其中,i=1,2,…,n,m大于等于2;在第i次所述卡間規(guī)約分散操作完成后,進行第i次卡內(nèi)兩芯片間的分散操作,直到完成n個數(shù)據(jù)塊的卡內(nèi)兩芯片間的分散操作完,以完成數(shù)據(jù)通信,由于在整個通信過程中,將數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作,減小了卡內(nèi)兩芯片間的規(guī)約的時長,在編排卡間p2p通信的流水線時,縮短了兩次卡間p2p通信的等待時間,提升了通信性能。
1.一種基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,應(yīng)用于雙加速卡中的任一加速卡,所述方法包括:
2.根據(jù)權(quán)利要求1所述的基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,在第i次所述卡間規(guī)約分散操作完成后,進行第i次卡內(nèi)兩芯片間的分散操作,包括:
3.根據(jù)權(quán)利要求1所述的基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,所述雙芯片包括:主芯片和從芯片,每個所述數(shù)據(jù)塊按預(yù)分的m個數(shù)據(jù)子塊并行進行卡內(nèi)兩芯片間的規(guī)約操作,包括:
4.根據(jù)權(quán)利要求3所述的基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,將每個所述數(shù)據(jù)塊切分成m個數(shù)據(jù)子塊,包括:
5.根據(jù)權(quán)利要求4所述的基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,將每個所述數(shù)據(jù)塊切分成m個數(shù)據(jù)子塊,使每個數(shù)據(jù)子塊的卡內(nèi)芯片間規(guī)約操作的時長小于等于一次所述卡間規(guī)約分散操作的時長。
6.根據(jù)權(quán)利要求1至5中任一項所述的基于雙卡雙芯片的模型訓(xùn)練通信方法,其特征在于,將待通信數(shù)據(jù)切分成n個數(shù)據(jù)塊,包括:
7.一種基于雙卡雙芯片的模型訓(xùn)練通信裝置,其特征在于,包括:
8.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如權(quán)利要求1至6中任一項所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。
9.一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6中任一項所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。
10.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6中任一項所述的基于雙卡雙芯片的模型訓(xùn)練通信方法。