[發明專利]一種GPGPU寄存器文件動態擴展方法有效
| 申請號: | 201810408687.0 | 申請日: | 2018-05-02 |
| 公開(公告)號: | CN108595258B | 公開(公告)日: | 2021-07-27 |
| 發明(設計)人: | 白躍彬;禹超;楊海龍;顧育豪;欒廣強;王春陽;陳慶斌 | 申請(專利權)人: | 北京航空航天大學 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50;G06F9/54 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 gpgpu 寄存器 文件 動態 擴展 方法 | ||
1.一種GPGPU寄存器文件動態擴展方法,其特征在于,包括以下步驟:
(1)當GPGPU編譯器編譯GPGPU程序代碼時,依據寄存器的權重由大到小對寄存器的聲明順序進行排序,然后對GPGPU程序的指令塊進行劃分,并對每個指令塊的活動寄存器進行分析;
(2)將指令塊活動寄存器的分析結果通過指令的形式插在每個指令塊的前面,并生成GPGPU可執行程序;
(3)在運行時,將GPGPU可執行程序發送到GPGPU上執行,GPGPU依據程序指定的參數創建一定數量的線程塊Thread Block,以下簡稱TB或CTA;
(4)CTA調度器調度各個CTA到流多處理器Streaming Multiprocessor,以下簡稱SM,上執行,此時,SM上的資源分配器會依據SM的總寄存器文件量R、SM的總共享內存量S、每個CTA需要的寄存器文件量RCTA、每個CTA需要的共享內存量SCTA以及每個CTA分配在共享內存中的寄存器比例上限τ來計算每個SM上可以同時容納的CTA數量上限CTAUpper以及下限CTALower,然后對每個CTA的資源分配方式進行決策;
(5)如果一個CTA中有寄存器被分配在片上共享內存Shared Memory,以下簡稱SHMEM,則依據一種雙路分配策略在SHMEM上為CTA分配寄存器空間,并將該CTA的資源分配信息保存在寄存器分配表中;
(6)每個分配完所需資源的CTA,其中的線程束Warp都被放到線程束池中對應的隊列中,線程束池中包含3個隊列:pending、schedulable以及prefetching;初始時,當一個CTA中有寄存器被分配在SHMEM中,就將該CTA中所有線程束放在prefetching隊列中,其余CTA中的線程束放在schedulable隊列中;
(7)在每個時鐘周期,寄存器預取器都會檢查操作數緩存中是否有足夠的空間來保存prefetching隊列的首個線程束的下一個將要執行的指令塊分配在SHMEM中的寄存器數據;如果操作數緩存具有足夠的空間,就將線程束下一個指令塊的分配在SHMEM中的寄存器數據預取到操作數緩存中,然后將線程束從prefetching隊列移動到schedulable隊列;
(8)在每個時鐘周期,線程束調度器都會從schedulable隊列中調度線程束的指令去執行;
(9)當一條指令被調度時,操作數收集器Operand Collector就會為其分配一個收集單元Collector Unit來讀取操作數;
(10)在讀取操作數過程中,收集單元將線程束物理編號WarpID和需要的寄存器索引號Reg發送到寄存器文件Register File的Bank仲裁器,以下簡稱RF,Bank仲裁器判斷所需要的寄存器分配在RF還是SHMEM中;
(11)如果判斷寄存器分配在RF中,則直接從RF中讀取寄存器數據;否則,從操作數緩存中讀取對應的寄存器數據;
(12)當一條指令對應的所有操作數都讀取到收集單元中,就將這個發送到SIMD單元執行;
(13)當一個線程束的一個指令塊執行完成后,就將該線程束從schedulable隊列移動到prefetching隊列;
(14)重復步驟(4)至(13)直至GPGPU程序執行完成。
2.根據權利要求1所述的GPGPU寄存器文件動態擴展方法,其特征在于:所述步驟(1)中,依據寄存器的權重由大到小對寄存器的聲明順序進行排序,其中每個寄存器的權重是編譯器通過計算每個寄存器的引用次數來估算寄存器的權重大小。
3.根據權利要求1所述的GPGPU寄存器文件動態擴展方法,其特征在于:所述步驟(1)中,對GPGPU程序的指令塊進行劃分,具體滿足以下原則:
(1)當遇到內存柵欄或線程同步指令時,結束一個指令塊;
(2)當遇到高延遲指令時,結束一個指令塊;
(3)每一個指令塊包括至少MinReg個活動寄存器,MinReg的值通過編譯器設置;
(4)每一個指令塊最多包括C/τ個活動寄存器,其中C為操作數緩存容量;
(5)每一個指令塊不能跨越一個基本指令塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京航空航天大學,未經北京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810408687.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種云任務調度方法
- 下一篇:一種基于全局管理的內存池管理方法





