TW201636838A - 資源處理方法及裝置 - Google Patents
資源處理方法及裝置 Download PDFInfo
- Publication number
- TW201636838A TW201636838A TW104128813A TW104128813A TW201636838A TW 201636838 A TW201636838 A TW 201636838A TW 104128813 A TW104128813 A TW 104128813A TW 104128813 A TW104128813 A TW 104128813A TW 201636838 A TW201636838 A TW 201636838A
- Authority
- TW
- Taiwan
- Prior art keywords
- resource
- gpu
- code
- resources
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申請提供一種資源處理方法及裝置。方法包括:接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求;根據資源分配請求和所維護的所述第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從第一設備的至少一塊GPU可提供的硬體資源中為應用程式中的設備代碼分配運行所需的資源;將所分配的資源的資訊返回給主機代碼。本申請可以有效利用GPU資源,並降低實現代價。
Description
本申請涉及軟體技術領域,尤其涉及一種資源處理方法及裝置。
隨著資料量和計算規模不斷增大,越來越多的應用程式選擇圖形處理器(Graphics Processing Unit,GPU)作為計算資源。在使用GPU的過程中,操作系統負責獲取GPU的底層硬體細節,並將GPU的底層硬體細節提供給應用程式,應用程式根據GPU的底層硬體細節,確定並向GPU申請所需的GPU資源。
一些顯卡廠商(如NVIDIA、AMD)為了追求高性能,不斷推出新架構的GPU,但普遍顯示記憶體容量都較小,單卡難以滿足日益增長的計算需求。當需要進一步提高計算能力時,一般採用多塊GPU協同計算的方式,其中最常用的是單機多卡方式,即一台計算機搭配多塊GPU板卡。
由於現有使用GPU的應用程式是面向單塊GPU設計的,因此若要在單機多卡的硬體結構上運行應用程式,程
式設計員需要重新設計應用程式,使應用程式能夠根據單機多卡的底層硬體細節(例如顯示記憶體容量、計算單元數、由幾塊GPU構成等)使用硬體資源,以適應單機多卡的硬體結構;而且對於不同的單機多卡結構,需要分別對應用程式進行重新設計。這種方式雖然可以有效利用GPU資源,但是實現代價較大。
本申請的多個方面提供一種資源處理方法及裝置,用以有效利用GPU資源,並降低實現代價。
本申請的一方面,提供一種資源處理方法,包括:
接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求;
根據所述資源分配請求和所維護的所述第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從所述第一設備的至少一塊GPU可提供的硬體資源中為所述應用程式中的設備代碼分配運行所需的資源;
將所分配的資源的資訊返回給所述主機代碼,以使所述主機代碼控制所述設備代碼基於所分配的資源成功運行在所述至少一塊GPU上。
本申請的另一方面,提供一種資源處理裝置,包括:
接收模組,用於接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求;
分配模組,用於根據所述資源分配請求和所維護的所述第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從所述第一設備的至少一塊GPU可提供的硬體資源中為所述應用程式中的設備代碼分配運行所需的資源;
發送模組,用於將所分配的資源的資訊返回給所述主機代碼,以使所述主機代碼控制所述設備代碼基於所分配的資源成功運行在所述至少一塊GPU上。
本申請在GPU與應用程式之間維護第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,使得第一設備的至少一塊GPU可提供的硬體資源以統一虛擬GPU資源的形式面向應用程式,具體在接收到應用程式中的主機代碼發出的資源分配請求後,根據資源分配請求及所維護的第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從至少一塊GPU可提供的硬體資源中為應用程式中的設備代碼分配運行所需的資源,並將所分配的資源提供給主機代碼,使得主機代碼可以控制設備代碼基於所分配的資源成功運行在GPU上,在有效利用GPU資源的基礎上,實現了應用程式與GPU底層硬體細節的隔離,應用程式不需要考慮底層硬體細節,因此不需要重新設計應用程式,與現有技術相比,實現代價相對較低。
1‧‧‧接收模組
2‧‧‧分配模組
3‧‧‧發送模組
4‧‧‧獲取模組
5‧‧‧申請模組
6‧‧‧映射模組
7‧‧‧讀寫處理模組
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有基於GPU進行計算的應用程式的運行流程示意圖;圖2為現有從底層硬體到上層應用程式之間的多層次結構示意圖;圖3為本申請提供的從底層硬體到上層應用程式之間的多層次結構示意圖;圖4為本申請一實施例提供的資源處理方法的流程示意圖;圖5為本申請一實施例提供的虛擬記憶體與顯示記憶體資源之間的映射關係示意圖;圖6為本申請一實施例提供的資源處理裝置的結構示意圖;圖7為本申請另一實施例提供的資源處理裝置的結構示意圖。
為使本申請實施例的目的、技術方案和優點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實
施例是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
基於GPU進行計算的應用程式包括兩部分:主機代碼(Host Code)和設備代碼(Device Code),其中主機代碼在CPU上執行,而設備代碼也稱為核函數(Kernel Function),在GPU上執行。現有基於GPU進行計算的應用程式的大致運行流程如圖1所示,包括以下步驟:
(1)在CPU控制下,將需要處理的資料從計算機內存記憶體複製到GPU顯示記憶體中;(2)CPU將設備代碼發送給GPU;(3)GPU的多處理器對顯示記憶體中的資料執行設備代碼,在計算過程中,GPU多次讀寫顯示記憶體資料,並且設備代碼的運算結果也會保存在顯示記憶體中;(4)在CPU控制下,顯示記憶體中的運算結果被複製到計算機內存記憶體。
發明人經研究發現,現有基於GPU的應用程式是面向單塊GPU設計的,上述流程適用於單GPU的場景,若要在單機多卡的硬體結構上運行應用程式,程式設計員需要重新設計應用程式,使應用程式能夠根據單機多卡的底層硬體細節(例如顯示記憶體容量、計算單元數、由幾塊GPU構成等)使用硬體資源,以適應單機多卡的硬體結構,這種實現方式代價較高。
針對上述問題,本申請提供一種資源管理方法。通過該方法,基於GPU進行計算的應用程式可運行於包括GPU和CPU的設備上,且應用程式不需要考慮底層硬體細節,不需要重新設計應用程式,在有效利用GPU資源的基礎上,可降低實現代價。
在介紹本申請方法流程之前,簡單描述一下本申請方法的運行環境。
為便於描述,將包括GPU和CPU的設備稱為第一設備。第一設備可以是任何設備。從實質上來說,第一設備是一台單機多卡設備,即是一台設備上同時配置有至少一塊GPU,並且同時包括CPU。
在計算機領域中,從底層硬體到上層應用程式,中間分為多個層次,如圖2所示,一種最為常見的層次結構包括:至少一塊GPU、驅動程式、操作系統、庫函數和應用程式。
其中,驅動程式是專門與硬體設備通信的模組,一般由硬體生產廠商提供,例如NVIDIA提供NVIDIA GPU驅動,AMD提供AMD GPU驅動。驅動程式將硬體抽象化為文件操作,為操作系統提供支持。操作系統具有一定資源管理能力,並為多個用戶、多個進程提供資源分配服務,防止發生競爭。在操作系統之上,是為應用程式提供的庫函數,便於用戶通過指定接口與底層硬體交互,可防止用戶惡意破壞硬體。
在本申請中,為了支持本申請方法的運行,在圖2所
示層次結構上增加一虛擬中間件,該虛擬中間件的主要目的是將至少一塊GPU可提供的硬體資源映射成統一虛擬GPU資源,即映射成一塊虛擬GPU的資源進行處理,並維護至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,使得應用程式不用重新設計,即可運行在單機多卡設備上,降低實現成本。
值得說明的是,該虛擬中間件可位於任意兩層之間實現。可選的,如圖3所示,該虛擬中間件可位於驅動程式和操作系統之間,執行效率高;利用驅動程式直接管理底層硬體,將至少一塊GPU映射成一塊虛擬GPU。當然,該虛擬中間件也可以位於操作系統和庫函數之間、庫函數與應用程式之間。
值得說明的是,上述虛擬中間件可以作為後續實施例中的資源處理裝置來實現。
圖4為本申請一實施例提供的資源處理方法的流程示意圖。如圖4所示,該方法包括:401、接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求。
402、根據資源分配請求和所維護的第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從第一設備的至少一塊GPU可提供的硬體資源中為應用程式中的設備代碼分配運行所需的資源。
403、將所分配的資源的資訊返回給主機代碼。
本實施例提供一種資源處理方法,可由資源處理裝置
來執行。資源處理裝置位於第一設備上的GPU與應用程式之間,維護著第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,負責按照該映射邏輯統一管理和調度GPU資源,並實現應用程式與底層GPU硬體之間的適配,該資源處理裝置具體可作為圖3所示層次結構中的虛擬中間件實現。
根據本申請一個實施例,上述方法也可以由操作系統內核層或者驅動層執行,即上述虛擬中間件也可以嵌入操作系統或者驅動層中來實現。
具體的,應用程式中的主機代碼運行於第一設備的CPU上,主機代碼向資源處理裝置發出資源分配請求,或者也可以說是運行主機代碼的CPU向資源處理裝置發送資源分配請求;資源處理裝置接收主機代碼發出的資源分配請求,根據該資源分配請求和所維護的第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從至少一塊GPU可提供的硬體資源中為應用程式中的設備代碼分配運行所需的資源,然後將所分配的資源提供給主機代碼,這樣主機代碼就可以控制設備代碼基於所分配的資源成功運行於GPU上。
值得說明的是,資源分配請求可以包括所需資源的類型以及所需資源的數量等資訊。資源處理裝置具體根據資源分配請求攜帶的資訊,為設備代碼分配所需類型的所需數量的資源。
上述至少一塊GPU可提供的硬體資源到統一虛擬
GPU資源的映射邏輯主要作用是將第一設備的至少一塊GPU可提供的硬體資源映射成一塊虛擬GPU的資源,這樣對外部(例如應用程式)來說,實際上看到的是一塊虛擬GPU的資源,而不是至少一塊GPU可提供的硬體資源。相應的,上述按照映射邏輯,從至少一塊GPU可提供的硬體資源中為應用程式中的設備代碼分配運行所需的資源實際上是指,按照映射成的統一虛擬GPU資源,為應用程式中的設備代碼分配運行所需的資源。
本實施例在GPU與應用程式之間維護第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,使得第一設備的至少一塊GPU可提供的硬體資源以統一虛擬GPU資源的形式面向應用程式,具體按照該映射邏輯負責為應用程式中需要運行於GPU上的設備代碼分配資源,實現了應用程式與GPU底層硬體細節的隔離,應用程式不需要考慮底層硬體細節,且不需要確定並分配所需的GPU資源,使得設備代碼的實現邏輯可以是面向單塊GPU設計的,不需要額外實現多塊GPU之間的交互等功能,因此不需要重新設計應用程式(主要是不需要重新設計應用程式中的設備代碼的實現邏輯)即可有效利用GPU資源,與現有技術相比,實現代價相對較低。
另外,採用本實施例提供的方法,擴展了現有小容量GPU的應用,也解放了GPU開發商,不用再開發更大容量的GPU,降低開發成本。並且,該方法不受底層硬體細
節的限制,具有可移植性。
在一可選實施方式中,為便於資源處理裝置對GPU可提供的硬體資源進行管理和調度,資源處理裝置在從至少一塊GPU可提供的硬體資源中為應用程式分配運行所需的資源之前,預先獲取至少一塊GPU中每塊GPU可提供的硬體資源的詳情資訊(簡稱為資源詳情資訊),根據每塊GPU的資源詳情資訊,生成至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯。這裏的資源詳情資訊用於描述GPU可提供的硬體資源,例如可以包括硬體資源的類型、數量、使用狀態等資訊。在本實施例中,每塊GPU可提供的硬體資源包括但不限於:顯示記憶體資源和計算資源。顯示記憶體資源的詳情資訊主要包括:類型標識(用於指示是顯示記憶體資源)、顯示記憶體容量、顯示記憶體是否可用等資訊;計算資源的詳情資訊主要包括:類型標識(用於指示是計算資源)、資源數量、使用狀態等。
一種獲取資源詳情資訊的方式:資源處理裝置向至少一塊GPU中每塊GPU發送資源詳情獲取請求,並接收每塊GPU根據該資源詳情獲取請求返回的資源詳情資訊。可選的,在向GPU發送資源請求獲取請求之前,資源處理裝置在第一設備初始化時進行監測,以便發現GPU。
另一種獲取資源詳情資訊的方式:資源處理裝置接收至少一塊GPU中每塊GPU發送的註冊請求,該註冊請求包括資源詳情資訊;資源處理裝置從該註冊請求中獲取資
源詳情資訊。例如,每塊GPU可以在第一設備啟動後,主動向資源處理裝置進行註冊,以便於資源處理裝置獲取資源詳情資訊並根據資源詳情資訊對GPU進行管理。
在一可選實施方式中,考慮到至少一塊GPU可提供的硬體資源主要包括顯示記憶體資源和計算資源。基於此,資源處理裝置具體可以根據資源分配請求,讀取所維護的第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,根據所讀取的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從計算資源中為設備代碼分配所需的計算資源,並從顯示記憶體資源中為設備代碼分配所需的顯示記憶體資源。為便於描述,將分配給設備代碼的計算資源簡稱為第一計算資源,將分配給設備代碼的顯示記憶體資源簡稱為第一顯示記憶體資源。
考慮顯示記憶體資源主要用於供應用程式存取資料,為了便於資料存取,資源處理裝置可以根據至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從第一設備的系統記憶體中,申請與至少一塊GPU可提供的顯示記憶體資源總量相同的虛擬記憶體,並將虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源進行映射,形成虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係。基於此,資源處理裝置根據至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從至少一塊GPU可提供的硬體資源中為設備代碼分
配第一顯示記憶體資源具體可以是:從虛擬記憶體中為設備代碼分配第一儲存資源,並根據上述虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係,對所分配的第一儲存資源對應的第一顯示記憶體資源進行標記,以標識將該第一顯示記憶體資源分配給了應用程式的設備代碼。
可選的,虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係具體可以是將虛擬記憶體的地址與顯示記憶體資源的地址進行映射。
其中,虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係可如圖5所示。
在一可選實施方式中,資源處理裝置可以根據計算資源的使用狀況,靈活為應用程式分配計算資源。例如,當計算資源緊張時,資源處理裝置可以優先為優先級高、實時性要求高的應用程式分配計算資源,使得這類應用程式優先得到GPU的調度;而延後為IO密集、低效的應用程式分配計算資源。
具體的,資源處理裝置可以根據資源分配請求的優先級,確定為應用程式中設備代碼分配計算資源的先後順序;按照該先後順序和至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從至少一塊GPU可提供的計算資源中為應用程式中的設備代碼分配第一計算資源。
其中,資源分配請求的優先級可根據具體應用需求和
應用場景而定,例如可以由應用程式對IO密集度、實時性等要求來確定資源分配請求的優先級。
在上述實施方式中,資源處理裝置從系統記憶體中申請一虛擬記憶體,這對應用程式來說相當於看到一塊幾乎擁有足夠儲存資源的虛擬GPU,無需關心底層硬體細節(顯示記憶體容量、由幾塊GPU構成等),由資源處理裝置通過虛擬記憶體與顯示記憶體資源之間的映射關係自動實現應用程式與底層GPU硬體資源之間的適配,不需要重新設計應用程式,簡化了開發、部署以及後期維護的工作,降低了成本。
進一步,資源處理裝置在為應用程式中的設備代碼分配運行所需的資源之後,可以將所分配的資源發送給應用程式中的主機代碼,以使得主機代碼控制設備代碼基於所分配的資源成功運行於GPU上。具體的,資源處理裝置可以將第一計算資源的標識和第一儲存資源的地址資訊發送給主機代碼,以使主機代碼將設備代碼發送給第一計算資源以供第一計算資源運行設備代碼並將運行過程中產生的資料儲存到第一儲存資源中;資源處理裝置將運行過程中產生的資料儲存到被標記的第一顯示記憶體資源中。
值得說明的是,對應用程式而言,上述第一儲存資源實際上是虛擬記憶體,而第一儲存資源的地址資訊也是虛擬記憶體的地址。
在分得第一儲存資源之後,應用程式的主機代碼可以存取第一儲存資源,例如可以請求向第一儲存資源寫入資
料或從第一儲存資源中讀資料。基於此,資源處理裝置還可以接收主機代碼發送的讀請求,根據該讀請求,從第一儲存資源中讀取資料並將所讀取的資料返回給主機代碼。或者,資源處理裝置還可以接收主機代碼發送的寫請求,根據該寫請求,向第一儲存資源中寫入資料,並根據對第一顯示記憶體資源的標記,向第一顯示記憶體資源中同步所寫入的資料。
值得說明的是,上述讀請求一般會攜帶第一儲存資源的地址資訊,用於指示從哪塊儲存空間讀取資料。上述寫請求一般會攜帶有第一儲存資源的地址資訊,用於指示往哪塊儲存空間寫入資料;另外,該寫請求還會攜帶可以指示待寫入資料的資訊,例如該指示資訊可以是待寫入資料本身,或該指示資訊可以是待寫入資料的儲存路徑。
由上述可見,在應用程式使用儲存資源的過程中,資源處理裝置可能需要在虛擬記憶體與GPU可提供的顯示記憶體資源之間進行資料同步。如果要做到單資料的同步,難以實現,代價較高,所以一般採用全同步,即將整塊GPU的顯示記憶體資源中的資料與該GPU對應的虛擬記憶體中的資料全部進行同步;這種同步方法會有相當大的延遲,不利於發揮GPU的計算能力,並且還會嚴重降低資源處理裝置的工作效率和性能。
針對上述問題,資源處理裝置採用分頁管理的方式,即在形成虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係時,對虛擬記憶體進行分頁處理,
獲得內存頁;對顯示記憶體資源進行分頁處理,獲得顯存頁;將內存頁與顯存頁進行映射,形成內存頁與顯存頁之間的映射關係。基於此,資源處理裝置向第一顯示記憶體資源中同步寫入第一儲存資源中的資料的過程具體為:
確定所寫入的資料所在的內存頁,為便於描述,將該內存頁稱為第一內存頁;將所確定的第一內存頁中的資料同步到第一內存頁對應的顯存頁中。
資源處理裝置通過分頁管理方式,使得在資料同步時,只需同步一頁內的資料,無需同步所有資料,有利於減少虛擬記憶體與顯示記憶體資源之間交互的資料量,有利於降低延遲,利於GPU充分發揮計算優勢,並且可以降低資源處理裝置的處理負擔,提高資源處理裝置的性能。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模組並不一定是本申請所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
圖6為本申請一實施例提供的資源處理裝置的結構示
意圖。如圖6所示,該裝置包括:接收模組61、分配模組62和發送模組63。
接收模組61,用於接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求。
分配模組62,用於根據第一接收模組61接收的資源分配請求和所維護的所述第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從第一設備的至少一塊GPU可提供的硬體資源中為應用程式的設備代碼分配運行所需的資源。
發送模組63,用於將分配模組62所分配的資源的資訊返回給主機代碼。這樣主機代碼就可以控制設備代碼基於所分配的資源成功運行在至少一塊GPU上。
在一可選實施方式中,如圖7所示,該資源處理裝置還包括:資訊獲取模組64和維護模組69。
資訊獲取模組64,用於:向至少一塊GPU中每塊GPU發送資源詳情獲取請求,並接收每塊GPU根據資源詳情獲取請求返回的資源詳情資訊;或者接收至少一塊GPU中每塊GPU發送的註冊請求,註冊請求包括資源詳情資訊;其中,資源詳情資訊用於描述每塊GPU可提供的硬體資源。
維護模組69,用於根據資訊獲取模組64獲取的每塊GPU的資源詳情資訊,生成至少一塊GPU可提供的硬體
資源到統一虛擬GPU資源的映射邏輯。
在一可選實施方式中,上述至少一塊GPU可提供的硬體資源包括顯示記憶體資源和計算資源。分配模組62具體用於:根據資源分配請求,讀取至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯;根據至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從計算資源中為設備代碼分配第一計算資源,並從顯示記憶體資源中為設備代碼分配第一顯示記憶體資源。
在一可選實施方式中,如圖7所示,該資源處理裝置還包括:申請模組65和映射模組66。
申請模組65,用於根據至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從第一設備的系統記憶體中,申請與至少一塊GPU可提供的顯示記憶體資源總量相同的虛擬記憶體。
映射模組66,用於形成申請模組65所申請的虛擬記憶體與至少一塊GPU可提供的顯示記憶體資源之間的映射關係。
基於上述,分配模組62具體用於:從計算資源中為設備代碼分配第一計算資源,並從虛擬記憶體中為設備代碼分配第一儲存資源,根據映射模組36形成的映射關係,對第一儲存資源對應的第一顯示記憶體資源進行標記,以標識將第一顯示記憶體資源分配給設備代碼。
在一可選實施方式中,如圖7所示,該資源處理裝置還包括:讀寫處理模組67。
讀寫處理模組67,用於接收主機代碼發送的讀請求,根據讀請求,從第一儲存資源中讀取資料並將所讀取的資料返回給主機代碼;和/或,接收主機代碼發送的寫請求,根據寫請求,向第一儲存資源中寫入資料,並根據對第一顯示記憶體資源的標記,向第一顯示記憶體資源中同步所寫入的資料。
在一可選實施方式中,映射模組66具體用於:對虛擬記憶體進行分頁處理,獲得內存頁;對顯示記憶體資源進行分頁處理,獲得顯存頁;形成內存頁和顯存頁之間的映射關係;基於上述,讀寫處理模組67具體用於:接收主機代碼發送的寫請求,根據寫請求,向第一儲存資源中寫入資料,並確定所寫入的資料所在的第一內存頁,將第一內存頁中的資料同步到第一內存頁對應的顯存頁中。
在一可選實施方式中,分配模組62具體用於:根據資源分配請求的優先級,確定為設備代碼分配計算資源的先後順序,按照先後順序和至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從計算資源中為設備代碼分配第一計算資源,並從顯示記憶體資源中為設備代碼分配第一顯示記憶體資源。
在一可選實施方式中,發送模組63具體用於:
將第一計算資源的標識和第一儲存資源的地址資訊發送給主機代碼,以使主機代碼將設備代碼發送給第一計算資源以供第一計算資源運行設備代碼並將運行過程中產生的資料儲存到第一儲存資源中,並將運行過程中產生的資料儲存到被標記的第一顯示記憶體資源中。
本實施例提供的資源處理裝置,位於GPU與應用程式之間,維護著第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,使得第一設備的至少一塊GPU可提供的硬體資源以統一虛擬GPU資源的形式面向應用程式,具體按照該映射邏輯為應用程式中需要運行於GPU上的設備代碼分配資源,實現了應用程式與GPU底層硬體細節的隔離,應用程式不需要考慮底層硬體細節,且不需要確定並分配所需的GPU資源,使得設備代碼的實現邏輯可以是面向單塊GPU設計的,不需要額外實現多塊GPU之間的交互等功能,因此不需要重新設計應用程式(主要是不需要重新設計應用程式中的設備代碼的實現邏輯)即可有效利用GPU資源,與現有技術相比,實現代價相對較低。
所屬領域的技術人員可以清楚地瞭解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭示的系統,裝置和方法,可以通過其它的方式實現。例
如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。
上述以軟體功能單元的形式實現的集成的單元,可以儲存在一個計算機可讀取儲存媒體中。上述軟體功能單元儲存在一個儲存媒體中,包括若干指令用以使得一台計算機設備(可以是個人計算機,伺服器,或者網路設備等)或處理器(processor)執行本申請各個實施例所述方法的部分步驟。而前述的儲存媒體包括:U盤、行動硬碟、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體
(Random Access Memory,RAM)、磁碟或者光碟等各種可以儲存程式代碼的媒體。
最後應說明的是:以上實施例僅用以說明本申請的技術方案,而非對其限制;儘管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本申請各實施例技術方案的精神和範圍。
Claims (16)
- 一種資源處理方法,其特徵在於,包括:接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求;根據該資源分配請求和所維護的該第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的至少一塊GPU可提供的硬體資源中為該應用程式中的設備代碼分配運行所需的資源;將所分配的資源的資訊返回給該主機代碼。
- 根據申請專利範圍第1項所述的方法,其中,該根據該資源分配請求和所維護的該第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的至少一塊GPU可提供的硬體資源中為該應用程式中的設備代碼分配運行所需的資源之前,包括:向該至少一塊GPU中每塊GPU發送資源詳情獲取請求,並接收每塊GPU根據該資源詳情獲取請求返回的每塊GPU的資源詳情資訊;根據每塊GPU的資源詳情資訊,生成該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯;或者接收該至少一塊GPU中每塊GPU發送的註冊請求,該註冊請求包括資源詳情資訊;根據每塊GPU的資源詳情資訊,生成該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏 輯;其中,該資源詳情資訊用於描述每塊GPU可提供的硬體資源。
- 根據申請專利範圍第1項所述的方法,其中,該至少一塊GPU可提供的硬體資源包括顯示記憶體資源和計算資源;該根據該資源分配請求和所維護的該第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的至少一塊GPU可提供的硬體資源中為該應用程式中的設備代碼分配運行所需的資源,包括:根據該資源分配請求,讀取該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯;根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該計算資源中為該設備代碼分配第一計算資源,並從該顯示記憶體資源中為該設備代碼分配第一顯示記憶體資源。
- 根據申請專利範圍第3項所述的方法,其中,該根據該資源分配請求和所維護的該第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的至少一塊GPU提供的硬體資源中為該應用程式中的設備代碼分配運行所需的資源之前,還包括:根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的系統記憶體中,申 請與該至少一塊GPU可提供的顯示記憶體資源總量相同的虛擬記憶體;形成該虛擬記憶體與該至少一塊GPU可提供的顯示記憶體資源之間的映射關係;該根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該顯示記憶體資源中為該設備代碼分配第一顯示記憶體資源,包括:從該虛擬記憶體中為該設備代碼分配第一儲存資源;根據該映射關係,對該第一儲存資源對應的該第一顯示記憶體資源進行標記,以標識將該第一顯示記憶體資源分配給該設備代碼。
- 根據申請專利範圍第4項所述的方法,其中,還包括:接收該主機代碼發送的讀請求,根據該讀請求,從該第一儲存資源中讀取資料並將所讀取的資料返回給該主機代碼;和/或接收該主機代碼發送的寫請求,根據該寫請求,向該第一儲存資源中寫入資料,並根據對該第一顯示記憶體資源的標記,向該第一顯示記憶體資源中同步所寫入的資料。
- 根據申請專利範圍第4或5項所述的方法,其中,該形成該虛擬記憶體與該至少一塊GPU可提供的顯示記憶體資源之間的映射關係,還包括:對該虛擬記憶體進行分頁處理,獲得內存頁; 對該顯示記憶體資源進行分頁處理,獲得顯存頁;形成該內存頁和顯存頁之間的映射關係;該向該第一顯示記憶體資源中同步所寫入的資料,包括:確定所寫入的資料所在的第一內存頁,將該第一內存頁中的資料同步到該第一內存頁對應的顯存頁中。
- 根據申請專利範圍第3或4或5項所述的方法,其中,該根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該計算資源中為該設備代碼分配第一計算資源,包括:根據該資源分配請求的優先級,確定為該設備代碼分配計算資源的先後順序;按照該先後順序和該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該計算資源中為該設備代碼分配該第一計算資源。
- 根據申請專利範圍第3至5項中任一項所述的方法,其中,該將所分配的資源的資訊返回給該主機代碼,以使該主機代碼控制該設備代碼成功運行在該至少一塊GPU上,包括:將該第一計算資源的標識和該第一儲存資源的地址資訊發送給該主機代碼,以使該主機代碼將該設備代碼發送給該第一計算資源以供該第一計算資源運行該設備代碼並將運行過程中產生的資料儲存到該第一儲存資源中;將該運行過程中產生的資料儲存到被標記的該第一顯 示記憶體資源中。
- 一種資源處理裝置,其特徵在於,包括:接收模組,用於接收部署於第一設備上的應用程式中的主機代碼發出的資源分配請求;分配模組,用於根據該資源分配請求和所維護的該第一設備的至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的至少一塊GPU可提供的硬體資源中為該應用程式中的設備代碼分配運行所需的資源;發送模組,用於將所分配的資源的資訊返回給該主機代碼。
- 根據申請專利範圍第9項所述的裝置,其中,還包括:資訊獲取模組,用於:向該至少一塊GPU中每塊GPU發送資源詳情獲取請求,並接收每塊GPU根據該資源詳情獲取請求返回的資源詳情資訊;或者接收該至少一塊GPU中每塊GPU發送的註冊請求,該註冊請求包括資源詳情資訊;其中,該資源詳情資訊用於描述每塊GPU可提供的硬體資源;維護模組,用於根據每塊GPU的資源詳情資訊,生成該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯。
- 根據申請專利範圍第9項所述的裝置,其中,該至少一塊GPU可提供的硬體資源包括顯示記憶體資源和計算資源;該分配模組具體用於:根據該資源分配請求,讀取該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯;根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該計算資源中為該設備代碼分配第一計算資源,並從該顯示記憶體資源中為該設備代碼分配第一顯示記憶體資源。
- 根據申請專利範圍第11項所述的裝置,其中,還包括:申請模組,用於根據該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該第一設備的系統記憶體中,申請與該至少一塊GPU可提供的顯示記憶體資源總量相同的虛擬記憶體;映射模組,用於形成該虛擬記憶體與該至少一塊GPU可提供的顯示記憶體資源之間的映射關係;該分配模組具體用於:從該計算資源中為該設備代碼分配第一計算資源,並從該虛擬記憶體中為該設備代碼分配第一儲存資源,根據該映射關係,對該第一儲存資源對應的該第一顯示記憶體資源進行標記,以標識將該第一顯示記憶體資源分配給該設備代碼。
- 根據申請專利範圍第12項所述的裝置,其中,還 包括:讀寫處理模組,用於接收該主機代碼發送的讀請求,根據該讀請求,從該第一儲存資源中讀取資料並將所讀取的資料返回給該主機代碼;和/或,接收該主機代碼發送的寫請求,根據該寫請求,向該第一儲存資源中寫入資料,並根據對該第一顯示記憶體資源的標記,向該第一顯示記憶體資源中同步所寫入的資料。
- 根據申請專利範圍第12或13項所述的裝置,其中,該映射模組具體用於:對該虛擬記憶體進行分頁處理,獲得內存頁;對該顯示記憶體資源進行分頁處理,獲得顯存頁;形成該內存頁和顯存頁之間的映射關係;該讀寫處理模組具體用於:接收該主機代碼發送的寫請求,根據該寫請求,向該第一儲存資源中寫入資料,並確定所寫入的資料所在的第一內存頁,將該第一內存頁中的資料同步到該第一內存頁對應的顯存頁中。
- 根據申請專利範圍第11或12或13項所述的裝置,其中,該分配模組具體用於:根據該資源分配請求的優先級,確定為該設備代碼分配計算資源的先後順序,按照該先後順序和該至少一塊GPU可提供的硬體資源到統一虛擬GPU資源的映射邏輯,從該計算資源中為該設備代碼分配該第一計算資源,並從該顯示記憶體資源中為該設備代碼分配第一顯示記憶 體資源。
- 根據申請專利範圍第11至13項中任一項所述的裝置,其中,該發送模組具體用於:將該第一計算資源的標識和該第一儲存資源的地址資訊發送給該主機代碼,以使該主機代碼將該設備代碼發送給該第一計算資源以供該第一計算資源運行該設備代碼並將運行過程中產生的資料儲存到該第一儲存資源中,並將該運行過程中產生的資料儲存到被標記的該第一顯示記憶體資源中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510069338.7A CN105988874B (zh) | 2015-02-10 | 2015-02-10 | 资源处理方法及装置 |
CN201510069338.7 | 2015-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201636838A true TW201636838A (zh) | 2016-10-16 |
TWI696952B TWI696952B (zh) | 2020-06-21 |
Family
ID=56566948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104128813A TWI696952B (zh) | 2015-02-10 | 2015-09-01 | 資源處理方法及裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9965826B2 (zh) |
CN (1) | CN105988874B (zh) |
TW (1) | TWI696952B (zh) |
WO (1) | WO2016130487A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009008B (zh) * | 2016-10-28 | 2022-08-09 | 北京市商汤科技开发有限公司 | 数据处理方法和系统、电子设备 |
KR20180057036A (ko) * | 2016-11-21 | 2018-05-30 | 삼성전자주식회사 | 효율적인 리소스 관리를 위한 전자 장치 및 이의 방법 |
CN107688495B (zh) * | 2017-06-22 | 2020-11-03 | 平安科技(深圳)有限公司 | 调度处理器的方法及设备 |
US10310985B2 (en) * | 2017-06-26 | 2019-06-04 | Ati Technologies Ulc | Systems and methods for accessing and managing a computing system memory |
CN109697121B (zh) * | 2017-10-20 | 2023-05-05 | 伊姆西Ip控股有限责任公司 | 用于向应用分配处理资源的方法、设备和计算机可读介质 |
CN108519859B (zh) * | 2018-03-30 | 2021-04-20 | 深圳忆联信息系统有限公司 | 数据读取方法、装置、设备及介质 |
CN110389825B (zh) | 2018-04-20 | 2023-08-04 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的方法、设备和计算机程序产品 |
CN110968577B (zh) * | 2018-09-27 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种写入、读取资源的方法和系统以及时序存储系统 |
KR102032521B1 (ko) * | 2018-12-26 | 2019-10-15 | 래블업(주) | 컨테이너 기반의 gpu 가상화 방법 및 시스템 |
CN110209434B (zh) * | 2019-04-23 | 2022-04-22 | 努比亚技术有限公司 | 一种内存管理方法、装置及计算机可读存储介质 |
CN110275778B (zh) * | 2019-06-14 | 2021-07-27 | 上海商汤智能科技有限公司 | 在线程序运行方法、装置、电子设备和计算机存储介质 |
CN110764901B (zh) * | 2019-09-17 | 2021-02-19 | 创新先进技术有限公司 | 基于gpu资源的数据处理方法、电子设备及系统 |
CN110706147B (zh) * | 2019-09-29 | 2023-08-11 | 阿波罗智联(北京)科技有限公司 | 图像处理的环境确定方法、装置、电子设备和存储介质 |
CN111966500B (zh) * | 2020-09-07 | 2023-08-11 | 网易(杭州)网络有限公司 | 资源调度方法、装置、电子设备及存储介质 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7768522B2 (en) * | 2002-01-08 | 2010-08-03 | Apple Inc. | Virtualization of graphics resources and thread blocking |
US6947051B2 (en) | 2003-02-18 | 2005-09-20 | Microsoft Corporation | Video memory management |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US8766996B2 (en) | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US8667500B1 (en) | 2006-10-17 | 2014-03-04 | Vmware, Inc. | Use of dynamic entitlement and adaptive threshold for cluster process balancing |
US8010954B2 (en) | 2007-02-14 | 2011-08-30 | The Mathworks, Inc. | Parallel programming interface to dynamically allocate program portions |
JP4576449B2 (ja) | 2008-08-29 | 2010-11-10 | 富士通株式会社 | スイッチ装置およびコピー制御方法 |
US8352952B2 (en) | 2008-12-01 | 2013-01-08 | Citrix Systems, Inc. | Systems and methods for facilitating virtualization of a heterogeneous processor pool |
US8838913B1 (en) | 2009-09-15 | 2014-09-16 | Symantec Corporation | System and method for locating a memory page in a guest virtual machine |
US8176220B2 (en) | 2009-10-01 | 2012-05-08 | Oracle America, Inc. | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors |
CN102741828B (zh) | 2009-10-30 | 2015-12-09 | 英特尔公司 | 对计算机平台的异构处理器的双向通信支持 |
US9081621B2 (en) | 2009-11-25 | 2015-07-14 | Microsoft Technology Licensing, Llc | Efficient input/output-aware multi-processor virtual machine scheduling |
US9024959B2 (en) | 2009-12-21 | 2015-05-05 | Intel Corporation | Demand-paged textures |
US8595721B2 (en) | 2009-12-22 | 2013-11-26 | International Business Machines Corporation | Preserving a dedicated temporary allocation virtualization function in a power management environment |
JP5484117B2 (ja) | 2010-02-17 | 2014-05-07 | 株式会社日立製作所 | ハイパーバイザ及びサーバ装置 |
KR101636878B1 (ko) * | 2010-02-18 | 2016-07-06 | 삼성전자주식회사 | 가상화 환경에서의 데이터 처리 방법 및 드라이버 |
US8555267B2 (en) | 2010-03-03 | 2013-10-08 | Red Hat, Inc. | Performing register allocation of program variables based on priority spills and assignments |
US8826270B1 (en) | 2010-03-16 | 2014-09-02 | Amazon Technologies, Inc. | Regulating memory bandwidth via CPU scheduling |
JP5308383B2 (ja) | 2010-03-18 | 2013-10-09 | パナソニック株式会社 | 仮想マルチプロセッサシステム |
US8707300B2 (en) | 2010-07-26 | 2014-04-22 | Microsoft Corporation | Workload interference estimation and performance optimization |
US9733963B2 (en) | 2010-09-17 | 2017-08-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Optimizing virtual graphics processing unit utilization |
KR101900436B1 (ko) * | 2010-12-15 | 2018-09-20 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고 |
CN102567115B (zh) | 2010-12-23 | 2016-04-06 | 伊姆西公司 | 云系统中用于信息技术资源分配和利用跟踪的装置和方法 |
US8683120B2 (en) | 2011-03-28 | 2014-03-25 | Hitachi, Ltd. | Method and apparatus to allocate area to virtual volume |
US8935484B2 (en) | 2011-03-31 | 2015-01-13 | Hewlett-Packard Development Company, L.P. | Write-absorbing buffer for non-volatile memory |
US9164923B2 (en) | 2011-07-01 | 2015-10-20 | Intel Corporation | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform |
US9727385B2 (en) * | 2011-07-18 | 2017-08-08 | Apple Inc. | Graphical processing unit (GPU) implementing a plurality of virtual GPUs |
JP5733136B2 (ja) | 2011-09-26 | 2015-06-10 | 富士通株式会社 | 情報処理装置の制御方法、制御プログラム及び情報処理装置 |
US10310879B2 (en) | 2011-10-10 | 2019-06-04 | Nvidia Corporation | Paravirtualized virtual GPU |
US8819230B2 (en) | 2011-11-05 | 2014-08-26 | Zadara Storage, Ltd. | Virtual private storage array service for cloud servers |
KR101850318B1 (ko) | 2011-12-09 | 2018-04-20 | 삼성전자주식회사 | 가상 메모리 관리 장치 및 방법 |
US9081504B2 (en) | 2011-12-29 | 2015-07-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Write bandwidth management for flash devices |
US9081618B2 (en) | 2012-03-19 | 2015-07-14 | Ati Technologies Ulc | Method and apparatus for the scheduling of computing tasks |
CN102650950B (zh) * | 2012-04-10 | 2015-04-15 | 南京航空航天大学 | 一种支持多gpu虚拟化的平台架构及其工作方法 |
US8990807B2 (en) | 2012-08-09 | 2015-03-24 | VCE Company LLC | Virtual instance reconfiguration |
US9164809B2 (en) | 2012-09-04 | 2015-10-20 | Red Hat Israel, Ltd. | Virtual processor provisioning in virtualized computer systems |
US9251108B2 (en) | 2012-11-05 | 2016-02-02 | International Business Machines Corporation | Managing access to shared buffer resources |
CN108854055B (zh) * | 2012-11-28 | 2021-08-20 | 辉达公司 | 用于远程显示器的基于云的虚拟化图形处理系统和介质 |
US9052932B2 (en) | 2012-12-17 | 2015-06-09 | International Business Machines Corporation | Hybrid virtual machine configuration management |
US9298490B2 (en) | 2012-12-20 | 2016-03-29 | Vmware, Inc. | Managing a data structure for allocating graphics processing unit resources to virtual machines |
US9142004B2 (en) * | 2012-12-20 | 2015-09-22 | Vmware, Inc. | Dynamic allocation of physical graphics processing units to virtual machines |
US9015523B2 (en) | 2012-12-20 | 2015-04-21 | Intel Corporation | Memory allocation for virtual machines using memory map |
US9158569B2 (en) | 2013-02-11 | 2015-10-13 | Nvidia Corporation | Virtual interrupt delivery from a graphics processing unit (GPU) of a computing system without hardware support therefor |
US9112685B2 (en) | 2013-05-10 | 2015-08-18 | Blackberry Limited | Mechanisms for direct inter-device signaling |
US9141431B1 (en) | 2014-10-07 | 2015-09-22 | AO Kaspersky Lab | System and method for prioritizing on access scan and on demand scan tasks |
US9491112B1 (en) * | 2014-12-10 | 2016-11-08 | Amazon Technologies, Inc. | Allocating processor resources based on a task identifier |
-
2015
- 2015-02-10 CN CN201510069338.7A patent/CN105988874B/zh active Active
- 2015-09-01 TW TW104128813A patent/TWI696952B/zh active
-
2016
- 2016-02-05 US US15/017,070 patent/US9965826B2/en active Active
- 2016-02-08 WO PCT/US2016/017024 patent/WO2016130487A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US9965826B2 (en) | 2018-05-08 |
TWI696952B (zh) | 2020-06-21 |
WO2016130487A1 (en) | 2016-08-18 |
CN105988874B (zh) | 2020-08-28 |
CN105988874A (zh) | 2016-10-05 |
US20160232640A1 (en) | 2016-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI696952B (zh) | 資源處理方法及裝置 | |
US9430391B2 (en) | Managing coherent memory between an accelerated processing device and a central processing unit | |
US10191759B2 (en) | Apparatus and method for scheduling graphics processing unit workloads from virtual machines | |
TWI417790B (zh) | 異質架構中之邏輯分割以及虛擬化 | |
WO2018119952A1 (zh) | 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品 | |
CN103608766B (zh) | 向应用主机提供应用对存储器分配和使用的方法和系统 | |
WO2021098182A1 (zh) | 资源管理方法和装置、电子设备及存储介质 | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
KR20130010442A (ko) | 가상 gpu | |
US9501285B2 (en) | Register allocation to threads | |
US9448934B2 (en) | Affinity group access to global data | |
US20110231614A1 (en) | Accelerating memory operations using virtualization information | |
CN107077376B (zh) | 帧缓存实现方法、装置、电子设备和计算机程序产品 | |
WO2019028682A1 (zh) | 一种多系统共享内存的管理方法及装置 | |
JP2020503609A (ja) | マルチオペレーティングシステム用のメモリアクセス方法、装置及び電子設備 | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
JP2020194522A (ja) | データを処理するための方法、装置、デバイス及び媒体 | |
US20230185991A1 (en) | Multi-processor simulation on a multi-core machine | |
CN103870247A (zh) | 用于保存和恢复线程组操作状态的技术 | |
EP4184324A1 (en) | Efficient accelerator offload in multi-accelerator framework | |
CN113268356B (zh) | 基于LINUX系统的多GPU板卡bounding的系统、方法及介质 | |
CN109271179A (zh) | 虚拟机应用程序管理方法、装置、设备及可读存储介质 | |
EP3343370A1 (en) | Method of processing opencl kernel and computing device therefor | |
JPH09319653A (ja) | 情報処理装置、情報処理システム及びその制御方法 | |
CN112817691B (zh) | 资源分配方法、装置、设备及介质 |