[發明專利]用于轉換多線程程序代碼的設備和方法有效
| 申請號: | 201410184147.0 | 申請日: | 2014-05-04 |
| 公開(公告)號: | CN104133668B | 公開(公告)日: | 2019-05-03 |
| 發明(設計)人: | 金圣建;劉東勛;李振錫;黃錫重 | 申請(專利權)人: | 三星電子株式會社 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京銘碩知識產權代理有限公司 11286 | 代理人: | 蘇銀虹;韓明星 |
| 地址: | 韓國京畿*** | 國省代碼: | 韓國;KR |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 轉換 多線程 程序代碼 設備 方法 | ||
1.一種用于轉換多線程程序代碼的方法,所述方法包括:
根據同步點將多線程程序代碼劃分為多個語句;
通過基于在所述多個語句中各自包括的指令的數量合并一個或更多個相鄰語句來產生至少一個循環組,使得產生的所述至少一個循環組中的每一個循環組中的指令的數量接近或等于另一個循環組;
擴展或重命名所述多個語句中的變量,使得在產生的所述至少一個循環組中包括的每個語句針對不同工作組的工作項被執行;
用工作項合并循環分別封閉產生的所述至少一個循環組中的每一個循環組,
其中,所述方法還包括:基于由多線程程序代碼所使用的存儲器的容量來計算產生的所述至少一個循環組的可執行的工作組的數量。
2.如權利要求1所述的方法,其中,多線程程序代碼是開放計算語言OpenCL內核代碼或統一計算裝置架構CUDA內核代碼。
3.如權利要求1所述的方法,其中,同步點包括:多線程程序代碼的入口點、屏障函數和控制結構的入口點中的至少一個。
4.如權利要求1所述的方法,
其中,產生所述至少一個循環組的步驟包括:通過基于在所述多個語句中各自包括的指令的數量和根據計算出的可執行的工作組的數量合并所述一個或更多個相鄰語句來產生所述至少一個循環組,使得產生的所述至少一個循環組中的每一個循環組中的指令的數量接近或等于另一個循環組,且使得產生的所述至少一個循環組中的每一個循環組的語句的數量不超過計算出的工作組的數量。
5.如權利要求1所述的方法,還包括:
以預定方案對轉換后的代碼進行優化。
6.如權利要求5所述的方法,其中,優化的步驟包括:通過采用循環優化和標量優化中的至少一種對轉換后的代碼進行優化。
7.如權利要求1所述的方法,還包括:
添加用于在所述多個語句中設置變量以指示存儲了將要執行的工作組的存儲器偏移量的變量輪換代碼。
8.如權利要求1所述的方法,還包括:
轉換所述多個語句之中的語句的代碼,使得所述語句僅僅針對有效的工作組被執行。
9.如權利要求8所述的方法,其中,轉換語句的代碼的步驟包括:使用條件語句或論斷來轉換語句的代碼。
10.如權利要求7所述的方法,還包括:
用工作組交錯循環來封閉工作項合并循環和變量輪換代碼,使得所述多個語句中的每個語句針對所有工作組被執行。
11.如權利要求1所述的方法,其中,劃分的步驟包括:當多線程程序代碼包括屏障函數時,將多線程程序代碼劃分為屏障函數之前的語句和屏障函數之后的語句。
12.如權利要求1所述的方法,其中,劃分的步驟包括:當多線程程序代碼包括在條件語句中包含的屏障函數時,將多線程程序代碼劃分為條件語句之前的語句和條件語句之后的語句,并將條件語句的內部劃分為屏障函數之前的語句和屏障函數之后的語句。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于三星電子株式會社,未經三星電子株式會社許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410184147.0/1.html,轉載請聲明來源鉆瓜專利網。





