[發(fā)明專利]OpenCL程序編譯方法和編譯器在審
| 申請?zhí)枺?/td> | 201310404125.6 | 申請日: | 2013-09-06 |
| 公開(公告)號: | CN104424009A | 公開(公告)日: | 2015-03-18 |
| 發(fā)明(設(shè)計)人: | 劉穎 | 申請(專利權(quán))人: | 華為技術(shù)有限公司;中國科學(xué)院計算技術(shù)研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 深圳市深佳知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44285 | 代理人: | 唐華明 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | opencl 程序 編譯 方法 編譯器 | ||
1.一種開放運算語言O(shè)penCL程序編譯方法,其特征在于,包括:
獲取OpenCL程序的源程序文件,并確定所述源程序文件中定義的操作數(shù)據(jù)的第一數(shù)據(jù)傳輸模式;
計算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時間,所述第二數(shù)據(jù)傳輸模式與所述第一數(shù)據(jù)傳輸模式不同,所述執(zhí)行消耗時間包括所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時間和設(shè)備程序執(zhí)行時間;
選擇所述執(zhí)行消耗時間較小的數(shù)據(jù)傳輸模式作為所述源程序文件編譯時所述操作數(shù)據(jù)的編譯數(shù)據(jù)傳輸模式;
按照所述編譯數(shù)據(jù)傳輸模式生成編譯執(zhí)行代碼文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的程序執(zhí)行消耗時間包括:
驗證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時,所述操作數(shù)據(jù)是否安全;
當(dāng)所述操作數(shù)據(jù)安全時,計算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和所述第二數(shù)據(jù)傳輸模式下的程序執(zhí)行消耗時間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述第一數(shù)據(jù)傳輸模式為復(fù)制模式,所述第二數(shù)據(jù)傳輸模式為映射模式,所述驗證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理,所述操作數(shù)據(jù)是否安全包括:
分析在程序執(zhí)行過程中,是否存在主機端對所述操作數(shù)據(jù)的寫操作,若否,確定所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時安全;
當(dāng)所述第一數(shù)據(jù)模式為映射模式,所述第二數(shù)據(jù)傳輸模式為復(fù)制模式時,所述驗證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理,所述操作數(shù)據(jù)是否安全包括:
分析在程序執(zhí)行過程中,是否存在設(shè)備端對所述操作數(shù)據(jù)的寫操作,若否,確定所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時安全。
4.根據(jù)權(quán)利要求1~3任一項所述的方法,其特征在于,所述第一數(shù)據(jù)傳輸模式為復(fù)制模式時,所述第二數(shù)據(jù)傳輸模式為映射模式;或,所述第一數(shù)據(jù)傳輸模式為映射模式時,所述第二數(shù)據(jù)傳輸模式為復(fù)制模式;
所述計算所述操作數(shù)據(jù)分別在第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時間包括:
根據(jù)所述操作數(shù)據(jù)的總數(shù)據(jù)量以及數(shù)據(jù)傳輸速率,計算復(fù)制模式下所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時間;
根據(jù)設(shè)備程序執(zhí)行過程中,對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量以及訪問設(shè)備端的內(nèi)存訪問速率,計算所述復(fù)制模式下所述操作數(shù)據(jù)的設(shè)備程序執(zhí)行時間;
將所述復(fù)制模式下計算的數(shù)據(jù)傳輸時間以及設(shè)備程序執(zhí)行時間之和,作為所述操作數(shù)據(jù)在所述復(fù)制模式下的執(zhí)行消耗時間;
根據(jù)主機端與設(shè)備端的映射關(guān)系建立以及消除時間,計算映射模式下所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時間;
根據(jù)設(shè)備程序執(zhí)行過程中,對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量以及訪問主機端的內(nèi)存訪問速率,計算所述映射模式下所述操作數(shù)據(jù)的設(shè)備程序執(zhí)行時間;
將所述映射模式下計算的數(shù)據(jù)傳輸時間以及設(shè)備程序執(zhí)行之和,作為所述操作數(shù)據(jù)在所述映射模式下的執(zhí)行消耗時間。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量為根據(jù)源程序文件中定義的設(shè)備程序的工作項數(shù)量以及單位工作項的內(nèi)存訪問數(shù)據(jù)量計算得到。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)傳輸速率、所述訪問設(shè)備端的內(nèi)存訪問速率或者所述訪問主機端的內(nèi)存訪問速率是根據(jù)當(dāng)前異構(gòu)系統(tǒng)執(zhí)行硬件平臺的硬件特征預(yù)先確定的。
7.一種編譯器,其特征在于,包括:
模式確定模塊,用于獲取OpenCL程序的源程序文件,并確定所述源程序文件中定義的操作數(shù)據(jù)的第一數(shù)據(jù)傳輸模式;
計算模塊,用于計算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時間,所述第二數(shù)據(jù)傳輸模式與所述第一數(shù)據(jù)傳輸模式不同,所述執(zhí)行消耗時間包括所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時間和設(shè)備程序執(zhí)行時間;
模式選擇模塊,用于選擇消耗時間較小的數(shù)據(jù)傳輸模式作為所述源程序文件編譯時所述操作數(shù)據(jù)的編譯數(shù)據(jù)傳輸模式。
編譯模塊,用于按照所述編譯數(shù)據(jù)傳輸模式生成編譯執(zhí)行代碼文件。
8.根據(jù)權(quán)利要求7所述的編譯器,其特征在于,還包括:
驗證模塊,用于驗證所述操作數(shù)據(jù)按照第二數(shù)據(jù)傳輸模式處理時,所述操作數(shù)據(jù)是否安全,若是,再觸發(fā)所述計算模塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司;中國科學(xué)院計算技術(shù)研究所,未經(jīng)華為技術(shù)有限公司;中國科學(xué)院計算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310404125.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





