什麼是暫存器溢出(Spill)
在暫存器配置中,當同時使用的值比暫存器數量多時,把部分值退避到記憶體(堆疊)。退避與讀回的指令增加,因此會變慢。
日文名稱: スピル
「暫存器溢出(Spill)」出現在2領域的3道練習題中(編譯器, GPU程式設計等)。
這個名詞所屬的領域: 編譯器
在暫存器配置中,當同時使用的值比暫存器數量多時,把部分值退避到記憶體(堆疊)。退避與讀回的指令增加,因此會變慢。
日文名稱: スピル
「暫存器溢出(Spill)」出現在2領域的3道練習題中(編譯器, GPU程式設計等)。
這個名詞所屬的領域: 編譯器
正確答案:A. 將值退避到堆疊與讀回的指令增加,容易變慢
溢出是指當同時存活的值比暫存器數量還多時,將部分的值放到記憶體(堆疊)中。每次使用該值都需要讀取指令,每次改寫都需要寫入指令,因此指令增加,並因記憶體存取而容易變慢。所以編譯器會把迴圈內等經常使用的值留在暫存器中,挑選不常使用的值來溢出。暫存器的數量由CPU決定而不會增加,這也與刪除不需要的值是不同的事。
無法著色時,則把部分的值退避到記憶體(溢出,spill)。
在編譯器的暫存器配置中,使用對干涉圖著色(染色)的方法時,圖中的節點與邊所代表的事物,下列組合何者正確?不足的部分會被擠到記憶體(暫存器溢出,spill),有時也會變慢。
在GPU核心函式中,若每個執行緒的暫存器使用量過多,下列何者是可能發生的情況?暫存器配置 GPU 中間表示法(IR) 共同子運算式消除 向量化 行內展開 抽象語法樹(AST) 指令排程 迴圈展開 基本區塊