Основные понятия
本文提出了一種新的動態同時多執行緒架構(DSMT),能夠有效地從單一程序中提取多個執行緒並同時執行。DSMT利用預測控制流和推測性執行來動態生成執行緒,並使用簡單的機制來跟蹤寄存器和內存中的執行緒間依賴關係。
Аннотация
本文提出了一種新的動態同時多執行緒架構(DSMT)。DSMT能夠從單一程序中動態提取和執行多個執行緒,以提高指令級並行性(ILP)和執行緒級並行性(TLP)。
DSMT的主要特點包括:
- 利用預測控制流和推測性執行來動態生成執行緒。
- 使用簡單的機制跟蹤寄存器和內存中的執行緒間依賴關係,同步執行緒,並從錯誤推測中恢復。
- 採用一種新的貪婪策略,選擇那些過去執行效率最高的代碼段。
作者開發了一個新的週期精確、基於執行的模擬器DSMTSim來評估DSMT的性能。
模擬結果顯示,DSMT對於只有單一程序可用的情況下,仍然有很好的性能提升潛力,平均可達100%的加速比。但對於非數值型應用程序,由於缺乏足夠的TLP和ILP,以及推測執行中的高錯誤率,DSMT的性能提升有限。因此,如何最大化DSMT能夠利用的TLP,同時降低推測錯誤的頻率,是一個重要的挑戰。
Статистика
在Livermore Kernels中,DSMT平均可獲得34%、84%和100%的加速比,分別使用2、4和8個上下文。
在SPEC95基準測試中,DSMT平均可獲得7%、16.5%和26%的加速比,分別使用2、4和8個上下文。SPEC95浮點基準測試的加速比平均為32.5%(8個上下文)。
Цитаты
"DSMT 能夠有效地從單一程序中提取多個執行緒並同時執行。"
"DSMT 利用預測控制流和推測性執行來動態生成執行緒,並使用簡單的機制來跟蹤寄存器和內存中的執行緒間依賴關係。"
"DSMT 採用一種新的貪婪策略,選擇那些過去執行效率最高的代碼段。"