[發(fā)明專利]一種剖析CUDA程序行為的方法有效
申請?zhí)枺?/td> | 201210006272.3 | 申請日: | 2012-01-06 |
公開(公告)號: | CN102567206A | 公開(公告)日: | 2012-07-11 |
發(fā)明(設計)人: | 金海;喻之斌;程偉 | 申請(專利權(quán))人: | 華中科技大學 |
主分類號: | G06F11/36 | 分類號: | G06F11/36 |
代理公司: | 華中科技大學專利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關(guān)鍵詞: | 一種 剖析 cuda 程序 行為 方法 | ||
1.一種剖析CUDA程序行為的方法,其特征在于,該方法包括下述步驟:
(1)使用GPU模擬器軟件,修改它的配置文件開啟指令跟蹤和程序信息調(diào)試功能后,運行CUDA程序;
(2)記錄CUDA程序運行過程中產(chǎn)生的線程的id信息、指令操作碼、指令依賴距離以及基本塊的塊號、平均大小、前驅(qū)、后繼結(jié)點信息;
(3)通過CUDA程序中的基本塊的前驅(qū)、后繼結(jié)點的連接信息,計算CUDA程序中的基本塊之間跳轉(zhuǎn)的概率;
(4)顯示CUDA程序的控制流-基本塊跳轉(zhuǎn)的邏輯關(guān)系,獲取基本塊的總數(shù);
(5)針對每一個線程,搜索步驟(2)記錄的線程號和基本塊號,找出它經(jīng)過的所有基本塊的塊號;
(6)針對每一個線程經(jīng)過的所有基本塊,搜索步驟(2)記錄的信息里的線程id和基本塊塊號,計算出每個基本塊被該線程訪問的次數(shù);
(7)以每個基本塊被某線程訪問的次數(shù)為數(shù)組的元素,建立該線程的基本塊向量;
(8)針對每一個線程的基本塊向量,計算出不同的線程的基本塊向量之間的距離;
(9)以不同的線程的基本塊向量之間的距離為矩陣的元素,建立線程的相似矩陣;
(10)根據(jù)與現(xiàn)有CUDA程序的行為特征進行比較的結(jié)果,判斷該CUDA程序是否屬于該行為特征顯著型程序;所述行為特征表現(xiàn)為數(shù)學統(tǒng)計結(jié)果,如果該結(jié)果超過預設的臨界值,則判斷該CUDA程序?qū)儆谠撔袨樘卣黠@著型程序;
(11)如果不需要剖析其它的程序,結(jié)束;反之,轉(zhuǎn)入步驟(1)。
2.根據(jù)權(quán)利要求1所述的一種剖析CUDA程序行為的方法,其特征在于,步驟(10)中,將相似矩陣里的元素值歸一化,使用歸一化后的值作為亮度值,使用Matlab工具以黑白圖形顯示相似矩陣,并使用像素掃描器檢查剖析的CUDA程序運行過程中的線程的起伏變化率,當像素掃描器檢查到的CUDA程序的線程起伏變化率大于預先設定的臨界值時,則認為該CUDA程序是分支發(fā)散顯著型程序。
3.根據(jù)權(quán)利要求1所述的一種剖析CUDA程序行為的方法,其特征在于,步驟(10)中,將步驟(2)記錄的BAR指令操作碼在程序執(zhí)行完所經(jīng)過的基本塊中出現(xiàn)的次數(shù),除以程序執(zhí)行完所經(jīng)過的基本塊的總數(shù),得到線程的同步率,當所運行的CUDA程序的同步率大于預先設定的另一臨界值時,由認為所運行的CUDA程序是同步顯著型程序。
4.根據(jù)權(quán)利要求1、2或3所述的一種剖析CUDA程序行為的方法,其特征在于,步驟(8)中采用歐幾里得距離來計算同一線程組內(nèi)線程之間的相似程度。
5.根據(jù)權(quán)利要求1所述的一種剖析CUDA程序行為方法,其特征在于:所述CUDA程序行為包括CUDA程序的基本塊級別的特征和線程級別的特征。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華中科技大學,未經(jīng)華中科技大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210006272.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。