處理器執行流水線優化之多Warp切換

2022-10-10 18:36:09 字數 945 閱讀 2621

處理器的執行流水線通常分為5個階段,分別為:取指、解碼、訪存、執行和寫回。這裡的訪存指的是訪問暫存器。

假設每個階段只占用乙個時鐘週期,那麼這個5級流水線的處理器每個時鐘週期可以執行一條指令。如下圖,

如果前一條指令的目的暫存器是當前指令的源暫存器,如:

圖中,指令0的執行結果在寫回的同時,連同指令1的其他暫存器資料一同給到指令1的執行階段,而指令1不需要再去暫存器檔案中讀取指令0的目的暫存器所指向的資料。

我們再看另外一種情況:當執行不能夠乙個時鐘週期執行完成,而需要三個時鐘週期。如下圖,

此時,如果仍然是每個時鐘週期取一條新的指令來執行,那麼資料前送將無法實現。

為了讓資料前送仍然可行,一種做法是每三個時鐘週期取一條指令。如下圖,

但這時流水線的執行效率降低。

為了提高處理器的執行效率,我們需要想辦法填充那些空閒的時鐘週期。在simt處理器中,可以讓其他warp的指令來填充那些空閒的時鐘週期,以提公升處理器的執行效率。如下圖,

一文讀懂處理器流水線

本文將討論處理器的乙個重要的基礎知識 流水線 熟悉計算機體系結構的讀者一定知道,言及處理器微架構,幾乎必談其流水線。處理器的流水線結構是處理器微架構最基本的乙個要素,猶如汽車底盤對於汽車一般具有基石性的作用,它承載並決定了處理器其他微架構的細節。本文將簡要介紹處理器的一些常見流水線結構,讓您真正讀懂...

Jenkins流水線執行失敗

本人用jenkins ansible搭建了乙個流水線發包流程,結果發現一直卡在pipeline中的某一步發布不成功。1 開啟jenkins控制台檢視日誌 發現一直卡在了 task gathering facts 這一步 2 查詢資料得知這是ansible用setup模組預設自動執行的乙個task,作...

流水線和復合估算器

變換器通常與分類器,回歸器或其他估計器組合以構建復合估計器。最常見的工具是 管道。管道通常與featureunion結合使用 後者將變換器的輸出連線成復合特徵空間。transformedtargetregressor處理轉換目標 即對數轉換y 相反,pipelines只轉換觀察到的資料 x 方便和封...