1.一種圖形處理器GPU資源的分配方法,其特征在于,所述方法應用于GPU資源的分配系統(tǒng)中,所述系統(tǒng)包括全局邏輯控制器以及至少兩個能夠與所述全局邏輯控制器通信的流式多處理器SM,所述方法包括:
所述全局邏輯控制器從核kernel狀態(tài)寄存器表中確定待分發(fā)kernel程序,所述kernel狀態(tài)寄存器表中包括每個未完成運行的kernel程序的優(yōu)先級以及每個未完成運行的kernel程序中未分發(fā)的線程塊block數(shù)量,所述待分發(fā)kernel程序為所述kernel狀態(tài)寄存器表中優(yōu)先級最高且未分發(fā)的block數(shù)量不為零的kernel程序;
所述全局邏輯控制器從SM狀態(tài)寄存器表中查找能夠運行至少一個完整block的SM,所述SM狀態(tài)寄存器表中包括每個SM中的剩余資源量以及每個SM中block的最高優(yōu)先級;
當所述全局邏輯控制器未查找到能夠運行至少一個完整block的SM時,從所述SM狀態(tài)寄存器表中查找第一SM,所述第一SM為能夠運行至少一個線程束warp的SM;
當所述全局邏輯控制器查找到所述第一SM時,將所述待分發(fā)kernel程序中的block分發(fā)給所述第一SM;
當所述全局邏輯控制器未查找到所述第一SM時,查找第二SM,所述第二SM中block的最高優(yōu)先級低于所述待分發(fā)kernel程序的優(yōu)先級;
當所述全局邏輯控制器查找到所述第二SM時,將所述待分發(fā)kernel程序中的block分發(fā)給所述第二SM。
2.根據(jù)權利要求1所述的GPU資源的分配方法,其特征在于,在所述全局邏輯控制器從SM狀態(tài)寄存器表中查找能夠運行至少一個完整block的SM之后,所述方法還包括:
當所述全局邏輯控制器查找到能夠運行至少一個完整block的SM時,確定第一數(shù)量,所述第一數(shù)量為所述能夠運行一個完整block的SM實際能夠運行的block的數(shù)量;
當所述待分發(fā)kernel程序中未分發(fā)的block的數(shù)量大于所述第一數(shù)量時,將所述待分發(fā)kernel程序中所述第一數(shù)量的block分發(fā)給所述能夠運行至少一個完整block的SM;
當所述待分發(fā)kernel程序中未分發(fā)的block的數(shù)量小于或等于所述第一數(shù)量時,將所述待分發(fā)kernel程序中未分發(fā)的block全部分發(fā)給所述能夠運行至少一 個完整block的SM。
3.根據(jù)權利要求2所述的GPU資源的分配方法,其特征在于,在所述全局邏輯控制器將所述待分發(fā)kernel程序中的block分發(fā)給所述第二SM之后,所述方法還包括:
第二SM邏輯控制器從block狀態(tài)寄存器表中確定優(yōu)先級最高的block,所述第二SM邏輯控制器為所述第二SM中的SM邏輯控制器,所述block狀態(tài)寄存器表包括被分發(fā)到所述第二SM中的每個block的優(yōu)先級;
所述第二SM邏輯控制器查找當前的空閑硬件warp;
當所述第二SM邏輯控制器確定所述空閑硬件warp能夠運行一個warp,且未接收到優(yōu)先級更高的block時,將所述優(yōu)先級最高的block中的一個warp分發(fā)給所述空閑硬件warp。
4.根據(jù)權利要求1至3中任一項所述的GPU資源的分配方法,其特征在于,所述SM狀態(tài)寄存器表中包括每個SM的剩余寄存器數(shù)量、剩余硬件warp數(shù)量以及剩余共享存儲空間,所述第一SM為所述剩余寄存器數(shù)量大于運行一個warp所需的寄存器數(shù)量、所述剩余硬件warp數(shù)量大于運行一個warp所需的硬件warp數(shù)量且所述剩余共享存儲空間大于運行一個warp所需的共享存儲空間的SM。
5.根據(jù)權利要求4所述的GPU資源的分配方法,其特征在于,在所述當所述第二SM邏輯控制器確定所述空閑硬件warp能夠運行一個warp,且未接收到優(yōu)先級更高的block時,將所述優(yōu)先級最高的block中的一個warp分發(fā)給所述硬件warp之后,所述方法還包括:
所述第二SM邏輯控制器確定所述第二SM中有運行完成的warp時,通知所述全局邏輯控制器更新所述第二SM的剩余寄存器數(shù)量、剩余warp數(shù)量以及剩余共享存儲空間;
當所述第二SM邏輯控制器確定所述運行完成的warp所屬block中不存在未運行的warp時,確定所述第二SM中未運行完成的block的最高優(yōu)先級,通知所述全局邏輯控制器更新所述SM狀態(tài)寄存器表中的所述第二SM中block的最高優(yōu)先級。
6.一種圖形處理器GPU資源的分配系統(tǒng),其特征在于,所述系統(tǒng)包括全局邏輯控制器以及至少兩個能夠與所述全局邏輯控制器通信的流式多處理器SM;所述全局邏輯控制器包括:第一確定單元、第一查找單元以及第一分發(fā)單 元;
所述第一確定單元,用于從核kernel狀態(tài)寄存器表中確定待分發(fā)kernel程序,所述kernel狀態(tài)寄存器表中包括每個未完成運行的kernel程序的優(yōu)先級以及每個未完成運行的kernel程序中未分發(fā)的線程塊block數(shù)量,所述待分發(fā)kernel程序為所述kernel狀態(tài)寄存器表中優(yōu)先級最高且未分發(fā)的block數(shù)量不為零的kernel程序;
所述第一查找單元,用于從SM狀態(tài)寄存器表中查找能夠運行至少一個完整block的SM,所述SM狀態(tài)寄存器表中包括每個SM中的剩余資源量以及每個SM中block的最高優(yōu)先級;當未查找到能夠運行至少一個完整block的SM時,從所述SM狀態(tài)寄存器表中查找第一SM,所述第一SM為能夠運行至少一個線程束warp的SM;
所述第一分發(fā)單元,用于當所述第一查找單元查找到所述第一SM時,將所述待分發(fā)kernel程序中的block分發(fā)給所述第一SM;
所述第一SM,用于運行所述第一分發(fā)單元分發(fā)的所述待分發(fā)kernel程序中的block;
所述第一查找單元,還用于當未查找到所述第一SM時,查找第二SM,所述第二SM中block的最高優(yōu)先級低于所述待分發(fā)kernel程序的優(yōu)先級;
所述第一分發(fā)單元,還用于當所述第一查找單元查找到所述第二SM時,將所述待分發(fā)kernel程序中的block分發(fā)給所述第二SM;
所述第二SM,用于運行所述第一分發(fā)單元分發(fā)的所述待分發(fā)kernel程序中的block。
7.根據(jù)權利要求6所述的GPU資源的分配系統(tǒng),其特征在于,
所述第一確定單元,還用于當所述第一查找單元查找到能夠運行至少一個完整block的SM時,確定第一數(shù)量,所述第一數(shù)量為所述能夠運行一個完整block的SM實際能夠運行的block的數(shù)量;
所述第一分發(fā)單元,還用于當所述待分發(fā)kernel程序中未分發(fā)的block的數(shù)量大于所述第一數(shù)量時,將所述待分發(fā)kernel程序中所述第一數(shù)量的block分發(fā)給所述能夠運行至少一個完整block的SM;當所述待分發(fā)kernel程序中未分發(fā)的block的數(shù)量小于或等于所述第一數(shù)量時,將所述待分發(fā)kernel程序中未分發(fā)的block全部分發(fā)給所述能夠運行至少一個完整block的SM;
所述能夠運行至少一個完整block的SM,用于運行所述第一分發(fā)單元分發(fā) 的所述待分發(fā)kernel程序中的block。
8.根據(jù)權利要求7所述的GPU資源的分配系統(tǒng),其特征在于,所述第二SM包括第二確定單元、第二查找單元以及第二分發(fā)單元;
所述第二確定單元,用于從block狀態(tài)寄存器表中確定優(yōu)先級最高的block,所述block狀態(tài)寄存器表包括被分發(fā)到所述第二SM中的每個block的優(yōu)先級;
所述第二查找單元,用于查找當前的空閑硬件warp;
所述第二分發(fā)單元,用于確定所述空閑硬件warp能夠運行一個warp,且未接收到優(yōu)先級更高的block時,將所述優(yōu)先級最高的block中的一個warp分發(fā)給所述空閑硬件warp。
9.根據(jù)權利要求6至8中任一項所述的GPU資源的分配系統(tǒng),其特征在于,所述SM狀態(tài)寄存器表中包括每個SM的剩余寄存器數(shù)量、剩余硬件warp數(shù)量以及剩余共享存儲空間,所述第一SM為所述剩余寄存器數(shù)量大于運行一個warp所需的寄存器數(shù)量、所述剩余硬件warp數(shù)量大于運行一個warp所需的硬件warp數(shù)量且所述剩余共享存儲空間大于運行一個warp所需的共享存儲空間的SM。
10.根據(jù)權利要求9所述的GPU資源的分配系統(tǒng),其特征在于,所述第二SM中還包括通知單元;
所述通知單元,用于當確定所述第二SM中有運行完成的warp時,通知所述全局邏輯控制器更新所述第二SM的剩余寄存器數(shù)量、剩余warp數(shù)量以及剩余共享存儲空間;當所確定所述運行完成的warp所屬block中不存在未運行的warp時,確定所述第二SM中未運行完成的block的最高優(yōu)先級,通知所述全局邏輯控制器更新所述SM狀態(tài)寄存器表中的所述第二SM中block的最高優(yōu)先級。