本技術(shù)屬于計算機領(lǐng)域,特別涉及一種異構(gòu)并行運算系統(tǒng)及分布式訓(xùn)練方法。
背景技術(shù):
1、在人工智能和大模型的發(fā)展過程中,涌現(xiàn)了許多為人工智能設(shè)計的硬件資源,如gpu、tpu和npu等。這些硬件資源在提供高性能計算能力方面具有重要作用。然而,隨著大模型訓(xùn)練需求的不斷增加,單一計算資源已經(jīng)無法滿足要求,而且在大部分公司內(nèi)部,不同類型的硬件資源也存在差異,導(dǎo)致資源利用率不高。
2、現(xiàn)有技術(shù)主要包括傳統(tǒng)的任務(wù)調(diào)度系統(tǒng)和分布式計算框架。傳統(tǒng)的任務(wù)調(diào)度系統(tǒng)主要利用作業(yè)調(diào)度算法對任務(wù)進行調(diào)度,但對于異構(gòu)硬件資源的調(diào)度并不友好,無法充分利用不同硬件的性能優(yōu)勢。分布式計算框架如hadoop和spark等可以進行分布式任務(wù)調(diào)度,但對于異構(gòu)硬件資源的調(diào)度支持有限。
3、傳統(tǒng)支持并行運算的計算框架和ai開發(fā)平臺在硬件資源層面多采用同構(gòu)的ai計算卡,如基于gpu的平臺或者npu的平臺,無法充分利用不同類型的ai計算卡硬件資源,導(dǎo)致資源利用率低下;部分ai開發(fā)平臺的部署也使用了異構(gòu)的智能計算資源,但只涉及了資源異構(gòu),對不同資源打上標(biāo)簽,根據(jù)業(yè)務(wù)需要對任務(wù)匹配相應(yīng)的資源和計算框架,具體單一任務(wù)的計算執(zhí)行仍然是在同構(gòu)的算力,不能跨異構(gòu)算力,不是任務(wù)級別的異構(gòu),在多框架多硬件上無法做到統(tǒng)一,缺乏自適應(yīng)的資源調(diào)度機制,無法根據(jù)實際需求進行靈活的資源調(diào)度。
4、因此,亟需一種異構(gòu)并行運算系統(tǒng),能夠解決上述問題。
技術(shù)實現(xiàn)思路
1、為了解決所述現(xiàn)有技術(shù)的不足,本技術(shù)提供了一種異構(gòu)并行運算框架及使用方法,實現(xiàn)了對gpu與npu等異構(gòu)ai計算卡的資源監(jiān)控、集群創(chuàng)建、作業(yè)調(diào)度等功能,實現(xiàn)同一個計算任務(wù)同時調(diào)用多種異構(gòu)ai計算卡進行并行計算,實現(xiàn)了任務(wù)級別的異構(gòu)計算。實現(xiàn)對單機模型訓(xùn)練代碼進行封裝,配合異構(gòu)算力環(huán)境的創(chuàng)建,即可實現(xiàn)深度學(xué)習(xí)模型在異構(gòu)ai算力環(huán)境下的異構(gòu)并行計算。
2、本技術(shù)所要達到的技術(shù)效果通過以下方案實現(xiàn):
3、根據(jù)本技術(shù)的第一方面,提供一種異構(gòu)并行運算系統(tǒng),包括任務(wù)流程管理模塊、異構(gòu)集群資源管理模塊、數(shù)據(jù)分發(fā)管理模塊以及并行策略控制模塊,其中:
4、所述任務(wù)流程管理模塊,用于解析模型分布式訓(xùn)練任務(wù),定義相應(yīng)的節(jié)點,所述節(jié)點包括任務(wù)管理節(jié)點、參數(shù)服務(wù)節(jié)點以及異構(gòu)計算節(jié)點,將所述訓(xùn)練任務(wù)分解為多個子任務(wù),并將這些子任務(wù)分配給不同的節(jié)點進行并行計算;
5、所述異構(gòu)集群資源管理模塊,用于管理和調(diào)用多種不同結(jié)構(gòu)的硬件資源形成所述節(jié)點,對硬件資源進行監(jiān)控和保障處理;
6、所述數(shù)據(jù)分發(fā)管理模塊,用于管理和處理系統(tǒng)中的數(shù)據(jù)信息,至少包括將數(shù)據(jù)信息進行預(yù)處理、切分處理、分發(fā)管理和輪詢;
7、所述并行策略控制模塊,用于完成異構(gòu)分布式計算和模型匯聚。
8、優(yōu)選地,所述任務(wù)流程管理模塊根據(jù)所述訓(xùn)練任務(wù)的優(yōu)先級、依賴關(guān)系以及資源需求,采用均勻調(diào)度或者資源狀態(tài)調(diào)度,將所述訓(xùn)練任務(wù)分配給所述節(jié)點;其中:
9、所述均勻調(diào)度為平均調(diào)度到所有擁有該資源的所述節(jié)點上進行計算;
10、所述資源狀態(tài)調(diào)度為根據(jù)各個所述節(jié)點的資源大小,按照從大到小的順序分配到滿足所述訓(xùn)練任務(wù)的節(jié)點上。
11、優(yōu)選地,所述多種不同結(jié)構(gòu)的硬件資源包括但不限于cpu、gpu、npu、tpu以及bpu,將硬件資源劃分為多個資源組進行管理,同一資源組里分配有相同的硬件資源,同種硬件資源有若干資源組,每個資源組形成一個節(jié)點。
12、優(yōu)選地,所述節(jié)點之間通過ip和端口構(gòu)建異構(gòu)分布式集群,第一級任務(wù)調(diào)度使用grpc通信,下發(fā)計算任務(wù)到各個資源組,第二級任務(wù)調(diào)度時使用高速通信通道,利用allreduce方式進行計算;并監(jiān)控集群內(nèi)的所有節(jié)點和接入的硬件資源,當(dāng)某一節(jié)點或某一硬件資源出現(xiàn)故障,能夠進行告警、修復(fù)或遷移。
13、優(yōu)選地,所述數(shù)據(jù)分發(fā)管理模塊對數(shù)據(jù)信息進行預(yù)處理包括:對數(shù)據(jù)信息進行尺寸變換、歸一化處理、數(shù)據(jù)增強以及分詞處理;
14、切分處理包括對數(shù)據(jù)信息的平均切分或者加權(quán)切分,其中加權(quán)切分是根據(jù)各節(jié)點占所有節(jié)點的總算力的比例進行切分;
15、分發(fā)管理為對所述訓(xùn)練任務(wù)產(chǎn)生的全部數(shù)據(jù)信息進行切分后,發(fā)送至各個節(jié)點。
16、優(yōu)選地,在所有異構(gòu)計算節(jié)點上的數(shù)據(jù)信息完成一次迭代訓(xùn)練后,并行策略控制模塊讓各異構(gòu)計算節(jié)點向相鄰的異構(gòu)計算節(jié)點隨機傳遞一定比例的數(shù)據(jù)。
17、根據(jù)本技術(shù)的第二方面,提供一種采用上述異構(gòu)并行運算系統(tǒng)的分布式訓(xùn)練方法,包括如下步驟:
18、步驟1:創(chuàng)建分布式訓(xùn)練任務(wù)并提交至異構(gòu)并行運算系統(tǒng);
19、步驟2:任務(wù)流程管理模塊解析所述分布式訓(xùn)練任務(wù),定義相應(yīng)的任務(wù)管理節(jié)點、參數(shù)服務(wù)節(jié)點和異構(gòu)計算節(jié)點,并將資源需求信息發(fā)送至異構(gòu)集群資源管理模塊;
20、步驟3:異構(gòu)集群資源管理模塊根據(jù)解析得到的任務(wù)資源需求,創(chuàng)建相應(yīng)的任務(wù)管理節(jié)點、參數(shù)服務(wù)節(jié)點和異構(gòu)計算節(jié)點;
21、步驟4:任務(wù)流程管理模塊進行分布式訓(xùn)練任務(wù)調(diào)度:任務(wù)管理節(jié)點根據(jù)異構(gòu)計算節(jié)點劃分所述分布式訓(xùn)練任務(wù),并發(fā)送至各個資源組;同時將數(shù)據(jù)切分策略信息發(fā)送至數(shù)據(jù)分發(fā)管理模塊,將并行訓(xùn)練策略信息發(fā)送至并行策略控制模塊;
22、步驟5:數(shù)據(jù)分發(fā)管理模塊對所述分布式訓(xùn)練任務(wù)的相應(yīng)數(shù)據(jù)集進行預(yù)處理、切分處理以及分發(fā);
23、步驟6:并行策略控制模塊執(zhí)行相應(yīng)的分布式訓(xùn)練;
24、步驟7:任務(wù)流程管理模塊對執(zhí)行中的分布式訓(xùn)練任務(wù)進行監(jiān)控,包括任務(wù)狀態(tài)監(jiān)控和訓(xùn)練日志監(jiān)控;
25、步驟8:分布式訓(xùn)練任務(wù)結(jié)束后,任務(wù)流程管理模塊通知異構(gòu)集群資源管理模塊對所述分布式訓(xùn)練任務(wù)對應(yīng)的任務(wù)管理節(jié)點、參數(shù)服務(wù)節(jié)點和異構(gòu)計算節(jié)點進行釋放。
26、優(yōu)選地,在步驟1中,具體包括:
27、步驟11:根據(jù)需要創(chuàng)建模型開發(fā)項目,記錄項目的相關(guān)信息;
28、步驟12:定義相關(guān)的模型訓(xùn)練任務(wù),使用通用計算框架編寫項目代碼,定義單機運行所需要的模型、數(shù)據(jù)集、優(yōu)化器以及損失函數(shù);
29、步驟13:對模型訓(xùn)練任務(wù)配置分布式訓(xùn)練所需的算力資源、數(shù)據(jù)切分策略以及并行訓(xùn)練策略;
30、步驟14:提交模型開發(fā)任務(wù)至所述異構(gòu)并行運算系統(tǒng)。
31、優(yōu)選地,在步驟4中,任務(wù)管理節(jié)點根據(jù)異構(gòu)計算節(jié)點劃分所述分布式訓(xùn)練任務(wù),將一級任務(wù)下發(fā)到各個資源組,各個資源組將所述一級任務(wù)劃分為若干二級任務(wù),將所述二級任務(wù)分配至所述資源組內(nèi)的所有硬件資源上。
32、優(yōu)選地,在步驟6中,在數(shù)據(jù)分發(fā)管理模塊下發(fā)模型訓(xùn)練數(shù)據(jù)的同時,所有異構(gòu)計算節(jié)點開始同步參數(shù)服務(wù)節(jié)點的初始全局模型信息;
33、根據(jù)任務(wù)流程管理模塊解析得到的并行訓(xùn)練策略信息,以及對分布式訓(xùn)練任務(wù)的調(diào)度,異構(gòu)計算節(jié)點進行本地模型訓(xùn)練并與參數(shù)服務(wù)節(jié)點進行模型信息交互,共同完成模型分布式訓(xùn)練任務(wù)的執(zhí)行。
34、根據(jù)本技術(shù)的一個實施例,采用本技術(shù)的異構(gòu)并行運算系統(tǒng)的有益效果在于:本異構(gòu)并行運算系統(tǒng)支持高拓展性,支持多通用計算框架,同時支持多種類型的智能算力硬件設(shè)備;
35、能夠?qū)⒁粋€深度學(xué)習(xí)異構(gòu)任務(wù)拆分并分配到不同資源類型的智能算力硬件上,并發(fā)執(zhí)行任務(wù),提高計算性能和效率;
36、異構(gòu)并行運算系統(tǒng)可以充分利用不同資源類型的智能算力硬件并適配更多ai模型開發(fā)需求,可以按需采用同構(gòu)的ai計算卡執(zhí)行模型的分布式訓(xùn)練,也可以采用異構(gòu)的ai計算卡執(zhí)行模型的分布式訓(xùn)練。