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