本申請涉及計算機應(yīng)用領(lǐng)域,特別是涉及圖形處理裝置、資源服務(wù)裝置、資源調(diào)度方法和裝置。
背景技術(shù):
由于在現(xiàn)代的計算機中,圖形的處理越來越重要,因此,需要一種專門用于圖形處理的核心處理器,而圖形處理器(GPU,Graphics Processing Unit)就是一種專門用于圖形處理的器件。與此同時,把GPU的強大的計算能力處理通用計算(GPGPU,General Purpose GPU)也日益盛行,用于各種高性能計算集群中。
目前,在現(xiàn)有的GPU集群技術(shù)中,當(dāng)處理用戶提交的作業(yè)(job)時,主要存在兩種GPU資源的調(diào)度方法。其中,一種調(diào)度方法是,資源調(diào)度器將一個GPU(如,一張GPU卡)只調(diào)度給一個用戶的作業(yè)。另一種調(diào)度方法是,資源調(diào)度器將一個GPU同時調(diào)度給多個用戶的作業(yè)。
在實現(xiàn)本申請的過程中,本申請的發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:在第一種調(diào)度方法中,由于一個GPU只被一個用戶的作業(yè)獨占,而一個用戶的作業(yè)很可能無法充分利用一個GPU的資源,因此會出現(xiàn)GPU資源利用率低的問題。而在第二種調(diào)度方法中,由于一個GPU是被多個用戶的作業(yè)共享的,而多個用戶更有可能會充分利用一個GPU的資源,因此一定程度上提高了GPU資源的利用率。
雖然第二種調(diào)度方法可以提高GPU資源的利用率,但是,當(dāng)多個用戶的作業(yè)共享一個GPU時,多個用戶的作業(yè)同時開啟的進程數(shù)可能會很大,對于每一個進程,GPU都要為其建立一個GPU上下文,因此,在GPU上建立的GPU上下文的數(shù)量也就可能非常大,并且,還會在數(shù)量眾多的GPU上下文中進行切換,建立和切換GPU上下文會使GPU資源產(chǎn)生巨大開銷,從而導(dǎo)致過度共享GPU問題。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本申請實施例提供了圖形處理裝置、資源服務(wù)裝置、資源調(diào)度方法和裝置,以在提高GPU資源的利用率的同時,也能節(jié)約建立和切換GPU上下文的開銷。進一步的,盡可能地避免GPU的過度共享的問題。
本申請實施例公開了如下技術(shù)方案:
一種圖形處理裝置,在所述圖形處理裝置中,邏輯單元是最小的圖形處理器GPU資源調(diào)度單元,所述圖形處理裝置映射至少一個GPU多進程代理服務(wù)器GPU-MPS,所述GPU-MPS為調(diào)度所述圖形處理裝置的代理,GPU-MPS的一個客戶端可調(diào)度至少一個所述邏輯單元,一個任務(wù)進程為GPU-MPS的一個客戶端,所述圖形處理裝置可包含的最大邏輯單元數(shù)為M×N×K個;
其中,M為GPU-MPS的一個客戶端可調(diào)度的邏輯單元數(shù),N為一個GPU-MPS包含的最大客戶端數(shù),K為所述圖形處理裝置映射的GPU-MPS數(shù),M、N和K均為非零正整數(shù)。
優(yōu)選的,GPU-MPS的一個客戶端可調(diào)度一個邏輯單元。
優(yōu)選的,所述圖形處理裝置映射一個GPU多進程代理服務(wù)器。
優(yōu)選的,所述圖形處理裝置包含M×N×K個邏輯單元。
一種資源服務(wù)裝置,包括至少一個上述任意一項所述的圖形處理裝置、監(jiān)測單元和第一通信單元,其中,
監(jiān)測單元,用于在監(jiān)測周期到達時,監(jiān)測當(dāng)前周期內(nèi)所述圖形處理裝置中剩余的邏輯單元的數(shù)量;
第一通信單元,用于將監(jiān)測到的數(shù)據(jù)發(fā)送給集群中的監(jiān)控節(jié)點,以便所述監(jiān)控節(jié)點在更新周期到達時利用監(jiān)測到的數(shù)據(jù)原子更新預(yù)設(shè)的資源動態(tài)表;
其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
優(yōu)選的,所述資源服務(wù)裝置為集群中的一個從節(jié)點。
優(yōu)選的,所述資源動態(tài)表還包含圖形處理裝置的實際使用率;所述監(jiān)測單元還用于,在監(jiān)測周期到達時,監(jiān)測當(dāng)前周期內(nèi)本地的圖形處理裝置的實際使用率。
一種資源調(diào)度方法,應(yīng)用在上述任意一項所述的資源服務(wù)裝置,所述方法包括:
接收為目標(biāo)作業(yè)調(diào)度圖形處理器GPU資源的調(diào)度請求,所述調(diào)度請求中指示了請求調(diào)度的邏輯單元的數(shù)量;
響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找剩余的邏輯單元的數(shù)量不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元;
其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
優(yōu)選的,所述資源動態(tài)表還包含圖形處理裝置的實際使用率;
所述響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找剩余的邏輯單元的數(shù)量不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元為:
響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找實際使用率小于或等于預(yù)設(shè)的最大閾值且剩余的邏輯單元的個數(shù)不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元。
優(yōu)選的,所述資源動態(tài)表還包含資源服務(wù)器集群中的資源服務(wù)裝置的工作狀態(tài)和資源服務(wù)裝置中的圖形處理裝置的工作狀態(tài);所述方法還包括:
在更新周期到達時,原子更新所述資源動態(tài)表中資源服務(wù)裝置的工作狀態(tài)和圖形處理裝置的工作狀態(tài),所述工作狀態(tài)包括工作和非工作。
一種資源調(diào)度裝置,其特征在于,應(yīng)用在上述任意一項所述的資源服務(wù)裝置,包括:
第二通信單元,用于接收為目標(biāo)作業(yè)調(diào)度圖形處理器GPU資源的調(diào)度請求,所述調(diào)度請求中指示了請求調(diào)度的邏輯單元的數(shù)量;
響應(yīng)單元,用于響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找剩余的邏輯單元的數(shù)量不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元;
其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
優(yōu)選的,所述資源動態(tài)表還包含圖形處理裝置的實際使用率;
所述響應(yīng)單元具體用于,響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找實際使用率小于或等于預(yù)設(shè)的最大閾值且剩余的邏輯單元的個數(shù)不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元。
優(yōu)選的,所述資源動態(tài)表還包含資源服務(wù)器集群中的資源服務(wù)裝置的工作狀態(tài)和資源服務(wù)裝置中的圖形處理裝置的工作狀態(tài);所述裝置還包括:
更新單元,用于在更新周期到達時,原子更新所述資源動態(tài)表中資源服務(wù)裝置的工作狀態(tài)和圖形處理裝置的工作狀態(tài),所述工作狀態(tài)包括工作和非工作。
由上述實施例可以看出,與現(xiàn)有技術(shù)相比,本申請的優(yōu)點在于:
由于邏輯單元是最小的GPU資源調(diào)度單元,因此,可以將一個圖形處理裝置中不同的邏輯單元調(diào)度給不同的任務(wù)進程,使不同的用戶作業(yè)共同占用同一個圖形處理裝置,保證圖形處理裝置中GPU資源的利用率。同時,本申請利用GPU-MPS技術(shù),使一個任務(wù)進程成為GPU-MPS的一個客戶端,這樣,GPU-MPS就可以像管理客戶端一樣管理任務(wù)進程。由于一個GPU-MPS中的所有客戶端共享一個GPU上下文,因此,在一個GPU多進程代理服務(wù)器中,作為其客戶端的多個任務(wù)進程也就只需共享一個GPU上下文。
另外,在資源調(diào)度時,基于各GPU的實際使用率調(diào)度邏輯單元,還可以避免出現(xiàn)GPU過度共享的問題。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示意性地示出了根據(jù)本申請的實施方式的一種圖形處理裝置的結(jié)構(gòu)圖;
圖2示意性地示出了根據(jù)本申請的實施方式的另一種圖形處理裝置的結(jié)構(gòu)圖;
圖3示意性地示出了根據(jù)本申請的實施方式的另一種圖形處理裝置的結(jié) 構(gòu)圖;
圖4示意性地示出了根據(jù)本申請的實施方式的另一種圖形處理裝置的結(jié)構(gòu)圖;
圖5示意性地示出了根據(jù)本申請的實施方式的一種資源服務(wù)裝置的結(jié)構(gòu)圖;
圖6示意性地示出根據(jù)本申請的實施方式可以在其中實施的示例性應(yīng)用場景;
圖7示意性地示出了根據(jù)本申請的實施方式的一種資源調(diào)度裝置的結(jié)構(gòu)框圖;
圖8示意性地示出了根據(jù)本申請的實施方式的一種資源調(diào)度方法的流程圖。
具體實施方式
為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本申請實施例進行詳細(xì)描述。
用戶提交的一個作業(yè)(job)是由多個任務(wù)(task)組成的,一個任務(wù)是由一個任務(wù)進程來完成的。因此,為用戶的作業(yè)調(diào)度GPU資源實際上就是為完成該作業(yè)的所有任務(wù)進程調(diào)度GPU資源。
請參閱圖1,圖1示意性地示出了根據(jù)本申請的實施方式的一種圖形處理裝置的結(jié)構(gòu)圖,在該圖形處理裝置10中,邏輯單元11是最小的GPU資源調(diào)度單元,該圖形處理裝置映射一個GPU多進程代理服務(wù)器(GPU-MPS,Graphics Processing Unit-Multiple Process Server)20,該GPU-MPS 20具有的最大客戶端數(shù)為16個,并且,該GPU-MPS 20為調(diào)度該圖形處理裝置10的代理,GPU-MPS20的一個客戶端可調(diào)度一個邏輯單元11,一個任務(wù)進程為該GPU-MPS 20的一個客戶端,該圖形處理裝置可包含的最大邏輯單元數(shù)為16個。
可以理解的,由于邏輯單元是最小的GPU資源調(diào)度單元,因此,可以將一個圖形處理裝置中不同的邏輯單元調(diào)度給不同的任務(wù)進程,使不同的用戶作業(yè)共同占用同一個圖形處理裝置,保證圖形處理裝置中GPU資源的利用率。 同時,本申請利用GPU-MPS技術(shù),使一個任務(wù)進程成為-GPU-MPS的一個客戶端,這樣,GPU-MPS就可以像管理客戶端一樣管理任務(wù)進程。由于一個GPU-MPS中的所有客戶端共享一個GPU上下文,因此,在一個GPU-MPS中,作為其客戶端的多個任務(wù)進程也就只需共享一個GPU上下文。例如,當(dāng)一個圖形處理裝置映射一個GPU-MPS時,只需為調(diào)度該圖形處理裝置的所有任務(wù)進程共享一個GPU上下文,而不再需要分別建立GPU上下文,從而降低了GPU上下文的數(shù)量,最終節(jié)約了建立和切換GPU上下文的開銷。
另外,在為該圖形處理裝置10配置邏輯單元時,可以在1至16之間(包括1和16)任意配置邏輯單元的數(shù)量。
GPU-MPS 20的一個客戶端除了可以調(diào)度一個邏輯單元之外,可以調(diào)度多個邏輯單元,如,2個、3個,甚至更多個邏輯單元。例如,當(dāng)GPU-MPS20的一個客戶端可調(diào)度兩個邏輯單元,并且,該圖形處理裝置10仍然映射一個GPU-MPS20時,該圖形處理裝置10可包含的最大邏輯單元數(shù)為32個,如圖2所示。由此可見,在該圖形處理裝置10映射的GPU-MPS 20的個數(shù)固定不變的情況下,該圖形處理裝置10可包含的最大邏輯單元數(shù)與GPU-MPS20的一個客戶端可調(diào)度的邏輯單元數(shù)有關(guān),且成正比。
另外,該圖形處理裝置10可以只映射一個GPU-MPS20,也可以映射多個GPU-MPS 20,如,2個、3個,甚至更多個GPU-MPS 20。例如,當(dāng)圖形處理裝置10映射兩個GPU-MPS 20,并且,GPU-MPS20的一個客戶端可調(diào)度一個邏輯單元時,該圖形處理裝置可包含的最大邏輯單元數(shù)為32個,如圖3所示。由此可見,在GPU-MPS 20的一個客戶端可調(diào)度的邏輯單元數(shù)固定不變的情況下,該圖形處理裝置10可包含的最大邏輯單元數(shù)與該圖形處理裝置10映射的GPU-MPS 20的個數(shù)有關(guān),且成正比。
也就是說,該圖形處理裝置10可包含的最大邏輯單元數(shù)既與GPU-MPS20的一個客戶端可調(diào)度的邏輯單元數(shù)有關(guān),又與該圖形處理裝置10映射的GPU-MPS 20的個數(shù)有關(guān),且成正比。例如,當(dāng)圖形處理裝置10映射兩個GPU-MPS 20,并且GPU-MPS 20的一個客戶端可調(diào)度兩個邏輯單元時,該圖形處理裝置可包含的最大邏輯單元數(shù)為64個,如圖4所示。
因此,對于圖形處理裝置10來說,其可包含的最大邏輯單元數(shù)為M×N×K 個,其中,M為GPU-MPS的一個客戶端可調(diào)度的邏輯單元數(shù),N為一個GPU-MPS包含的最大客戶端數(shù),K為所述圖形處理裝置映射的GPU-MPS數(shù),M、N和K均為非零正整數(shù)。
在配置該圖形處理裝置10中的邏輯單元時,只要在該圖形處理裝置10可包含的最大邏輯單元數(shù)以內(nèi)配置即可。
在本申請的一個優(yōu)選實施方式中,該圖形處理裝置10包含M×N×K個邏輯單元。
在本申請的另一個優(yōu)選實施方式中,GPU-MPS的一個客戶端可調(diào)度一個邏輯單元,圖形處理裝置10映射一個GPU-MPS 20??梢岳斫獾?,在這種優(yōu)選實施方式中,一個圖形處理裝置包含的最大邏輯單元數(shù)與一個GPU-MPS包含的最大客戶端數(shù)相等。
另外,需要說明的是,該圖形處理裝置10在物理形態(tài)上是一個圖形處理器。
除了圖形處理裝置之外,本申請實施例還提供了一種資源服務(wù)裝置。請參閱圖5,圖5示意性地示出了根據(jù)本申請的實施方式的一種資源服務(wù)裝置的結(jié)構(gòu)圖,其中,該資源服務(wù)裝置50包括,該資源服務(wù)裝置50包括至少一個圖形處理裝置51、(例如,兩個圖形處理裝置511和512)、監(jiān)測單元52和第一通信單元53。并且,圖形處理裝置511與GPU-MPS611映射,GPU-MPS 611的一個客戶端可調(diào)用圖形處理裝置511中的一個邏輯單元,圖形處理裝置512與GPU-MPS612映射,GPU-MPS 612的一個客戶端可調(diào)用圖形處理裝置512中的一個邏輯單元,一個任務(wù)進程可以為GPU-MPS 611的一個客戶端,也可以為GPU-MPS 612的一個客戶端。
監(jiān)測單元52,用于在監(jiān)測周期到達時,監(jiān)測當(dāng)前周期內(nèi)所述圖形處理裝置中剩余的邏輯單元的數(shù)量;
第一通信單元53,用于將監(jiān)測到的數(shù)據(jù)發(fā)送給集群中的監(jiān)控節(jié)點,以便所述監(jiān)控節(jié)點在更新周期到達時利用監(jiān)測到的數(shù)據(jù)原子更新預(yù)設(shè)的資源動態(tài)表;
其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
其中,每一個邏輯單元都會在資源服務(wù)器的指定路徑下生成一個PIPE文件,一旦該邏輯單元被使用,對應(yīng)的PIPE文件即會被生成,因此,監(jiān)測單元11只要監(jiān)測該路徑下的PIPE的數(shù)量,即可確定剩余的邏輯單元的數(shù)量。
可以理解的,當(dāng)集群中的各從節(jié)點動態(tài)更新本地GPU中剩余的邏輯單元的數(shù)量時,該更新操作可以支持離線調(diào)度,即,不通過統(tǒng)一的調(diào)度器調(diào)度資源,而直接在本地使用GPU資源)。
需要說明的是,圖5所示的資源服務(wù)裝置的結(jié)構(gòu)僅是一個示例,其還可以更多數(shù)量的圖形處理裝置。并且,本申請也不限定每一個圖形處理裝置映射的GPU-MPS數(shù)量、GPU-MPS的一個客戶端可調(diào)用的邏輯單元的數(shù)量以及每一個圖形處理裝置包含的邏輯單元的數(shù)量。
在本申請的一個優(yōu)選實施方式中,該資源服務(wù)裝置50在物理形態(tài)上是一個資源服務(wù)器。
在申請的另一個優(yōu)選實施方式中,該資源服務(wù)器可以為集群中的一個從節(jié)點。
例如,請參閱圖6,圖6示意性地示出根據(jù)本申請的實施方式可以在其中實施的示例性應(yīng)用場景。其中,在一個集群中,包含有多個從節(jié)點10(為了方便描述和展示,圖1中僅示出了一個從節(jié)點)、一個監(jiān)控節(jié)點20和一個監(jiān)控節(jié)點30。從節(jié)點10即為一個資源服務(wù)器,在從節(jié)點10中包含有多個圖形處理器(GPU),圖1中僅示出了兩個GPU,即,GPU-0和GPU-1,每一個GPU各包含16個邏輯單元,MPS-0為調(diào)度GPU-0的代理,MPS-1為調(diào)度GPU-1的代理,并且,MPS-0和MPS-1各具有16個客戶端,MPS-0的一個客戶端可調(diào)度GPU-0的一個邏輯單元,MPS-1的一個客戶端可調(diào)度GPU-1的一個邏輯單元,用戶作業(yè)中的一個任務(wù)進程既可以為MPS-0的一個客戶端,也可以為MPS-1的一個客戶端。
例如,當(dāng)將GPU-0中的一個邏輯單元調(diào)度給某一個用戶作業(yè)中的某一個任務(wù)進程時,該任務(wù)進程會連接到該邏輯單元所屬的GPU-0的代理上,即,連接到MPS-0上。
監(jiān)控節(jié)點30包括作業(yè)管理裝置31和資源調(diào)度裝置32,作業(yè)管理裝置31先接收到集群客戶端60發(fā)送的為目標(biāo)用戶作業(yè)分配GPU資源的請求 61,在該請求61中指示有請求調(diào)度的邏輯單元的數(shù)量。作業(yè)管理裝置31將該請求轉(zhuǎn)發(fā)給資源調(diào)度裝置32。
如圖7所示的資源調(diào)度裝置的結(jié)構(gòu)框圖,資源調(diào)度裝置32包括第二通信單元321和響應(yīng)單元322,其中,第二通信單元321用于接收為目標(biāo)作業(yè)調(diào)度圖形處理器GPU資源的調(diào)度請求61;響應(yīng)單元322用于響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找剩余的邏輯單元的數(shù)量不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元;其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
在本申請中,資源調(diào)度裝置32可以采用現(xiàn)有技術(shù)中的任意一種調(diào)度方法調(diào)度邏輯單元。例如,F(xiàn)irst fit調(diào)度、Best fit調(diào)度、Backfill調(diào)度或CFS調(diào)度等。
資源調(diào)度裝置32生成一個資源動態(tài)表,并由從節(jié)點10動態(tài)更新該資源動態(tài)表上GPU-0和GPU-1中剩余的邏輯單元的數(shù)量,以便資源調(diào)度裝置32可以根據(jù)各GPU剩余的邏輯單元進行資源調(diào)度。剩余的邏輯單元就是指未調(diào)度給任務(wù)進程的邏輯單元。
當(dāng)然,如果集群中還包括其他從節(jié)點,該資源動態(tài)表也同時由其它從節(jié)點動態(tài)維護,并且,該資源動態(tài)表中還包含有位于其它從節(jié)點上的各GPU中剩余的邏輯單元的數(shù)量。也就是說,該資源動態(tài)表中包含所有從節(jié)點上的GPU中剩余的邏輯單元的數(shù)量。
另外,該資源動態(tài)表中還可以包含有該資源動態(tài)表包含所有從節(jié)點的標(biāo)識以及各從節(jié)點中的所有GPU的標(biāo)識,以確定各個邏輯單元的所在位置。例如,如圖6所示資源動態(tài)表,該資源動態(tài)表中包含從節(jié)點10的標(biāo)識(例如,該標(biāo)識可以為從節(jié)點10在集群中的全局編號)、從節(jié)點10包含的GPU-0和GPU-1的標(biāo)識、以及GPU-0和GPU-1中剩余的邏輯單元的數(shù)量。
此外,考慮到作業(yè)實際使用的GPU資源很有可能比其請求的GPU資源大,針對一個GPU,其實際使用資源就可能比其調(diào)度資源大。當(dāng)為不同作業(yè)調(diào)度該GPU中的資源時,也很容易產(chǎn)生過度共享該GPU的問題。
因此,為了避免過度共享GPU的問題,還可以在資源動態(tài)表中維護各 GPU的實際使用率,以便資源調(diào)度裝置根據(jù)各GPU的實際使用率調(diào)度各GPU中的邏輯單元。也就是說,該資源動態(tài)表包含集群中的所有從節(jié)點的標(biāo)識、各從節(jié)點中的所有GPU的標(biāo)識、各GPU中剩余的邏輯單元的數(shù)量和各GPU的實際使用率。
在本申請的一個優(yōu)選實施方式中,資源動態(tài)表還包含GPU-0和GPU-1的實際使用率,在從節(jié)點10中,監(jiān)測單元11還用于在監(jiān)測周期到達時,監(jiān)測當(dāng)前周期內(nèi)GPU-0和GPU-1的實際使用率。
相應(yīng)的,對于監(jiān)控節(jié)點30,資源調(diào)度裝置32中的響應(yīng)單元322具體用于,響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找實際使用率小于或等于預(yù)設(shè)的最大閾值且剩余的邏輯單元的個數(shù)不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元。
在本申請的另一個優(yōu)選實施方式中,資源動態(tài)表還可以包含資源服務(wù)器集群中的資源服務(wù)裝置的工作狀態(tài)和資源服務(wù)裝置中的圖形處理裝置的工作狀態(tài),并且由資源調(diào)度裝置動態(tài)更新,資源調(diào)度裝置32還包括:
更新單元,用于在更新周期到達時,原子更新所述資源動態(tài)表中資源服務(wù)裝置的工作狀態(tài)和圖形處理裝置的工作狀態(tài)和使用狀態(tài),所述工作狀態(tài)包括工作和非工作,使用狀態(tài)包括邏輯單元的使用量和整體利用率。
例如,當(dāng)刪除從節(jié)點或GPU或者生從節(jié)點或GPU故障時,其工作狀態(tài)從工作變?yōu)椴还ぷ鳎?dāng)添加新的從節(jié)點或新的GPU時,其工作狀態(tài)被設(shè)定為工作。
在本申請中,更新單元323可以在集群初始化時,初始化該資源動態(tài)表,或者,在作業(yè)遷移時,因作業(yè)遷移失敗或者QoS的原因,需要遷移任務(wù)時,更新單元323可以更新該資源動態(tài)表。另外,更新單元還可以根據(jù)資源調(diào)度響應(yīng)更新資源動態(tài)表中各GPU中剩余的邏輯單元的數(shù)量。
與上述的資源調(diào)度裝置相對應(yīng),本申請實施例還提供了資源調(diào)度方法。請參閱圖8,圖8示意性地示出了根據(jù)本申請的實施方式的一種資源調(diào)度方法的流程圖,該方法可以由資源調(diào)度裝置32執(zhí)行,該方法例如可以包括:
步驟801:接收為目標(biāo)作業(yè)調(diào)度圖形處理器GPU資源的調(diào)度請求,所述調(diào)度請求中指示了請求調(diào)度的邏輯單元的數(shù)量。
步驟802:響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找剩余的邏輯單元的數(shù)量不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元。
其中,所述資源動態(tài)表至少包含圖形處理裝置中剩余的邏輯單元的數(shù)量。
在本申請的一個優(yōu)選實施方式中,資源動態(tài)表還包含圖形處理裝置的實際使用率;所述步驟802為:
響應(yīng)于所述調(diào)度請求,從預(yù)設(shè)的資源動態(tài)表中查找實際使用率小于或等于預(yù)設(shè)的最大閾值且剩余的邏輯單元的個數(shù)不為零的圖形處理裝置,并按照所述調(diào)度請求指示的數(shù)量,從查找到的圖形處理裝置中為所述目標(biāo)作業(yè)調(diào)度邏輯單元。
在本申請的另一個優(yōu)選實施方式中,所述資源動態(tài)表還包含資源服務(wù)器集群中的資源服務(wù)裝置的工作狀態(tài)和資源服務(wù)裝置中的圖形處理裝置的工作狀態(tài);該方法還可以包括:在更新周期到達時,原子更新所述資源動態(tài)表中資源服務(wù)裝置的工作狀態(tài)和圖形處理裝置的工作狀態(tài),所述工作狀態(tài)包括工作和非工作。
由上述實施例可以看出,與現(xiàn)有技術(shù)相比,本申請的優(yōu)點在于:
由于邏輯單元是最小的GPU資源調(diào)度單元,因此,可以將一個圖形處理裝置中不同的邏輯單元調(diào)度給不同的任務(wù)進程,使不同的用戶作業(yè)共同占用同一個圖形處理裝置,保證圖形處理裝置中GPU資源的利用率。同時,本申請利用GPU-MPS技術(shù),使一個任務(wù)進程成為GPU-MPS的一個客戶端,這樣,GPU-MPS就可以像管理客戶端一樣管理任務(wù)進程。由于一個GPU-MPS中的所有客戶端共享一個GPU上下文,因此,在一個GPU-MPS中,作為其客戶端的多個任務(wù)進程也就只需共享一個GPU上下文。
另外,在資源調(diào)度時,基于各GPU的實際使用率調(diào)度邏輯單元,還可以避免出現(xiàn)GPU過度共享的問題。
所述領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,上述 描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述到的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性、機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),可以采用軟件功能單元的形式實現(xiàn)。
需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上對本申請所提供的圖形處理裝置、資源服務(wù)裝置、資源調(diào)度方法和裝置進行了詳細(xì)介紹,本文中應(yīng)用了具體實施例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。