[發明專利]OpenCL程序編譯方法和編譯器在審
| 申請號: | 201310404125.6 | 申請日: | 2013-09-06 |
| 公開(公告)號: | CN104424009A | 公開(公告)日: | 2015-03-18 |
| 發明(設計)人: | 劉穎 | 申請(專利權)人: | 華為技術有限公司;中國科學院計算技術研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 唐華明 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | opencl 程序 編譯 方法 編譯器 | ||
技術領域
本申請涉及計算機處理技術領域,更具體的說是涉及一種OpenCL程序編譯方法和編譯器。
背景技術
OpenCL(Open?Computing?Language,開放運算語言)是面向異構系統首個通用目的的并行編程開放式、免費標準語言,其為軟件開發人員提供了統一的編程環境,以便于為高性能計算服務器、桌面計算系統、手持設備等編寫高效輕便的代碼。
OpenCL程序主要分成兩部分:設備程序和主機程序。例如一個異構系統由CPU和GPU組成時,在CPU上運行的程序為主機程序時,在GPU上運行的程序即為設備程序。OpenCL程序的執行過程主要包括:主機程序控制數據從主機端傳輸到設備端,設備端執行設備程序對數據進行處理,主機程序控制將處理結果數據從設備端傳輸到主機端。
由上述OpenCL程序的執行過程可知,影響OpenCL程序執行效率的主要是數據傳輸階段以及設備程序執行階段,因此OpenCL程序提供了兩種數據傳輸模式,即復制模式和映射模式。復制模式是指將數據從主機內存復制到設備內存,或者從設備內存復制到主機內存,由于數據需要在系統真正復制傳輸,因此在復制模式下,OpenCL程序在數據傳輸階段耗時較長,但是在設備程序執行時,由于數據已經位于設備內存中,因此設備程序執行階段耗時較短;映射模式是指在數據傳輸階段,僅是建立設備內存到主機內存的映射關系,數據仍是位于主機內存中,因此數據傳輸階段的耗時較短,但是設備程序執行時,需要訪問主機內存中的數據,導致設備執行階段耗時較長。
發明人在實現本發明的過程中發現,現有技術中,為了保證OpenCL程序的執行效率,通常是由技術人員預先根據系統的不同應用場景,以及硬件平臺等特征,選用合適的數據傳輸模式編寫OpenCL程序,但是現有的這種方式,用戶主觀性較大,并不能有效保證OpenCL程序的執行效率。
發明內容
本申請提供了一種OpenCL程序編譯方法和編譯器,用以解決現有技術中不能有效保證OpenCL程序執行效率的技術問題。
為實現上述目的,本申請提供如下技術方案:
第一方面,提供了一種開放運算語言OpenCL程序編譯方法,包括:
獲取OpenCL程序的源程序文件,并確定所述源程序文件中定義的操作數據的第一數據傳輸模式;
計算所述操作數據分別在所述第一數據傳輸模式和第二數據傳輸模式下的執行消耗時間,所述第二數據傳輸模式與所述第一數據傳輸模式不同,所述執行消耗時間包括所述操作數據的數據傳輸時間和設備程序執行時間;
選擇所述執行消耗時間較小的數據傳輸模式作為所述源程序文件編譯時所述操作數據的編譯數據傳輸模式;
按照所述編譯數據傳輸模式生成編譯執行代碼文件。
在所述第一方面的第一種可能實現方式中,所述計算所述操作數據分別在第一數據傳輸模式和第二數據傳輸模式下的程序執行消耗時間包括:
驗證所述操作數據按照所述第二數據傳輸模式處理時,所述操作數據是否安全;
當所述操作數據安全時,計算所述操作數據分別在所述第一數據傳輸模式和所述第二數據傳輸模式下時的程序執行消耗時間。
結合所述第一方面的第一種可能實現方式,還提供了所述第一方面的第二種可能實現方式,當所述第一數據傳輸模式為復制模式,所述第二數據傳輸模式為映射模式,所述驗證所述操作數據按照所述第二數據傳輸模式處理,所述操作數據是否安全包括:
分析在程序執行過程中,是否存在主機端對所述操作數據的寫操作,若否,確定所述操作數據按照所述第二數據傳輸模式處理時安全;
當所述第一數據模式為映射模式,所述第二數據傳輸模式為復制模式時,所述驗證所述操作數據按照所述第二數據傳輸模式處理,所述操作數據是否安全包括:
分析在程序執行過程中,是否存在設備端對所述操作數據的寫操作,若否,確定所述操作數據按照所述第二數據傳輸模式處理時安全。
結合所述第一方面或所述第一方面的上述任一種可能實現方式,還提供了所述第一方面的第三種可能實現方式,所述第一數據傳輸模式為復制模式,所述第二數據傳輸模式為映射模式時;或,所述第一數據傳輸模式為映射模式,所述第二數據傳輸模式為復制模式;
所述計算所述操作數據分別在第一數據傳輸模式和第二數據傳輸模式下的執行消耗時間包括:
根據所述操作數據的總數據量以及數據傳輸速率,計算復制模式下所述操作數據的數據傳輸時間;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司;中國科學院計算技術研究所,未經華為技術有限公司;中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310404125.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于提供自定義虛擬裝置的方法和設備
- 下一篇:一種信息處理的方法及電子設備





