[發(fā)明專利]OpenCL程序編譯方法和編譯器在審
| 申請?zhí)枺?/td> | 201310404125.6 | 申請日: | 2013-09-06 |
| 公開(公告)號: | CN104424009A | 公開(公告)日: | 2015-03-18 |
| 發(fā)明(設(shè)計(jì))人: | 劉穎 | 申請(專利權(quán))人: | 華為技術(shù)有限公司;中國科學(xué)院計(jì)算技術(shù)研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 深圳市深佳知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44285 | 代理人: | 唐華明 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | opencl 程序 編譯 方法 編譯器 | ||
1.一種開放運(yùn)算語言O(shè)penCL程序編譯方法,其特征在于,包括:
獲取OpenCL程序的源程序文件,并確定所述源程序文件中定義的操作數(shù)據(jù)的第一數(shù)據(jù)傳輸模式;
計(jì)算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時(shí)間,所述第二數(shù)據(jù)傳輸模式與所述第一數(shù)據(jù)傳輸模式不同,所述執(zhí)行消耗時(shí)間包括所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時(shí)間和設(shè)備程序執(zhí)行時(shí)間;
選擇所述執(zhí)行消耗時(shí)間較小的數(shù)據(jù)傳輸模式作為所述源程序文件編譯時(shí)所述操作數(shù)據(jù)的編譯數(shù)據(jù)傳輸模式;
按照所述編譯數(shù)據(jù)傳輸模式生成編譯執(zhí)行代碼文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計(jì)算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的程序執(zhí)行消耗時(shí)間包括:
驗(yàn)證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時(shí),所述操作數(shù)據(jù)是否安全;
當(dāng)所述操作數(shù)據(jù)安全時(shí),計(jì)算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和所述第二數(shù)據(jù)傳輸模式下的程序執(zhí)行消耗時(shí)間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述第一數(shù)據(jù)傳輸模式為復(fù)制模式,所述第二數(shù)據(jù)傳輸模式為映射模式,所述驗(yàn)證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理,所述操作數(shù)據(jù)是否安全包括:
分析在程序執(zhí)行過程中,是否存在主機(jī)端對所述操作數(shù)據(jù)的寫操作,若否,確定所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時(shí)安全;
當(dāng)所述第一數(shù)據(jù)模式為映射模式,所述第二數(shù)據(jù)傳輸模式為復(fù)制模式時(shí),所述驗(yàn)證所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理,所述操作數(shù)據(jù)是否安全包括:
分析在程序執(zhí)行過程中,是否存在設(shè)備端對所述操作數(shù)據(jù)的寫操作,若否,確定所述操作數(shù)據(jù)按照所述第二數(shù)據(jù)傳輸模式處理時(shí)安全。
4.根據(jù)權(quán)利要求1~3任一項(xiàng)所述的方法,其特征在于,所述第一數(shù)據(jù)傳輸模式為復(fù)制模式時(shí),所述第二數(shù)據(jù)傳輸模式為映射模式;或,所述第一數(shù)據(jù)傳輸模式為映射模式時(shí),所述第二數(shù)據(jù)傳輸模式為復(fù)制模式;
所述計(jì)算所述操作數(shù)據(jù)分別在第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時(shí)間包括:
根據(jù)所述操作數(shù)據(jù)的總數(shù)據(jù)量以及數(shù)據(jù)傳輸速率,計(jì)算復(fù)制模式下所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時(shí)間;
根據(jù)設(shè)備程序執(zhí)行過程中,對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量以及訪問設(shè)備端的內(nèi)存訪問速率,計(jì)算所述復(fù)制模式下所述操作數(shù)據(jù)的設(shè)備程序執(zhí)行時(shí)間;
將所述復(fù)制模式下計(jì)算的數(shù)據(jù)傳輸時(shí)間以及設(shè)備程序執(zhí)行時(shí)間之和,作為所述操作數(shù)據(jù)在所述復(fù)制模式下的執(zhí)行消耗時(shí)間;
根據(jù)主機(jī)端與設(shè)備端的映射關(guān)系建立以及消除時(shí)間,計(jì)算映射模式下所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時(shí)間;
根據(jù)設(shè)備程序執(zhí)行過程中,對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量以及訪問主機(jī)端的內(nèi)存訪問速率,計(jì)算所述映射模式下所述操作數(shù)據(jù)的設(shè)備程序執(zhí)行時(shí)間;
將所述映射模式下計(jì)算的數(shù)據(jù)傳輸時(shí)間以及設(shè)備程序執(zhí)行之和,作為所述操作數(shù)據(jù)在所述映射模式下的執(zhí)行消耗時(shí)間。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對所述操作數(shù)據(jù)的內(nèi)存訪問總數(shù)據(jù)量為根據(jù)源程序文件中定義的設(shè)備程序的工作項(xiàng)數(shù)量以及單位工作項(xiàng)的內(nèi)存訪問數(shù)據(jù)量計(jì)算得到。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)傳輸速率、所述訪問設(shè)備端的內(nèi)存訪問速率或者所述訪問主機(jī)端的內(nèi)存訪問速率是根據(jù)當(dāng)前異構(gòu)系統(tǒng)執(zhí)行硬件平臺的硬件特征預(yù)先確定的。
7.一種編譯器,其特征在于,包括:
模式確定模塊,用于獲取OpenCL程序的源程序文件,并確定所述源程序文件中定義的操作數(shù)據(jù)的第一數(shù)據(jù)傳輸模式;
計(jì)算模塊,用于計(jì)算所述操作數(shù)據(jù)分別在所述第一數(shù)據(jù)傳輸模式和第二數(shù)據(jù)傳輸模式下的執(zhí)行消耗時(shí)間,所述第二數(shù)據(jù)傳輸模式與所述第一數(shù)據(jù)傳輸模式不同,所述執(zhí)行消耗時(shí)間包括所述操作數(shù)據(jù)的數(shù)據(jù)傳輸時(shí)間和設(shè)備程序執(zhí)行時(shí)間;
模式選擇模塊,用于選擇消耗時(shí)間較小的數(shù)據(jù)傳輸模式作為所述源程序文件編譯時(shí)所述操作數(shù)據(jù)的編譯數(shù)據(jù)傳輸模式。
編譯模塊,用于按照所述編譯數(shù)據(jù)傳輸模式生成編譯執(zhí)行代碼文件。
8.根據(jù)權(quán)利要求7所述的編譯器,其特征在于,還包括:
驗(yàn)證模塊,用于驗(yàn)證所述操作數(shù)據(jù)按照第二數(shù)據(jù)傳輸模式處理時(shí),所述操作數(shù)據(jù)是否安全,若是,再觸發(fā)所述計(jì)算模塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司;中國科學(xué)院計(jì)算技術(shù)研究所,未經(jīng)華為技術(shù)有限公司;中國科學(xué)院計(jì)算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310404125.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種畫質(zhì)調(diào)節(jié)方法及系統(tǒng)
- 一種向量點(diǎn)積的OpenCL自動(dòng)化實(shí)現(xiàn)方法
- 一種提高OpenCL硬件執(zhí)行效率的方法
- 基于OpenCL移動(dòng)設(shè)備QC-LDPC的動(dòng)態(tài)譯碼方法
- 基于Andorid平臺的OpenCL圖像處理方法
- 程序的加載方法、裝置、系統(tǒng)以及電子設(shè)備
- 基于FPGA的Tensorflow系統(tǒng)加速的設(shè)計(jì)方法
- 一種基于OpenCL的雙目立體匹配方法
- 一種OpenCL內(nèi)核提交的方法及裝置
- 面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法和裝置
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 一種軟件開發(fā)中的自動(dòng)化編譯方法及系統(tǒng)
- 一種動(dòng)態(tài)分配編譯機(jī)的系統(tǒng)及其方法
- 一種實(shí)現(xiàn)安卓編譯隔離的方法和系統(tǒng)
- 調(diào)度服務(wù)器、編譯服務(wù)器及分布式編譯方法
- 代碼編譯方法、編譯設(shè)備、存儲(chǔ)介質(zhì)及裝置
- 文件編譯方法、裝置、編譯設(shè)備及存儲(chǔ)介質(zhì)
- 一種編譯方法、裝置及系統(tǒng)
- 一種編譯方法和相關(guān)裝置
- 一種編譯方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種代碼編譯方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





