最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【讀論文】同步多線程:最大化片上并行度

2023-07-31 20:15 作者:RhodiumFluoride  | 我要投稿

Simultaneous Multithreading: Maximizing On-Chip Parallelism

????????同步多線程(simultaneous multithreading, SMT)(原文都是用SM作為縮寫,但是網(wǎng)上公認的縮寫似乎是SMT?)是一種在一個時鐘周期內(nèi)允許多個獨立線程同時向一個超標量處理器的多個功能單元發(fā)射指令的技術(shù)(e.g. Intel超線程技術(shù),不過這是后話了,本文發(fā)表于1995年)。文章提出了多種同步多線程模型,并與超標量、細粒度多線程處理器和多發(fā)射多核處理器對比,在充分利用處理器資源上展現(xiàn)出了很強的潛力。此外,同步多線程也對處理器設(shè)計增加了大量復雜度。

Introduction

????????前面已經(jīng)提到SMT允許一個周期內(nèi)不同線程獨立向多個功能單元發(fā)射指令,而這種線程與功能單元的綁定關(guān)系是完全動態(tài)的。SMT的目標是在面臨高內(nèi)存延遲和有限的線程并行性下大幅提高處理器利用率。因此SM結(jié)合了超標量處理器的多發(fā)射特性以及多線程體系結(jié)構(gòu)延遲隱藏的能力。

????????現(xiàn)有的微處理器應(yīng)用了許多增加并行性和資源利用率的技術(shù),但都存在較大的局限性。如超標量處理器(e.g. DEC Alpha 21164, MIPS R10000)一個線程在一個周期內(nèi)最多發(fā)射4個指令。(為什么不多發(fā)射幾個指令以提高性能呢,是因為不喜歡嗎?)受限于線程的指令間依賴和高指令延遲,難以繼續(xù)提高指令發(fā)射數(shù)。這些限制可以被定義為圖1所示的發(fā)射槽的水平浪費和垂直浪費,前者指一個時鐘周期內(nèi)的指令發(fā)射槽未滿,后者指時鐘周期間的阻塞。另一方面,多線程體系結(jié)構(gòu)(e.g. HEP, Tera)支持線程的快速上下文切換,能夠隱藏訪存延遲和功能單元延遲,緩解了垂直浪費。但任意一個周期內(nèi)只能由一個線程發(fā)射指令,且不能充分利用處理器發(fā)射寬度的提高。相比之下,SMT可以很好地解決水平浪費和垂直浪費問題。實驗結(jié)果顯示,SMT在一定的處理器發(fā)射帶寬下,能夠顯著提高指令吞吐量。

空指令發(fā)射槽被定義為垂直浪費和水平浪費

Methodology

????????由于尚沒有處理器支持SMT,文章在模擬環(huán)境中定義了一個SMT體系結(jié)構(gòu)的實現(xiàn),這個實現(xiàn)基于下一代的超標量處理器。

Simulation Environment

????????模擬環(huán)境使用了指令集層的仿真,并支持部分解碼指令的緩存以加速仿真。模擬器建模了流水線、內(nèi)存層級(包括命中率和帶寬)、TLB和帶分支預測的超標量處理器。模擬器的參數(shù)基于Alpha AXP 21164,并根據(jù)多線程執(zhí)行的需要進行了一些修改,如圖所示。模擬器設(shè)置了10個功能單元(4個整數(shù)、2個浮點、3個讀寫、1個分支)和最高每個周期8發(fā)射,假定所有功能單元都是完全流水線的。此外,模擬器還假定L1和L2緩存稍大,由于多線程會增大緩存的需求,并且預計當支持SMT的處理器出現(xiàn)時,緩存容量也會隨之發(fā)展(簡稱貸款())。

模擬指令延遲
緩存層級

????????模擬器支持有限的動態(tài)執(zhí)行:無依賴的指令會被順序發(fā)射到每個線程8指令的調(diào)度窗口,并被亂序調(diào)度至功能單元,而由于功能單元不可用未被調(diào)度的指令在下一個時鐘周期中有優(yōu)先權(quán)。發(fā)射模型使用了Multiflow追蹤調(diào)度編譯器的靜態(tài)調(diào)度技術(shù),雖然不是完全的動態(tài)執(zhí)行,但也因此顯著降低了設(shè)計復雜度(e.g. 無寄存器重命名除非需要精確中斷,使用了每個寄存器1位的簡單計分板算法)。模擬器使用了具有2048個直接映射條目的2位分支預測歷史表,12個條目的返回棧預測返回地址,32個條目的跳轉(zhuǎn)表模擬Alpha處理器的跳轉(zhuǎn)地址計算。模擬器最高支持8個硬件上下文,支持多種多線程模型,包括嚴格優(yōu)先級調(diào)度策略和公平策略。其中,不同調(diào)度策略的指令吞吐量幾乎相同,只是線程間的相對速度不同。

Workload

????????工作負載使用了SPEC92基準測試套件。為測量原始指令吞吐量,令每個線程運行一個單線程應(yīng)用,排除同步延遲和低效并行實現(xiàn)的影響。單線程實驗時使用default數(shù)據(jù)集。多線程實驗時改變SPEC應(yīng)用運行優(yōu)先級,重復實驗。

Superscalar Bottlenecks: Where Have All the Cycles Gone?

????????為什么要提出SMT呢?動機還是在于當時流行的超標量處理器有太多局限性。作者使用只有一個硬件上下文的基準超標量處理器測試SPEC套件中指令發(fā)射槽的利用率,分析導致空發(fā)射槽的原因,并提出可能隱藏或減少延遲的技術(shù)。

部分SPEC程序在八發(fā)射超標量處理器的利用率
針對指令發(fā)射槽浪費的解決方案

????????如圖所示,超標量處理器平均利用率只有19%。浪費發(fā)射帶寬的最大因素是占37%的短浮點延遲(即由于浮點運算導致的指令發(fā)射延遲),其余因素占比也十分可觀,并且很多因素可能存在重疊。即便存儲延遲完全消除,也無法達到40%的利用率,必須要依靠通用的延遲隱藏方案,例如多線程。如果按發(fā)射槽的水平和垂直浪費分類,大約61%為垂直浪費,其余為水平浪費。傳統(tǒng)的多線程技術(shù)可以部分消除前者,但由于單線程難以填滿每個時鐘周期的所有發(fā)射槽,反而會增加后者(為啥會增加水平浪費呢orz);而SMT有潛力同時優(yōu)化。

Simultaneous Multithreading

The Machine Models

????????文章介紹了多種多線程超標量處理器的模型用于性能測試。細粒度多線程(Fine-Grain Multithreading )每個周期只有一個線程可以發(fā)射指令;同步多線程全發(fā)射(SM:Full Simultaneous Issue )中所有的8個線程同時競爭指令發(fā)射槽,硬件復雜度最高,但展示了SM的性能潛力;同步多線程單發(fā)射(SM:Single Issue)、雙發(fā)射(SM:Dual Issue)和四發(fā)射(SM:Four Issue)則限制了每個周期每個線程發(fā)射的最大指令數(shù);同步多線程限制連接(SM:Limited Connection )令每個硬件上下文連接到每種各一個功能單元,但功能單元對線程仍然是共享的。下表總結(jié)了不同設(shè)計對硬件實現(xiàn)復雜度的影響??傮w來說,指令間依賴檢查、寄存器端口、前遞邏輯的復雜度主要受發(fā)射帶寬和功能單元數(shù)量的影響,而非支持的線程數(shù)。

不同體系結(jié)構(gòu)模型對硬件設(shè)計復雜度的影響

The Performance of Simultaneous Multithreading

線程數(shù)對處理器IPC的影響

????????上圖顯示了對于不同多線程模型,執(zhí)行線程數(shù)對平均每時鐘周期發(fā)射的指令數(shù)(IPC)的影響。細粒度多線程體系結(jié)構(gòu)只能對IPC提供最高2.1的加速比,事實上,在4個線程的情況下,已經(jīng)將垂直浪費降至了3%,無法隨線程數(shù)增加而繼續(xù)獲益。相比之下,SMT的幾種多線程模型可以消除水平浪費,針對IPC的加速比最高為4.2,達到6.3IPC。此外,SMT模型的優(yōu)秀性能使得硬件上下文數(shù)與硬件復雜度的權(quán)衡成為可能:4個硬件上下文的同步多線程雙發(fā)射與6個硬件上下文的單發(fā)射有著相當?shù)男阅堋?/p>

????????不過,隨著處理器利用率的提高SMT線程間的共享資源搶占愈發(fā)顯著,包括發(fā)射槽、功能單元、緩存、TLB等。8個線程同時運行使得優(yōu)先級最低的線程只能以優(yōu)先級最高的線程55%的速度運行,而后者相比單線程運行時的速度也降低了35%。另外,隨著多線程局部性的下降,緩存壓力也顯著增大,由緩存不命中和TLB不命中導致的時鐘周期浪費顯著提高。需要指出的是,經(jīng)過實驗,緩存大小并不會影響IPC在不同線程下的加速比。

Cache Design for a Simultaneous Multithreaded Processor

????????之前的實驗顯示SMT的共享緩存帶來了性能下降,因此進行進一步實驗,使用8線程4發(fā)射模型聚焦于L1 緩存的不同組織方式:線程私有和共享(假定L2和L3緩存均為線程共享)。

????????如圖所示展示了實驗結(jié)果,其中圖例的含義為[L1指令緩存容量(KB)][私有或共享].[L1數(shù)據(jù)緩存容量][私有或共享]。實驗結(jié)果顯示,共享緩存在線程較少時最優(yōu),而線程私有的緩存在線程較多時更優(yōu)。值得注意的是,對于數(shù)據(jù)緩存,共享的總是優(yōu)于線程私有的,而線程私有的指令緩存在8個線程時優(yōu)于共享的。這是由于共享的數(shù)據(jù)緩存支持線程同時對多個內(nèi)存塊讀寫,而指令緩存只存在單純的訪問沖突。綜上所述,64s.64s和64p.64s成為了L1緩存的最佳組織方式。前者在線程較少時性能優(yōu)秀,而線程較多時也與其它方案相差不大,此外共享緩存不需要額外的硬件以維護緩存一致性;而后者在所有線程情況下都保持著次優(yōu)及以上的表現(xiàn)。

L1緩存配置對IPC的影響

Simultaneous Multithreading versus Single-Chip Multiprocessing

????????隨著芯片密度不斷提高,多核處理器(MP)已經(jīng)成為了另一種提高并行能力的重要方式。文章也比較了同步多線程和小規(guī)模單芯片的多核處理器,二者均有著多個寄存器堆和功能單元,主要區(qū)別在于不同的調(diào)度和資源劃分方式。鑒于SMT和MP很難控制變量,實驗控制了二者大部分配置相同,而在部分配置上更傾向于MP。不過作者也指出,SMT的設(shè)置可能存在兩方面的樂觀假設(shè):指令調(diào)度時間和共享緩存訪問時間?;贏lpha處理器的配置使得模擬器的指令調(diào)度和發(fā)射是完全流水線的,而SMT的復雜調(diào)度可能使其額外消耗一個流水線階段,導致指令預測失敗。但實驗證明,即便如此對IPC的影響也不會超過1%。相比之下,共享緩存的訪問時間影響更大,由于SMT中緩存與讀寫單元均為共享的,二者的距離較MP更遠,訪問時間會增加。通過設(shè)置SMT中線程私有緩存與讀寫單元,可以消除這個影響;實驗顯示,即便在這種情況下,SMT也能達到比MP更優(yōu)的性能。

SMT與MP的對比試驗

????????實驗A、B、C測試了SMT和MP在擁有充足的功能單元時的指令吞吐量;實驗D與實驗A相同,但減少了SMT的功能單元數(shù)量;實驗E、F中MP有著更高的總發(fā)射帶寬;實驗G比較累SMT和MP在受限的功能單元數(shù)量下的吞吐量。實驗結(jié)果表明SMT在更小的發(fā)射帶寬或更少的功能單元的情況下,指令吞吐量均優(yōu)于MP。此外,SMT的優(yōu)勢還在于:1)線程數(shù)較少時更高的利用率(MP會有核心空閑);2)硬件設(shè)計的細粒度和靈活性,MP必須為所有核心同時增加部件才能提高性能(大小核不好搞?。。鳶MT增加的部件可以被所有線程共享。

參考文獻

[1] TULLSEN D M, EGGERS S J, LEVY H M. Simultaneous Multithreading: Maximizing On-Chip Parallelism[J].


現(xiàn)在SMT(或者叫Hyper-Threading)已經(jīng)很普遍了,并且和文章提到的對手MP結(jié)合在一起,不過一般是1個物理核心對應(yīng)2個邏輯核心,甚至有的處理器不支持SMT。這是不是說明SMT其實并沒有文章里吹的那么好,不太懂。雖然不是我的專業(yè)方向,不過這種文章讀著還挺有意思的,以后有時間看看后續(xù)工作(什么先看結(jié)局再補劇情)。

【讀論文】同步多線程:最大化片上并行度的評論 (共 條)

分享到微博請遵守國家法律
通山县| 望都县| 扶沟县| 铁岭县| 苏尼特左旗| 金湖县| 德化县| 巩留县| 保定市| 武威市| 高州市| 唐海县| 同心县| 治县。| 全南县| 佳木斯市| 鸡东县| 通榆县| 揭阳市| 长泰县| 尚志市| 行唐县| 七台河市| 安龙县| 突泉县| 瑞丽市| 新龙县| 上饶市| 陵川县| 岱山县| 陵水| 庐江县| 金秀| 宁南县| 桐庐县| 南皮县| 荃湾区| 周口市| 广灵县| 高雄县| 济阳县|