[發(fā)明專利]用于轉(zhuǎn)換多線程程序代碼的設(shè)備和方法有效
| 申請?zhí)枺?/td> | 201410184147.0 | 申請日: | 2014-05-04 |
| 公開(公告)號: | CN104133668B | 公開(公告)日: | 2019-05-03 |
| 發(fā)明(設(shè)計(jì))人: | 金圣建;劉東勛;李振錫;黃錫重 | 申請(專利權(quán))人: | 三星電子株式會社 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京銘碩知識產(chǎn)權(quán)代理有限公司 11286 | 代理人: | 蘇銀虹;韓明星 |
| 地址: | 韓國京畿*** | 國省代碼: | 韓國;KR |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 轉(zhuǎn)換 多線程 程序代碼 設(shè)備 方法 | ||
提供了一種用于轉(zhuǎn)換多線程程序代碼的設(shè)備和方法。所述方法包括:根據(jù)同步點(diǎn)將多線程程序代碼劃分為多個語句;通過基于在所述多個語句中包括的指令的數(shù)量合并一個或更多個相鄰語句來產(chǎn)生至少一個循環(huán)組;擴(kuò)展或重命名所述多個語句中的每個語句中的變量,使得在所述至少一個循環(huán)組中包括的每個語句針對不同工作組的工作項(xiàng)被執(zhí)行;用工作項(xiàng)合并循環(huán)分別封閉產(chǎn)生的所述至少一個循環(huán)組中的每一個循環(huán)組。
本申請要求于2013年5月3日提交到韓國知識產(chǎn)權(quán)局的第10-2013-0050251號韓國專利申請的優(yōu)先權(quán),該申請整個公開通過引用全部合并于此。
技術(shù)領(lǐng)域
與示例性實(shí)施例一致的設(shè)備和方法涉及對程序進(jìn)行編譯,更具體地,涉及轉(zhuǎn)換多線程程度代碼。
背景技術(shù)
多核或眾核技術(shù)已有了顯著的發(fā)展。另外,在高性能計(jì)算領(lǐng)域中,用于執(zhí)行數(shù)據(jù)并行程序的異構(gòu)系統(tǒng)現(xiàn)在正引起注意。在這種情況下,開放計(jì)算語言(OpenCL)被提議以滿足要求。OpenCL是用于在諸如中央處理單元(CPU)、圖形處理單元(GPU)、數(shù)字信號處理器(DSP)和其它處理器的異構(gòu)處理平臺上進(jìn)行并行編程的標(biāo)準(zhǔn)。OpenCL允許在各種平臺上使用同一程序源碼,以便給予軟件開發(fā)者可移植性,并且使他們能夠容易地使用平臺的處理能力。
發(fā)明內(nèi)容
一個或更多個示例性實(shí)施例的各方面提供了一種用于轉(zhuǎn)換多線程程序代碼的設(shè)備和方法。
根據(jù)示例性實(shí)施例的一方面,提供了一種用于轉(zhuǎn)換多線程程序代碼的方法,所述方法包括:根據(jù)同步點(diǎn)將多線程程序代碼劃分為多個語句;通過基于在所述多個語句中包括的指令的數(shù)量合并一個或更多個相鄰語句來產(chǎn)生至少一個循環(huán)組;擴(kuò)展或重命名所述多個語句中的每個語句中的變量,使得在產(chǎn)生的所述至少一個循環(huán)組中包括的每個語句針對不同工作組的工作項(xiàng)被執(zhí)行;用工作項(xiàng)合并(coalesce)循環(huán)分別封閉產(chǎn)生的所述至少一個循環(huán)組中的每一個循環(huán)組。
多線程程序代碼可以是OpenCL內(nèi)核代碼或統(tǒng)一計(jì)算裝置架構(gòu)(CUDA)內(nèi)核代碼。
同步點(diǎn)可包括:多線程程序代碼的入口點(diǎn)、屏障函數(shù)和控制結(jié)構(gòu)的入口點(diǎn)中的至少一個。
所述方法還可包括:基于由多線程程序代碼所使用的存儲器的容量來計(jì)算在單個循環(huán)組內(nèi)可交替執(zhí)行的工作組的數(shù)量,其中,產(chǎn)生所述至少一個循環(huán)組的步驟可包括:通過合并所述一個或更多個相鄰語句來產(chǎn)生所述至少一個循環(huán)組,使得產(chǎn)生的所述至少一個循環(huán)組中的每一個循環(huán)組中的指令的數(shù)量接近或等于另一個循環(huán)組,且使得產(chǎn)生的所述至少一個循環(huán)組中的每一個循環(huán)組的語句的數(shù)量不超過計(jì)算出的工作組的數(shù)量。
所述方法還可包括:以預(yù)定方案對轉(zhuǎn)換后的代碼進(jìn)行優(yōu)化。
所述方法還可包括:添加在每個語句中設(shè)置變量以指示存儲了將要執(zhí)行的工作組的存儲器偏移量的變量輪換代碼。
所述方法還可包括:轉(zhuǎn)換語句的代碼,使得所述語句僅僅針對有效的工作組被執(zhí)行。
轉(zhuǎn)換語句的代碼的步驟可包括:使用條件語句或論斷(predication)來轉(zhuǎn)換語句的代碼。
所述方法還可包括:用工作組交錯循環(huán)來封閉工作項(xiàng)合并循環(huán)和變量輪換代碼,使得每個語句針對所有工作組被執(zhí)行。
根據(jù)另一示例性實(shí)施例的一方面,提供了一種用于轉(zhuǎn)換多線程程序代碼的設(shè)備,所述設(shè)備包括:代碼劃分器,被配置為根據(jù)同步點(diǎn)將多線程程序代碼劃分為多個語句;循環(huán)組產(chǎn)生器,被配置為通過基于在所述多個語句中包括的指令的數(shù)量合并一個或更多個相鄰語句來產(chǎn)生至少一個循環(huán)組;變量擴(kuò)展器(expander)/重命名器,被配置為擴(kuò)展或重命名所述多個語句中的每個語句中的變量,使得同一循環(huán)組中的語句針對不同的工作組的工作項(xiàng)被序列地執(zhí)行;工作項(xiàng)合并循環(huán)添加器,被配置為用工作項(xiàng)合并循環(huán)分別封閉產(chǎn)生的所述至少一個循環(huán)組中的每一個循環(huán)組。
多線程程序代碼可以是OpenCL內(nèi)核代碼或CUDA內(nèi)核代碼。
該專利技術(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/201410184147.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 圖像轉(zhuǎn)換設(shè)備、圖像轉(zhuǎn)換電路及圖像轉(zhuǎn)換方法
- 數(shù)模轉(zhuǎn)換電路及轉(zhuǎn)換方法
- 轉(zhuǎn)換設(shè)備和轉(zhuǎn)換方法
- 占空比轉(zhuǎn)換電路及轉(zhuǎn)換方法
- 通信轉(zhuǎn)換方法、轉(zhuǎn)換裝置及轉(zhuǎn)換系統(tǒng)
- 模數(shù)轉(zhuǎn)換和模數(shù)轉(zhuǎn)換方法
- 轉(zhuǎn)換模塊以及轉(zhuǎn)換電路
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件和熱電轉(zhuǎn)換模塊
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件及熱電轉(zhuǎn)換模塊
- 熱電轉(zhuǎn)換材料、熱電轉(zhuǎn)換元件及熱電轉(zhuǎn)換模塊
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實(shí)現(xiàn)方法
- 基于計(jì)算機(jī)多線程多核顯微鏡細(xì)胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 讀數(shù)方法、電子裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 一種基于云平臺多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲介質(zhì)





