[發明專利]一種基于GPU片上的數據處理方法及設備有效
| 申請號: | 201710206474.5 | 申請日: | 2017-03-31 |
| 公開(公告)號: | CN106991007B | 公開(公告)日: | 2019-09-03 |
| 發明(設計)人: | 計曉斐;李建波;劉亮 | 申請(專利權)人: | 青島大學 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 青島清泰聯信知識產權代理有限公司 37256 | 代理人: | 高洋 |
| 地址: | 266071 *** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 gpu 數據處理 方法 | ||
1.一種基于GPU片上的數據處理方法,其特征在于:包括以下步驟:
分析GPU程序代碼,統計當前GPU片上共享存儲空間的所有數組變量;
將統計得到的所有數組變量按訪問次數排序;
選擇訪問次數最高的數組變量從共享存儲空間遷移到寄存器或L1緩存:若數組變量的長度為常量,且為單線程訪問,則遷移至寄存器;否則遷移至L1緩存中;
若遷移后的系統性能優于遷移前的性能,則從共享存儲空間中遷移出更多的數組變量,否則終止。
2.如權利要求1所述的基于GPU片上的數據處理方法,其特征在于:所述統計當前GPU片上共享存儲空間的所有數組變量,包括采用變量統計流程(CollectArray)統計當前GPU程序中存儲在片上共享存儲空間的所有數組變量。
3.如權利要求2所述的基于GPU片上的數據處理方法,其特征在于:所述變量統計流程(CollectArray)包括:
分析編程序代碼;
找出其中所有存儲在片上共享存儲空間內的數組變量,記為SMArray。
4.如權利要求3所述的基于GPU片上的數據處理方法,其特征在于:所述統計當前GPU片上共享存儲空間的所有數組變量,包括采用參數統計流程(CollectInfo)統計每個共享存儲數組變量的相關參數。
5.如權利要求4所述的基于GPU片上的數據處理方法,其特征在于:所述參數統計流程(CollectInfo)包括:
統計SMArray中每個共享存儲數組變量的參數信息,包括訪問次數、是否被多線程訪問以及下標是否為常數三個參數;
對于SMArray中某個數組變量arrayi而言,其訪問次數記為arrayi.count,依次遍歷GPU程序,若數組變量arrayi的該次訪問在條件語句中,則假設本次訪問有一半的概率可被執行,即arrayi.count+=0.5;若本次訪問在循環體內且循環次數為常數,則訪問次數arrayi.count+=loops,若循環體次數為變量則arrayi.count+=loops_app,其中loops表示常量的循環次數,loops_app表示近似的非常量的循環次數;loops_app是經驗值;
對于SMArray中某個數組變量arrayi而言,該參數記為arrayi.threads,如果數組變量arrayi在某次訪問中被多個線程訪問則arrayi.threads=true,否則arrayi.threads=false;
對于SMArray中某個數組變量arrayi而言,該參數記為arrayi.constant,如果數組變量arrayi的長度為常量則arrayi.constant=true,否則arrayi.constant=false。
6.如權利要求5所述的基于GPU片上的數據處理方法,其特征在于:所述將統計得到的所有數組變量按訪問次數排序,包括采用變量排序流程(SortArray)將所有共享存儲數組變量按其訪問次序從高到低排序,具體為:
調用程序開發平臺集成的快速排序函數;
將SMArray中的數組變量按照每個數組變量的訪問次數從高到低排序。
7.如權利要求6所述的基于GPU片上的數據處理方法,其特征在于:所述選擇訪問次數最高的數組變量從共享存儲空間遷移到寄存器或L1緩存,包括采用變量遷移流程(PromoteArray)將部分共享存儲數組變量從共享存儲空間遷移到其他片上存儲空間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于青島大學,未經青島大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710206474.5/1.html,轉載請聲明來源鉆瓜專利網。





