本發明涉及通信,特別是指一種指令處理方法、裝置及虛擬機。
背景技術:
1、隨著人工智能、大數據等應用的迅猛發展,帶來對多樣化海量數據計算能力及時效性的更高要求,需要更大的算力進行計算支撐。受硬件架構、通信總線等技術工藝的限制,傳統通用中央處理器(central?processing?unit,cpu)的計算能力趨于飽和。因此,為了提高計算性能、增加系統的靈活性和適應性,從而滿足不同計算任務的需求,計算系統向異構化、并行化發展。異構化指的是在計算系統中使用有別于cpu架構的處理器和加速器來優化執行特定的計算任務,例如:圖形處理器(graphics?processing?unit,gpu)、數字信號處理器(digital?signal?process,dsp)和張量處理器(tensor?processing?unit,tpu),這些加速器在特定任務上具有更高的性能和效率。通過將任務分配給適合執行的處理器和加速器,異構計算系統能夠更好地利用硬件資源,并提高整體的計算性能。并行化是指將計算任務分解為多個子任務,并同時互聯多個處理器節點或加速器節點形成分布式并行系統,在其上執行這些子任務。通過將任務分發到多個計算節點上,可以同時處理多個子任務,從而加速整個計算過程。而由于各廠商硬件僅能識別并運行符合自身指令集架構的應用程序,這樣基于傳統方式實現異構化、并行化的計算系統,需要運用不同廠商的工具分別生成各廠商加速器對應的不同指令集(instruction?set?architecture,指令集)代碼,將導致根據硬件的變化進行繁復的調度,系統負載較高且調度模型也比較復雜。
技術實現思路
1、本發明的目的是提供一種指令處理方法、裝置及虛擬機,以解決通過基于傳統方式實現異構化、并行化的計算系統,需要根據硬件的變化進行繁復的調度,系統負載較高且調度模型也比較復雜的問題。
2、為達到上述目的,本發明的實施例提供一種指令處理方法,包括:
3、獲取應用程序內承載的虛擬isa;
4、根據虛擬isa執行任務編排管理,確定待執行任務對應的虛擬isa序列;
5、將所述虛擬isa序列中的虛擬isa代碼轉換為不同類型的加速器各自對應的目標isa代碼。
6、可選地,所述根據所述虛擬isa執行任務編排管理,確定待執行任務對應的虛擬isa序列,包括:
7、根據所述虛擬isa執行任務編排管理,確定至少一個虛擬任務簇;其中,每個所述虛擬任務簇包括至少一個虛擬線程;
8、在每個虛擬任務簇中的虛擬線程運行相同的程序,得到所述待執行任務對應的虛擬isa序列。
9、可選地,所述根據所述虛擬isa執行任務編排管理,確定至少一個虛擬任務簇,包括:
10、根據所述虛擬isa進行任務識別,確定待執行任務;
11、按照所述待執行任務,對所述虛擬isa進行優化編排處理,確定至少一個虛擬任務簇。
12、可選地,所述方法還包括:
13、生成虛擬任務簇相關信息;
14、將所述虛擬任務簇相關信息進行寄存;
15、其中,所述虛擬任務簇相關信息包括以下至少一項:
16、虛擬任務簇的標識信息,用于指示所述虛擬任務簇所使用輸入數據的讀取位置,和/或所生成輸出數據的寫入位置;
17、虛擬任務簇的維度信息,用于指示所述虛擬任務簇中包含的虛擬線程個數;
18、虛擬線程的標識信息,用于指示所述虛擬線程所使用輸入數據的讀取位置和/或所生成輸出數據的寫入位置。
19、可選地,所述根據所述虛擬isa執行任務編排管理,確定至少一個虛擬任務簇,包括:
20、根據所述虛擬isa進行任務識別,確定待執行任務;
21、按照所述待執行任務,對所述虛擬isa進行任務分解,得到至少一個任務分區;其中,不同任務分區對應待執行任務的不同部分;
22、根據每個所述任務分區,確定至少一個虛擬任務簇;其中,每個任務分區內的不同虛擬任務簇之間相互獨立,且每個任務分區中的虛擬任務簇運行相同的程序。
23、可選地,所述方法還包括:
24、生成任務分區相關信息;
25、將所述任務分區相關信息進行寄存;
26、其中,所述任務分區相關信息包括以下至少一項:
27、任務分區的標識信息,用于指示所述任務分區所使用輸入數據的讀取位置和/或所生成輸出數據的寫入位置;
28、任務分區的維度信息,用于指示所述任務分區中包含的虛擬任務簇個數。
29、可選地,所述將所述虛擬isa序列中的虛擬isa代碼轉換為不同類型的加速器各自對應的目標isa代碼之后,還包括:
30、將所述目標isa代碼緩存至每個加速器對應的數據緩沖區。
31、本技術實施例還提供一種指令處理裝置,包括:
32、獲取模塊,用于獲取應用程序內承載的虛擬isa;
33、確定模塊,用于根據虛擬isa執行任務編排管理,確定待執行任務對應的虛擬isa序列;
34、轉換模塊,用于將所述虛擬isa序列中的虛擬isa代碼轉換為不同類型的加速器各自對應的目標isa代碼。
35、本技術實施例還提供一種虛擬機,包括:虛擬指令加載器、虛擬加速器執行引擎、虛擬指令模型轉換器;其中,
36、所述虛擬指令加載器用于對應用程序內承載的虛擬isa進行加載;
37、所述虛擬加速器執行引擎對所述虛擬指令加載器加載的虛擬isa執行任務編排管理,確定待執行任務對應的虛擬isa序列;
38、所述虛擬指令模型轉換器將所述虛擬加速器執行引擎執行任務編排管理得到的虛擬isa序列中的虛擬isa代碼,轉換為不同類型的加速器各自對應的目標isa代碼。
39、可選地,所述虛擬機還包括:數據緩沖區;其中,
40、所述虛擬指令模型轉換器將所述目標isa代碼緩存至所述數據緩沖區;其中,所述虛擬指令模型轉換器與所述加速器共享內存。
41、本技術實施例還提供一種虛擬機,包括:收發器、處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令;所述處理器執行所述程序或指令時實現如上所述的指令處理方法的步驟。
42、本技術實施例還提供一種可讀存儲介質,其上存儲有程序或指令,所述程序或指令被處理器執行時實現如上所述的指令處理方法的步驟。
43、本技術實施例還提供一種計算機程序產品,包括計算機指令,該計算機指令被處理器執行時實現如上所述的指令處理方法的步驟。
44、本發明的上述技術方案的有益效果如下:
45、本技術實施例中,通過設置可兼容多種異構指令的虛擬isa,并針對兼容多種異構指令的虛擬isa,執行統一的任務編排管理,得到待執行任務對應的虛擬isa序列,通過對虛擬isa執行統一的任務編排管理得到的虛擬isa序列進行轉換,得到的各個類型的加速器分別對應的目標isa代碼。這樣針對同一功能的多種異構化加速器,可以采用虛擬isa執行統一的編排管理,得到各個類型的加速器分別對應的目標isa代碼,將極大提升混合異構系統的協同運用效能,解決了基于傳統方式實現異構化、并行化的計算系統,需要根據硬件的變化進行繁復的調度,系統負載較高且調度模型也比較復雜的問題。