[發明專利]GPU發散柵欄有效
| 申請號: | 201480052983.1 | 申請日: | 2014-09-10 |
| 公開(公告)號: | CN105579967B | 公開(公告)日: | 2019-09-03 |
| 發明(設計)人: | 梅春惠;阿列克謝·弗拉狄米羅維奇·布爾德;陳林 | 申請(專利權)人: | 高通股份有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52 |
| 代理公司: | 北京律盟知識產權代理有限責任公司 11287 | 代理人: | 宋獻濤 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | gpu 發散 柵欄 | ||
一種裝置包含存儲器和至少一個可編程處理器,所述至少一個可編程處理器經配置以為多個線程束中的每一線程束確定對于每一線程束的對應線程布爾表達式是否為真;暫停執行對于其所述表達式為真的具有對應線程的每一線程束;確定對于其所述表達式為真的所述多個線程束中的每一者的活動線程的數目;基于所述多個線程束中的每一者的活動線程的所述數目將對于其所述表達式為真的所述多個線程束排序;將所述多個線程束的第一線程束的活動線程的線程數據與所述多個線程束的第二線程束的非活動線程的線程數據調換;以及恢復執行對于其所述表達式為真的所述多個線程束中的所述至少一者。
技術領域
本發明涉及圖形處理,且更確切地說,涉及用于管理執行圖形處理單元(GPU)上的線程的技術。
背景技術
最近,已存在一種朝向所謂的通用GPU(GPGPU)的轉變。不同于執行圖形渲染的傳統GPU,GPGPU可經配置以執行通常被稱作“核心”的通用任務或程序。一些類型的任務可更好地適合于特定類型的處理器,例如中央處理單元(CPU)或GPU。CPU可更好地適合于具有更多分支、跳轉和條件性邏輯的任務,而GPU可適合于高度平行任務及/或具有多個浮點計算的任務。由于多個GPU具有SIMD硬件架構,因此GPU還可包含執行SIMD(單指令多數據)指令的能力。當GPU執行SIMD指令時,GPU可對多個數據值執行由指令指示的同一操作。通常,GPU具有多個執行單元,所述多個執行單元能夠并行執行由SIMD指令指示的操作。
發明內容
本發明的技術提供用于降低執行于圖形處理單元(GPU)上的線程當中的發散的技術。GPU可包括支持被稱作“發散柵欄”指令的指令。發散柵欄指令嘗試將來自多個線程束的發散線程分組到新線程束中,使得線程執行同一指令,進而改善GPU性能。
在一個實例中,本發明描述一種方法,所述方法包括:為多個線程束中的每一線程束確定對于每一線程束的對應線程布爾表達式是否為真;暫停執行具有對于其表達式為真的對應線程的每一線程束;確定對于其表達式為真的多個線程束中的每一者的活動線程的數目;基于多個線程束中的每一者的活動線程的數目將對于其表達式為真的多個線程束排序;將多個線程束的第一線程束的活動線程的線程數據與多個線程束的第二線程束的非活動線程的線程數據調換;以及恢復執行對于其表達式為真的多個線程束中的至少一者。
在另一實例中,本發明描述一種包含存儲器和至少一個可編程處理器的裝置,所述至少一個可編程處理器經配置以:為多個線程束中的每一線程束確定對于每一線程束的對應線程布爾表達式是否為真;暫停執行具有對于其表達式為真的對應線程的每一線程束;確定對于其表達式為真的多個線程束中的每一者的活動線程的數目;基于多個線程束中的每一者中的活動線程的數目將對于其表達式為真的多個線程束排序;將多個線程束的第一線程束的活動線程的線程數據與多個線程束的第二線程束的非活動線程的線程數據調換;以及恢復執行對于其表達式為真的多個線程束中的至少一者。
在另一實例中,本發明描述一種設備,所述設備包含:用于為多個線程束中的每一線程束確定對于每一線程束的對應線程布爾表達式是否為真的裝置;用于暫停執行具有對于其表達式為真的對應線程的每一線程束的裝置;用于確定對于其表達式為真的多個線程束中的每一者的活動線程的數目的裝置;用于基于多個線程束中的每一者中的活動線程的數目將對于其表達式為真的多個線程束排序的裝置;用于將多個線程束的第一線程束的活動線程的線程數據與多個線程束的第二線程束的非活動線程的線程數據調換的裝置;用于恢復執行對于其表達式為真的多個線程束中的至少一者的裝置。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高通股份有限公司,未經高通股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201480052983.1/2.html,轉載請聲明來源鉆瓜專利網。





