[發明專利]多進程共享的GPU調度方法、系統及電子設備有效
| 申請號: | 202010000285.4 | 申請日: | 2020-01-02 |
| 公開(公告)號: | CN111124691B | 公開(公告)日: | 2022-11-25 |
| 發明(設計)人: | 陳全;晁佳歡;過敏意 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48;G06F9/54 |
| 代理公司: | 上海光華專利事務所(普通合伙) 31219 | 代理人: | 龐紅芳 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 進程 共享 gpu 調度 方法 系統 電子設備 | ||
1.一種多進程共享的GPU調度方法,其特征在于:包括:
從同時運行多個相同用戶程序的進程池中捕獲所述用戶程序的某一個內核,并將該內核確定為待調度的內核;
獲取待調度的內核,根據所述內核的特征確定所述內核的資源分配百分比;
根據確定的內核的資源分配百分比向GPU發射所述內核;
所述確定所述內核的資源分配百分比的一種實現方式為:
內核的資源分配百分比滿足以下條件:
p1+p2+...+pn=100;
其中,p1,p2...pn分別表示為用戶程序1的資源分配百分比,用戶程序2的資源分配百分比,用戶程序n的資源分配百分比,n表示為用戶程序的數量,表示第n個用戶程序資源分配百分比為p時其SM吞吐率的大小。
2.根據權利要求1所述的多進程共享的GPU調度方法,其特征在于:獲取所述內核的特征的一種實現方式包括:
在GPU的CUDA運算程序運行之前,對所述CUDA運算程序預先進行Profile配置;
通過CUDA內核分析工具NVIDIA Nsight Compute獲取所述內核的特征。
3.根據權利要求1所述的多進程共享的GPU調度方法,其特征在于:每一個所述進程池對應于共享內存的一個固定位置;在所述進程池捕獲到某一個內核后,將所述內核的信息寫入所述共享內存中,并修改所述內核的狀態為等待調度狀態,將該內核確定為待調度的內核,所述進程池自身進入忙等狀態;在確定所述內核的資源分配百分比之后,修改所述內核的狀態為完成分配狀態;在發射所述內核之后,更新所述共享內存中的已發射內核的個數。
4.根據權利要求1所述的多進程共享的GPU調度方法,其特征在于:所述多進程共享的GPU調度方法還包括:
捕獲所述用戶程序的發射所述內核的CUDA函數。
5.根據權利要求4所述的多進程共享的GPU調度方法,其特征在于:所述捕獲所述用戶程序的發射所述內核的函數的一種實現方式包括:
建立一動態庫,并于所述動態庫中預設若干重寫函數;
在CUDA運算程序運行時預加載該動態庫,在CUDA函數發射前跳轉到動態庫的重寫函數中;
從所述重寫函數中捕獲所述用戶程序的發射所述內核的CUDA函數。
6.根據權利要求5所述的多進程共享的GPU調度方法,其特征在于:捕獲的CUDA函數包括申請顯存的函數、數據拷貝的函數、發射內核的函數、等待計算完成函數以及釋放顯存函數。
7.一種多進程共享的GPU調度系統,其特征在于:所述多進程共享的GPU調度系統包括:
進程池模塊,包括多個進程池,每一個所述進程池同時運行多個相同用戶程序,所述進程池用于捕獲所述用戶程序的某一個內核,將該內核確定為待調度的內核,并根據確定的內核的資源分配百分比向GPU發射所述內核;
調度器,獲取待調度的內核,根據所述內核的特征確定所述內核的資源分配百分比;確定所述內核的資源分配百分比的一種實現方式為:
內核的資源分配百分比滿足以下條件:
p1+p2+...+pn=100;
其中,p1,p2...pn分別表示為用戶程序1的資源分配百分比,用戶程序2的資源分配百分比,用戶程序n的資源分配百分比,n表示為用戶程序的數量,表示第n個用戶程序資源分配百分比為p時其SM吞吐率的大小;
共享內存,建立所述進程池模塊與所述調度器之間的通訊連接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010000285.4/1.html,轉載請聲明來源鉆瓜專利網。





