算力卸載方法、裝置、電子設備和存儲介質
1.本發明涉及計算機技術領域,尤其涉及一種算力卸載方法、裝置、電子設備和存儲介質。
背景技術:
2.隨著神經網絡、深度學習、云計算的飛速發展,算網進一步融合,算力資源需要在網絡中盡可能實現互聯互通,以中央處理器(全稱central processing unit,簡稱cpu)為代表的傳統算力資源已經遠遠不夠滿足如此龐大的算力需求。因此,亟需一種能夠節省中央處理器算力開銷的算力卸載方法。
技術實現要素:
3.本發明提供一種算力卸載方法、裝置、電子設備和存儲介質,實現節省中央處理器算力開銷。
4.本發明提供一種算力卸載方法,應用于控制主服務器,所述方法包括:控制驅動模塊向智能網卡發送連接信息;控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;控制容器管理器確定容器創建腳本;控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。
5.根據本發明提供的一種算力卸載方法,所述控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,包括:控制所述智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,并控制所述驅動模塊通過輪詢模式基于數據包與所述智能網卡進行數據交互。
6.根據本發明提供的一種算力卸載方法,所述方法還包括:控制所述容器管理器確定所述容器創建腳本不包括所述創建位置信息時,控制主調度器根據當前各個異構硬件的算力資源,查所述算力資源小于設定閾值的目標異構硬件,并將所述容器創建在所述目標異構硬件上。
7.本發明還提供一種算力卸載方法,應用于控制可編程交換機,所述方法包括:接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;發送所述數據包至多個工作服務器進行分布式訓練;在所述多個工作服務器的分布式訓練中進行參數處理。
8.根據本發明提供的一種算力卸載方法,所述在所述多個工作服務器的分布式訓練
中進行參數處理,包括:存儲所述多個工作服務器在分布式訓練中的返回參數;和/或,基于所述多個工作服務器在分布式訓練中的返回參數進行聚合計算。
9.根據本發明提供的一種算力卸載方法,所述方法還包括:向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器,以便所述第三服務器基于所述帶內網絡遙測信息確定最優路徑;其中,所述帶內網絡遙測信息包括時延和/或帶寬。
10.根據本發明提供的一種算力卸載方法,所述向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器之后,還包括:刪除所述數據包中的所述帶內網絡遙測信息。
11.本發明還提供一種算力卸載裝置,包括:第一控制模塊,用于控制驅動模塊向智能網卡發送連接信息;第二控制模塊,用于控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;第三控制模塊,用于控制容器管理器確定容器創建腳本;第四控制模塊,用于控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。
12.本發明還提供一種算力卸載裝置,包括:接收模塊,用于接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;分布式訓練模塊,用于發送所述數據包至多個工作服務器進行分布式訓練;參數處理模塊,用于在所述多個工作服務器的分布式訓練中進行參數處理。
13.本發明還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如上述任一種所述算力卸載方法。
14.本發明還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如上述任一種算力卸載方法。
15.本發明還提供一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執行時實現如上述任一種所述算力卸載方法。
16.本發明提供的算力卸載方法、裝置、電子設備和存儲介質,通過控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,從而繞過所述主服務器的中央處理器的控制,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷;同時通過控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,從而通過與所述中央處理器結構相異的異構硬件執行算力任務,分擔中央處理器的算力負擔,以實現所述中央處理器的算力資源分配;從而本發明實施
例通過異構硬件與智能網卡協同工作完成中央處理器的算力卸載,節省中央處理器開銷。
附圖說明
17.為了更清楚地說明本發明或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
18.圖1是本發明提供的算力卸載方法的流程示意圖之一;圖2是應用本發明提供的算力卸載方法的主服務器的結構示意圖之一;圖3是應用本發明提供的算力卸載方法的主服務器的結構示意圖之二;圖4是應用本發明提供的算力卸載方法的主服務器的結構示意圖之三;圖5是本發明提供的算力卸載方法的流程示意圖之二;圖6是本發明提供的算力卸載方法的流程示意圖之三;圖7是本發明提供的算力卸載方法的流程示意圖之四;圖8是本發明提供的算力卸載方法的流程示意圖之五;圖9是本發明提供的算力卸載方法的流程示意圖之六;圖10是本發明提供的算力卸載方法的流程示意圖之七;圖11是本發明提供的算力卸載裝置的結構示意圖之一;圖12是本發明提供的算力卸載裝置的結構示意圖之二;圖13是本發明提供的電子設備的結構示意圖。
具體實施方式
19.為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明中的附圖,對本發明中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
20.下面結合圖1-圖10描述本發明的一種算力卸載方法,應用于控制主服務器,請參照圖1,算力卸載方法包括:步驟100、控制驅動模塊向智能網卡發送連接信息。
21.傳統主服務器的數據包接收方式為一個數據包一個中斷的模式,需要調用主服務器的中央處理器產生數據中斷,接收數據包。這會加大對主服務器的中央處理器的算力開銷。因此需要完成對中央處理器的算力卸載。
22.通過控制主服務器的驅動模塊向所述主服務器的智能網卡發送連接信息,便于實現通過智能網卡與主服務器的驅動模塊直接通信相連,主服務器的驅動模塊與智能網卡進行數據交互不通過中央處理器觸發中斷。其中,主服務器的驅動模塊指的是主服務器的供用戶使用的軟件系統中的驅動模塊。智能網卡(smart nic),也稱智能網絡適配器,除了能完成標準網卡所具有的網絡傳輸功能之外,還提供內置的可編程、可配置的硬件加速引擎,提升應用的性能和大幅降低中央處理器在通信中的消耗,為應用提供更多的中央處理器資源。
23.步驟200、控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互。
24.請參照圖2和圖3,智能網卡接收主服務器的驅動模塊發送的連接信息,從而主服務器的驅動模塊綁定并且直接驅動智能網卡,同時將智能網卡的內存空間信息暴露給主服務器的驅動模塊,這樣當一個數據包到達時,主服務器的驅動模塊直接從智能網卡中收發數據包而不需要經過中央處理器。
25.從而本發明實施例繞過所述主服務器的中央處理器的控制,不使用傳統中央處理的中斷模式等待數據包到達再進行觸發,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷。
26.步驟300、控制容器管理器確定容器創建腳本。
27.步驟400、控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配。
28.在數據中心里通常有大量算力資源可以分配,用戶可以通過書寫容器創建腳本,主服務器的容器管理器則會根據書寫好的容器創建腳本進行容器的創建,根據容器創建腳本將容器創建在指定的異構硬件中。通過異構硬件上的容器實現算力任務,分擔中央處理器的算力負擔。
29.其中,容器是輕量的、可執行的獨立軟件包,是鏡像運行的實體。容器組是一組可以被調度到同一臺宿主機上的容器集合。所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。具體的,異構硬件可以包括圖形處理器(全稱graphics processing unit,縮寫:gpu)、張量處理器(全稱tensor processing unit,縮寫:tpu)、神經網絡處理器(neural network processing unit ,縮寫:npu)、數據處理器(data network processing unit ,縮寫:dpu)中的一種或多種。
30.需要說明的是,圖形處理器使用并行計算的方式提升處理效率,結構較為簡單,適合將繪圖運算的相關操作卸載到圖形處理器上運行。圖形處理器和中央處理器一樣也屬于通用芯片。數據處理器適合將電信和存儲等應用卸載到數據處理器上運行。張量處理器,是一種專用芯片,適合專門用來完成深度學習任務,加速深層次神經網絡。神經網絡處理器,也是一種專用芯片,適合用于加速神經網絡。因此,用戶可根據需要將容器創建在對應的異構硬件上,以執行對應的算力任務,實現對中央處理器的算力卸載。
31.具體的,請參照圖4,本發明實施例將一定規模的算力節點組成為一個集,將集分為控制平面和工作平面,控制平面主要負責維護集工作狀態,保存集工作信息,進行資源調度的工作,而工作平面則會監控控制平面上的資源變動,若此變動和自己有關系就去執行對應的算力任務,同時工作平面還會向控制平面定期進行匯報工作狀態,同時需要直接負責容器的創建和管理工作。控制平面主要有服務訪問入口、主調度器、主控制器和存儲模塊。服務訪問入口是該架構的交通樞紐,用戶訪問架構以及對下層的控制都通過服務訪問接口完成,存儲模塊負責存儲集的參數信息,主控制器負責維護集的狀態,負責進行故障檢測,主調度器則負責對容器管理器發送信息創建、管理、銷毀容器。工作平面則是實際進行操作的平面,容器管理器檢測控制平面的信息變動,若從服務訪問入口發來的信息與自己有關,則執行創建、管理、銷毀容器的操作,同時容器管理器定期通過服務訪問
入口向控制平面匯報當前的工作狀態和容器的資源使用情況。容器管理器規定容器組的大小并且在容器組中創建容器。
32.在一個實施例中,具體的容器創建流程如下:用戶書寫容器創建腳本,其中規定了容器的參數配置,以及創建位置信息(用戶也可以選擇不書寫創建位置信息),用戶通過服務訪問入口將容器創建腳本寫入控制平面,服務訪問入口對容器創建腳本進行響應,把容器創建腳本中的容器相關信息(容器的參數配置以及創建位置信)保存在存儲模塊中,主控制器通過服務訪問入口讀取存儲模塊中的容器參數配置信息,然后主控制器會按照容器參數配置信息創建容器。之后主控制器通過服務訪問入口通知主調度器為容器創建選擇合適的位置:若用戶書寫了創建位置信息,主調度器通過服務訪問入口讀取存儲模塊的容器創建腳本中的創建位置信息,根據創建位置信息將容器創建在指定的異構硬件上面。
33.需要說明的是,容器管理器定期訪問服務訪問入口獲取容器創建信息,及時根據服務訪問入口的容器創建信息增加新的容器。創建好容器之后需要對容器進行維護和管理,即容器管理器定期查看容器工作的狀態信息,異構硬件上的剩余內存空間,當前容器和容器組的工作負載。容器管理器定期向服務訪問入口上報容器信息,通過服務訪問入口將信息保存在存儲模塊中,方便下一次的容器創建。容器管理器還負責容器的清理工作,當檢測到有容器長期空閑沒有被使用,則對容器進行清理工作以保證容器不要將異構硬件資源占滿。在清理容器時,也需要將清楚的容器信息通過服務訪問入口通知存儲模塊刪除相應的容器信息。
34.通過控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,從而繞過所述主服務器的中央處理器的控制,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷;同時通過控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,從而通過與所述中央處理器結構相異的異構硬件執行算力任務,分擔中央處理器的算力負擔,以實現所述中央處理器的算力資源分配;從而本發明實施例通過異構硬件與智能網卡協同工作完成中央處理器的算力卸載,節省中央處理器開銷。
35.在本發明實施例的其他方面,步驟200、所述控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,具體包括:控制所述智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,并控制所述驅動模塊通過輪詢模式基于數據包與所述智能網卡進行數據交互。
36.智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,主服務器的驅動模塊提供驅動,綁定到智能網卡上面,通過輪詢的方式,直接主動詢問智能網卡是否有數據包到來,從而繞過所述主服務器的中央處理器的控制,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷。
37.具體的,請參照圖3,本發明實施例的主服務器具體包括核心控制模塊、數據包管理器、報文轉發分類器和驅動模塊。核心控制模塊是算力卸載架構的大腦,負責對智能網卡的訪問,負責分配任意大小的緩存,以及負責先進先出的軟件隊列的管理。當多個中央處理器需要訪問同一張網卡的時候,核心控制模塊為每一個中央處理器預留出一定的內存,避免競爭。數據包管理器負責數據包的管理工作,提供數據包處理的標準,能夠完成接收數據包并且完成數據包的分配和負載均衡的工作。報文轉發分類器負責數據包的查表操作,查
表操作通過匹配算法完成。驅動模塊提供驅動綁定到智能網卡上面,通過輪詢的方式得到極高的網絡吞吐。通過驅動模塊綁定并且直接驅動智能網卡,同時將智能網卡的內存空間信息暴露給主服務器,這樣當一個數據包到達時,主服務器的驅動模塊直接從智能網卡中收發數據包而不需要經過中央處理器。
38.本發明實施例在進行數據包的接收時,數據包觸發硬中斷,主服務器進行數據包接收和數據包處理工作,具體流程如下:數據包到達智能網卡后會觸發硬件中斷,并且將數據包接收成功標志復位,通知上面的主服務器進行數據包的接收,主服務器的數據包管理器分配一個緩存出來用于存儲信息,啟動驅動模塊處理硬件產生的中斷,啟動輪詢模式,定時進行主動查詢數據包接收成功標志,當發現數據包接收成功標志被復位了,則意味著有數據包到來,訪問智能網卡查詢是否有數據包到來,核心控制模塊從智能網卡中將數據包映射到主服務器中,并且標記上數據包接收成功標志。從本發明實施例不使用傳統的一個數據包一個中斷的模式,不調用中央處理器控制,不產生數據中斷,接收到的數據包存儲在數據包管理器中,進一步由報文轉發分類器完成包處理。
39.本發明實施例在進行數據包的發送時,數據包寫入主服務器的核心控制模塊,同時需要寫入地址信息,在數據包的末尾寫入數據包發動成功標志,主服務器的驅動模塊讀取核心控制模塊,從核心控制模塊中獲取數據包,并且從智能網卡發送出去,具體過程如下:將主服務器的數據包寫入核心控制模塊的軟件隊列中,在隊列末尾寫入數據包發送成功標志,當主服務器發送數據包時,根據隊列最后一次發送的位置信息,核心控制模塊會將報文寫入軟件隊列相應位置。對發送的數據包分片處理,每個分片的數據包的最后一個id指向同一個軟件隊列元素。驅動模塊通過讀取核心控制模塊的軟件隊列地址,不斷輪詢查看是否有數據包發送成功標志,當看到數據包發送成功標志后,則意味著數據包已經發送結束,最后通過智能網卡將數據包發送出去。
40.從而本發明實施例控制所述智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,并控制所述驅動模塊通過輪詢模式基于數據包與所述智能網卡進行數據交互。本發明實施例實現繞過所述主服務器的中央處理器的控制,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷。
41.在本發明實施例的其他方面,請參照圖5,所述方法還包括:步驟500、控制所述容器管理器確定所述容器創建腳本不包括所述創建位置信息時,控制主調度器根據當前各個異構硬件的算力資源,查所述算力資源小于設定閾值的目標異構硬件,并將所述容器創建在所述目標異構硬件上。
42.若用戶沒有書寫容器創建腳本中的創建位置信息,無法通過容器創建腳本將容器創建在指定的異構硬件。由于異構硬件上還剩余多少算力資源以及負載信息都通過匯報給容器管理器并且上傳到服務訪問入口保存在存儲模塊中,從而通過主服務器的主調度器通過對服務訪問入口的檢測,查到有新的容器產生,則通過服務訪問入口訪問存儲模塊的異構硬件算力資源及負載信息,查相對空閑的異構硬件,即算力資源小于設定閾值的目標異構硬件。并且將容器創建在算力資源充足的異構硬件設備(即目標異構硬件)上。容器管理器定期訪問服務訪問入口獲取容器創建信息,及時根據服務訪問入口的容器創建信息增加新的容器。
43.需要說明的是,設定閾值可根據實際情況設置,在此不說明具體參數。
44.通過控制所述主服務器的容器管理器確定所述容器創建腳本不包括所述創建位置信息時,控制所述主服務器的主調度器根據當前各個異構硬件的算力資源,查所述算力資源小于設定閾值的目標異構硬件,并將所述容器創建在所述目標異構硬件上。從而通過與所述中央處理器結構相異的異構硬件執行算力任務,分擔主服務器的中央處理器的算力負擔,以實現主服務器的中央處理器的算力資源分配。
45.請參照圖6,本發明實施例還提供一種算力卸載方法,應用于控制可編程交換機,所述方法包括:步驟600、接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;步驟700、發送所述數據包至多個工作服務器進行分布式訓練;步驟800、在所述多個工作服務器的分布式訓練中進行參數處理。
46.請參照圖7,在進行神經網絡訓練的過程中,由于神經網絡模型往往非常龐大,一臺服務器難以滿足訓練過程中的算力需求,于是目前通常采用分布式訓練的方式,由一臺主服務器將神經網絡訓練任務分發到工作服務器中。因此本發明實施例主服務器的智能網卡將數據包發送至可編程交換機;可編程交換機將所述數據包發送至多個工作服務器進行分布式訓練。所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上。
47.在分布式訓練中,每一臺工作服務器訓練不同的數據集,在進行完一輪的訓練之后,將參數回傳到可編程交換機中。基于可編程交換機具有的有限內存和簡單的計算功能,本發明實施例控制所述可編程交換機在所述多個工作服務器的分布式訓練中進行參數處理。
48.通過可編程交換機在所述多個工作服務器的分布式訓練中進行參數處理,本發明實施例可分擔主服務器的中央處理器在多個工作服務器的分布式訓練中的算力負擔,進一步地節省主服務器的中央處理器的算力開銷。
49.具體的,在一個實施例中,步驟800、在所述多個工作服務器的分布式訓練中進行參數處理,包括:可編程交換機存儲所述多個工作服務器在分布式訓練中的返回參數;和/或基于所述多個工作服務器在分布式訓練中的所述返回參數進行聚合計算。
50.具體的,本發明實施例可編程交換機可作為緩存節點,將所述多個工作服務器在分布式訓練中的返回參數進行保存。
51.或者,本發明實施例可通過可編程交換機進行聚合操作,將梯度值等返回參數進行聚合計算,并且可編程交換機將計算出來的梯度值再次回傳到各個工作服務器中去開啟新一輪的訓練。
52.當然,在一個實施例中,可編程交換機可同時存儲所述多個工作服務器在分布式訓練中的返回參數;以及基于所述多個工作服務器在分布式訓練中的所述返回參數進行聚合計算。
53.需要說明的是,當梯度值收斂到滿足要求的值時,完成訓練,可編程交換機完成返回參數的聚合并且將最終的計算結果回傳到主服務器中得到最終的訓練完成的模型,為避免此傳遞過程中產生的數據包丟失,使用重傳機制。
54.另外,通過在網絡中對數據進行命名并且以此方式取代對物理主機的命名,構建可編程交換機的網絡存儲功能(可編程交換機為緩存節點),緩存數據包,減少網絡中的流量,同時降低用戶訪問數據包的時延。
55.在本發明實施例的其他方面,請參照圖8,所述方法還包括:步驟910、向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器,以便所述第三服務器基于所述帶內網絡遙測信息確定最優路徑;其中,所述帶內網絡遙測信息包括時延和/或帶寬。
56.當主服務器與工作服務器距離較遠時,需要選擇一條合適的路徑將算力任務分配至工作服務器中。通常情況下通過查詢路由表可獲取跳數最短的路徑。但是當路徑長度相等時,需要選擇延遲低的路徑。
57.需要說明的是,當主服務器與工作服務器距離較遠時,主服務器與工作服務器之間往往包括多個可編程交換機進行通信。本發明實施例以主服務器與工作服務器之間包括多個可編程交換機進行說明。本發明實施例可編程交換機向多個工作服務器發送數據包過程中,獲取每一跳可編程交換機的數據包中的帶內網絡遙測信息,并將每一跳的所述帶內網絡遙測信息發送至第三服務器。以便第三服務器基于每一跳的所述帶內網絡遙測信息確定最優路徑。其中,所述帶內網絡遙測信息包括時延和/或帶寬。例如當需要時延最低的路徑時,所述帶內網絡遙測信息包括時延。當需要帶寬最大的路徑時,所述帶內網絡遙測信息包括帶寬。當然帶內網絡遙測信息可同時包括時延和帶寬。
58.具體的,數據包從主服務器發出并到達可編程交換機時,可編程交換機匹配解析該數據包,根據需要進行的遙測任務在數據包頭的后面插入封裝著指定遙測的帶內網絡遙測信息的遙測包頭,對數據包路徑上網絡設備遵循的遙測指令進行編碼,將遙測包頭指定的帶內網絡遙測信息封裝成定長遙測數據插入到遙測包頭之后。當數據包抵達路徑末尾的服務器時,可編程交換機向第三服務器發送數據包發送結束信息,第三服務器將收集到的帶內網絡遙測信息統一發送到記錄模塊去,生成記錄表,并且將記錄表發送給第三服務器的分析模塊,由第三服務器的分析模塊生成路徑決策,決定走哪一條網絡狀態較好的路徑。例如分析模塊生成時延最少的路徑和/或帶寬最大的路徑。
59.從而本發明實施例通過獲取可編程交換機的數據包中的帶內網絡遙測信息,以便第三服務器基于所述帶內網絡遙測信息確定最優路徑。從而通過第三服務器確定最優路徑也為主服務器的中央處理器分擔算力負擔,從而進一步地節省主服務器的中央處理器的算力開銷。
60.在本發明實施例的其他方面,請參照圖9,步驟910、所述向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器之后,還包括:步驟920、刪除所述數據包中的所述帶內網絡遙測信息。
61.本發明實施例中,為了避免隨著跳數增加導致帶內網絡遙測信息增多占用可編程交換機的內存過多,請參照圖10,本發明實施例可將每一跳結束后的可編程交換機的數據包中的帶內網絡遙測信息發送給第三服務器,并且將每一跳的可編程交換機的數據包中的所述帶內網絡遙測信息刪除,繼續進行下一跳的記錄。從而實現節約可編程交換機的內存,提高可編程交換機的使用效率,增強可編程交換機節省主服務器的中央處理器的算力開銷
的效果。
62.下面對本發明提供的算力卸載裝置進行描述,下文描述的算力卸載裝置與上文描述的算力卸載方法可相互對應參照。
63.請參照圖11,本發明還提供一種算力卸載裝置,包括:第一控制模塊201,用于控制驅動模塊向智能網卡發送連接信息;第二控制模塊202,用于控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;第三控制模塊203,用于控制容器管理器確定容器創建腳本;第四控制模塊204,用于控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。
64.本發明實施例的算力卸載裝置,通過控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,從而繞過所述主服務器的中央處理器的控制,實現所述智能網卡與所述驅動模塊進行數據交互,減少智能網卡與驅動模塊進行數據交互時中央處理器的算力開銷;同時通過控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,從而通過與所述中央處理器結構相異的異構硬件執行算力任務,分擔中央處理器的算力負擔,以實現所述中央處理器的算力資源分配;從而本發明實施例通過異構硬件與智能網卡協同工作完成中央處理器的算力卸載,節省中央處理器開銷。
65.在一個實施例中,所述第二控制模塊202,具體包括:控制所述智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,并控制所述驅動模塊通過輪詢模式基于數據包與所述智能網卡進行數據交互。
66.在一個實施例中,所述算力卸載裝置還包括:第五控制模塊,用于控制所述容器管理器確定所述容器創建腳本不包括所述創建位置信息時,控制主調度器根據當前各個異構硬件的算力資源,查所述算力資源小于設定閾值的目標異構硬件,并將所述容器創建在所述目標異構硬件上。
67.請參照圖12,本發明還提供一種算力卸載裝置,包括:數據包接收模塊205,用于接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;分布式訓練模塊206,用于發送所述數據包至多個工作服務器進行分布式訓練;參數處理模塊207,用于在所述多個工作服務器的分布式訓練中進行參數處理。
68.在一個實施例中,所述參數處理模塊207包括:存儲所述多個工作服務器在分布式訓練中的返回參數;和/或,基于所述多個工作服務器在分布式訓練中的返回參數進行聚合計算。
69.在一個實施例中,所述算力卸載裝置還包括:第六控制模塊,用于向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器,以便所述第三服務器基于所述帶內網絡遙測信息確定最優路徑;其中,所述帶內網絡遙測信息包括時延和/或帶寬。
70.在一個實施例中,所述算力卸載裝置還包括:刪除模塊,用于刪除所述數據包中的所述帶內網絡遙測信息。
71.圖13示例了一種電子設備的實體結構示意圖,如圖13所示,該電子設備可以包括:處理器(processor)1310、通信接口(communications interface)1320、存儲器(memory)1330和通信總線1340,其中,處理器1310,通信接口1320,存儲器1330通過通信總線1340完成相互間的通信。處理器1310可以調用存儲器1330中的邏輯指令,以執行算力卸載方法,該方法包括:控制驅動模塊向智能網卡發送連接信息;控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;控制容器管理器確定容器創建腳本;控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。或者;接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;發送所述數據包至多個工作服務器進行分布式訓練;在所述多個工作服務器的分布式訓練中進行參數處理。
72.此外,上述的存儲器1330中的邏輯指令可以通過軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-only memory)、隨機存取存儲器(ram,random access memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
73.另一方面,本發明還提供一種計算機程序產品,所述計算機程序產品包括計算機程序,計算機程序可存儲在非暫態計算機可讀存儲介質上,所述計算機程序被處理器執行時,計算機能夠執行上述各方法所提供的算力卸載方法,該方法包括:控制驅動模塊向智能網卡發送連接信息;控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;控制容器管理器確定容器創建腳本;控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。或者;接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;發送所述數據包至多個工作服務器進行分布式訓練;在所述多個工作服務器的分布式訓練中進行參數處理。
74.又一方面,本發明還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現以執行上述各方法提供的算力卸載方法,該方法包括:控制驅動模塊向智能網卡發送連接信息;控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行
數據交互;控制容器管理器確定容器創建腳本;控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。或者;接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;發送所述數據包至多個工作服務器進行分布式訓練;在所述多個工作服務器的分布式訓練中進行參數處理。
75.以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
76.通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
77.最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
技術特征:
1.一種算力卸載方法,應用于控制主服務器,其特征在于,所述方法包括:控制驅動模塊向智能網卡發送連接信息;控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;控制容器管理器確定容器創建腳本;控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。2.根據權利要求1所述的算力卸載方法,其特征在于,所述控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,包括:控制所述智能網卡基于所述連接信息完成與所述驅動模塊的通信連接,并控制所述驅動模塊通過輪詢模式基于數據包與所述智能網卡進行數據交互。3.根據權利要求1所述的算力卸載方法,其特征在于,所述方法還包括:控制所述容器管理器確定所述容器創建腳本不包括所述創建位置信息時,控制主調度器根據當前各個異構硬件的算力資源,查所述算力資源小于設定閾值的目標異構硬件,并將所述容器創建在所述目標異構硬件上。4.一種算力卸載方法,應用于控制可編程交換機,其特征在于,所述方法包括:接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;發送所述數據包至多個工作服務器進行分布式訓練;在所述多個工作服務器的分布式訓練中進行參數處理。5.根據權利要求4所述的算力卸載方法,其特征在于,所述在所述多個工作服務器的分布式訓練中進行參數處理,包括:存儲所述多個工作服務器在分布式訓練中的返回參數;和/或,基于所述多個工作服務器在分布式訓練中的返回參數進行聚合計算。6.根據權利要求4所述的算力卸載方法,其特征在于,所述方法還包括:向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器,以便所述第三服務器基于所述帶內網絡遙測信息確定最優路徑;其中,所述帶內網絡遙測信息包括時延和/或帶寬。7.根據權利要求6所述的算力卸載方法,其特征在于,所述向多個工作服務器發送數據包過程中,獲取所述數據包中的帶內網絡遙測信息,并將所述帶內網絡遙測信息發送至第三服務器之后,還包括:刪除所述數據包中的所述帶內網絡遙測信息。8.一種算力卸載裝置,其特征在于,包括:第一控制模塊,用于控制驅動模塊向智能網卡發送連接信息;第二控制模塊,用于控制所述智能網卡基于所述連接信息與所述驅動模塊進行數據交互,以繞過中央處理器的控制實現所述智能網卡與所述驅動模塊進行數據交互;
第三控制模塊,用于控制容器管理器確定容器創建腳本;第四控制模塊,用于控制所述容器管理器基于所述容器創建腳本,將容器創建在異構硬件上,以實現所述中央處理器的算力資源分配;其中,所述容器創建腳本包括所述容器的參數配置和所述容器在所述異構硬件上的創建位置信息;所述異構硬件表征與所述中央處理器結構相異的硬件。9.一種算力卸載裝置,其特征在于,包括:接收模塊,用于接收智能網卡發送的數據包;所述數據包是所述智能網卡與驅動模塊進行數據交互得到的;所述智能網卡和所述驅動模塊分別設于主服務器上;分布式訓練模塊,用于發送所述數據包至多個工作服務器進行分布式訓練;參數處理模塊,用于在所述多個工作服務器的分布式訓練中進行參數處理。10.一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1至3,或權利要求4至7中任一項所述的算力卸載方法。11.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至3,或權利要求4至7中任一項所述的算力卸載方法。
技術總結
本發明涉及計算機技術領域,尤其涉及一種算力卸載方法、裝置、電子設備和存儲介質,包括:控制驅動模塊向智能網卡發送連接信息;控制智能網卡基于連接信息與驅動模塊進行數據交互,以繞過中央處理器的控制實現智能網卡與驅動模塊進行數據交互;控制容器管理器確定容器創建腳本;控制容器管理器基于容器創建腳本,將容器創建在異構硬件上,以實現中央處理器的算力資源分配;其中,容器創建腳本包括容器的參數配置和容器在異構硬件上的創建位置信息;異構硬件表征與中央處理器結構相異的硬件。本發明實施例通過異構硬件與智能網卡協同工作完成中央處理器的算力卸載,節省中央處理器開銷。器開銷。器開銷。
