国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多GPU系統(tǒng)虛實地址轉(zhuǎn)換架構(gòu)研究*

2021-03-01 03:33魏金暉魯建壯
計算機工程與科學(xué) 2021年2期
關(guān)鍵詞:頁表集中式內(nèi)存

魏金暉,李 晨,魯建壯

(國防科技大學(xué)計算機學(xué)院,湖南 長沙 410073)

1 引言

由于圖形處理器GPU(Graphics Processing Unit)的大規(guī)模數(shù)據(jù)并行性,使得其廣泛應(yīng)用于信號處理[1]、圖像分析[2]、大規(guī)模仿真[3,4]和機器學(xué)習(xí)[5,6]。近年來,隨著大數(shù)據(jù)的發(fā)展,GPU應(yīng)用的數(shù)據(jù)集規(guī)模急速增加,這對GPU的處理能力提出了挑戰(zhàn)。由于摩爾定律即將達到極限[7],通過在單個芯片中集成更多的計算資源來提升單GPU的性能變得越發(fā)困難;而多GPU系統(tǒng)通過提升GPU處理器級的并行性,成為應(yīng)對該挑戰(zhàn)的一種方案[8-11]。

近幾年GPU制造商對內(nèi)存虛擬化(Memory Virtualization)的支持進一步簡化了編程,提高了資源利用率。內(nèi)存虛擬化需要地址轉(zhuǎn)換(Address Translation)的支持。地址轉(zhuǎn)換指的是把虛擬地址轉(zhuǎn)換成物理地址的過程。為了提高地址轉(zhuǎn)換的效率,減小轉(zhuǎn)換延遲,研究者提出了快表TLB(Translation Lookaside Buffer)[12,13]。普遍認為,當(dāng)前GPU的地址轉(zhuǎn)換架構(gòu)是基于TLB的[12-14]。而且實驗表明GPU地址轉(zhuǎn)換的效率對系統(tǒng)的性能具有重要影響[13,14]。

當(dāng)前多GPU系統(tǒng)中有2種常見的地址轉(zhuǎn)換架構(gòu),即集中式地址轉(zhuǎn)換架構(gòu)和分布式地址轉(zhuǎn)換架構(gòu)。2種架構(gòu)的主要區(qū)別在于系統(tǒng)中各GPU是否具有本地的內(nèi)存管理單元GMMU(GPU Memory Management Unit)。例如,NVIDIA Volta架構(gòu)的GPU具有GMMU[15],因此由該GPU組成的多GPU系統(tǒng)使用分布式地址轉(zhuǎn)換架構(gòu);AMD GCN架構(gòu)的GPU沒有GMMU[16],因此由該GPU組成的多GPU系統(tǒng)使用集中式地址轉(zhuǎn)換架構(gòu)。當(dāng)前學(xué)術(shù)界研究的熱點為集中式地址轉(zhuǎn)換架構(gòu)。在該架構(gòu)中,當(dāng)GPU的L2 TLB失效后,請求被送往CPU端的輸入輸出內(nèi)存管理單元IOMMU(Input Output Memory Management Unit)進行轉(zhuǎn)換。在分布式地址轉(zhuǎn)換架構(gòu)中,當(dāng)L2 TLB失效時,請求被送往本地的GMMU進行頁表查詢,如果所需要的頁表項位于本地GPU,則該轉(zhuǎn)換過程就可以在本地完成;否則,請求被送往CPU端的IOMMU進行轉(zhuǎn)換。

本文對上述2種地址轉(zhuǎn)換架構(gòu)進行了深入分析和比較。集中式地址轉(zhuǎn)換架構(gòu)較為簡單,系統(tǒng)中所有GPU結(jié)點的頁表查詢操作均在CPU端的IOMMU完成,因此硬件開銷相對較小。分布式地址轉(zhuǎn)換架構(gòu)相對復(fù)雜(硬件開銷也更大),系統(tǒng)中每個GPU結(jié)點具有自己的GMMU,當(dāng)訪問的內(nèi)存頁位于本地內(nèi)存時,頁表查詢在本地GMMU完成;當(dāng)訪問的內(nèi)存頁位于其它結(jié)點內(nèi)存或者CPU內(nèi)存時,頁表查詢在CPU端的IOMMU完成。實驗結(jié)果表明,在L2 TLB失效后,主要訪問本地內(nèi)存頁表項的應(yīng)用,即數(shù)據(jù)集中共享數(shù)據(jù)較少的應(yīng)用,在分布式地址轉(zhuǎn)換架構(gòu)中的性能更好;若應(yīng)用在L2 TLB失效后主要訪問遠程內(nèi)存頁表項,即數(shù)據(jù)集中共享數(shù)據(jù)較多的應(yīng)用,更適用于集中式地址轉(zhuǎn)換架構(gòu)。

2 背景

2.1 多GPU系統(tǒng)

由于功耗和散熱等問題,在單一芯片上集成更多的晶體管變得越來越困難,因此提升單GPU的性能也越發(fā)困難。多GPU系統(tǒng)通過開發(fā)GPU處理器級的并行性,在處理大數(shù)據(jù)應(yīng)用方面展現(xiàn)出一定的優(yōu)勢。學(xué)術(shù)界也開展了對多GPU系統(tǒng)的研究[8-11]。近幾年,GPU制造商引入了對統(tǒng)一內(nèi)存(Unified Memory)、按需頁遷移(On-demand Page Migration)等技術(shù)的支持,這些技術(shù)簡化了GPU的編程,也提高了多GPU系統(tǒng)的可用性。然而,由于GPU之間連接(例如PCIe)的帶寬較低,延遲較高,大量的非本地(遠程)訪問成為多GPU系統(tǒng)主要的性能瓶頸[9]。

常用的GPU編程框架,如CUDA和OpenCL,都支持多GPU系統(tǒng)編程。在這2種編程框架中,所有的GPU都對編程人員可見,編程人員可以選擇將內(nèi)核程序(Kernel)映射到GPU的方式。目前有2種多GPU系統(tǒng)編程模型[17],即分立式多GPU模型和統(tǒng)一式多GPU模型,如圖1所示,其中CU表示計算單元(Compute Unit)。在分立式多GPU模型中,一個Kernel只能被分配到一個GPU上執(zhí)行,這使得針對單GPU開發(fā)的應(yīng)用不能直接在分立式多GPU系統(tǒng)中運行,編程人員需要重新編程才能利用多GPU系統(tǒng)的并行計算能力。在統(tǒng)一式多GPU模型中,分配任務(wù)以線程塊(Thread Block)為粒度,即單個Kernel的任務(wù)可以被分配到多個GPU上執(zhí)行,針對單GPU開發(fā)的應(yīng)用可以直接在統(tǒng)一式多GPU系統(tǒng)中運行,這在很大程度上減輕了編程人員的負擔(dān)。因此,統(tǒng)一式多GPU模型是目前的研究重點,本文也是針對統(tǒng)一式多GPU模型開展研究。

Figure 1 Discrete multi-GPU system and unified multi-GPU system

2.2 多GPU系統(tǒng)遠程數(shù)據(jù)訪問機制

多GPU系統(tǒng)中的遠程數(shù)據(jù)訪問機制是指當(dāng)GPU所需要的數(shù)據(jù)不在本地內(nèi)存時,使用何種方式訪問。目前,主要有3種數(shù)據(jù)訪問的機制,即緩存行直接訪問、頁遷移和首次訪問頁遷移(First-Touch Page Migration)。遠程數(shù)據(jù)訪問機制對于地址轉(zhuǎn)換架構(gòu)有著一定的影響,具體將會在本文的第3節(jié)進行分析。接下來將詳細介紹這3種機制。

2.2.1 緩存行直接訪問

緩存行直接訪問指的是當(dāng)GPU所訪問的數(shù)據(jù)不在本地內(nèi)存時,通過RDMA(Remote DMA)直接將數(shù)據(jù)從數(shù)據(jù)所在的GPU取到對應(yīng)的計算單元CU中[8,9,15],而不是通過缺頁處理機制遷移整個內(nèi)存頁。該機制的具體步驟如下所示:

(1)數(shù)據(jù)訪問請求在訪問L1 Cache之前首先進行地址轉(zhuǎn)換,如果對應(yīng)的頁表項不在本地,則地址轉(zhuǎn)換請求被送往IOMMU。

Figure 2 Centralized address translation architecture

(2)IOMMU通過地址轉(zhuǎn)換服務(wù)ATS(Address Translation Service)而不是缺頁中斷響應(yīng)來處理該請求[18],查詢頁表并返回對應(yīng)的頁表項。

(3)收到頁表項后,地址轉(zhuǎn)換過程結(jié)束。L1 Cache通過對應(yīng)的物理地址判斷數(shù)據(jù)位于哪個GPU中,并將請求重定向到RDMA部件。RDMA將請求送往遠程GPU的L2 Cache,獲取該數(shù)據(jù)并返回給L1 Cache。為了保證數(shù)據(jù)的一致性,L1 Cache直接把數(shù)據(jù)發(fā)送給對應(yīng)的CU,而不會把數(shù)據(jù)緩存到Cache Line中。

2.2.2 頁遷移

頁遷移指的是當(dāng)GPU需要的數(shù)據(jù)不在本地內(nèi)存時,會把對應(yīng)的內(nèi)存頁從源GPU遷移至本地內(nèi)存[8,15]。假設(shè)GPU2所需要的數(shù)據(jù)位于GPU1的內(nèi)存,則該機制的具體步驟如下所示:

(1)GPU2的訪存請求在訪問L1 Cache前先進行地址轉(zhuǎn)換,如果對應(yīng)的頁表項不在本地,則地址轉(zhuǎn)換請求被送往IOMMU。

(2)IOMMU啟動缺頁處理機制,通過查詢得知GPU2需要的頁表項位于GPU1,通知GPU1排空其CU流水線中正在執(zhí)行的指令,并刷新(Flush)其Cache和TLB中與該頁表項相關(guān)的內(nèi)容。

(3)頁遷移控制器PMC(Page Migration Controller)將內(nèi)存頁從GPU1遷移至GPU2。

(4)遷移完成后,GPU1再次執(zhí)行被刷新的指令。

(5)IOMMU更新頁表信息,并返回對應(yīng)頁表項,GPU2根據(jù)返回的頁表項信息進行數(shù)據(jù)訪問。

2.2.3 首次訪問頁遷移

首次訪問頁遷移是頁遷移的特殊情況,它指的是CPU把內(nèi)存頁遷移至第1次訪問它的GPU中,具體步驟與頁遷移基本相同。該機制通常用于數(shù)據(jù)分配,能大大降低程序員的工作負擔(dān)。

3 多GPU中的地址轉(zhuǎn)換架構(gòu)

當(dāng)前的多GPU系統(tǒng)有集中式地址轉(zhuǎn)換架構(gòu)和分布式地址轉(zhuǎn)換架構(gòu)2種地址轉(zhuǎn)換架構(gòu)。本節(jié)介紹這2種地址轉(zhuǎn)換架構(gòu)的原理,并分析它們的優(yōu)點和缺點。

3.1 集中式地址轉(zhuǎn)換架構(gòu)

集中式地址轉(zhuǎn)換架構(gòu)的原理和工作流程如圖2所示。訪存請求在訪問L1 Cache之前首先訪問L1 TLB,如果L1 TLB失效,則請求被送往L2 TLB(①)。如果L2 TLB也失效,則請求被送往CPU端的IOMMU(②)。IOMMU進行頁表查詢,并將相應(yīng)的頁表項返回給GPU(③)。GPU獲取頁表項后完成地址轉(zhuǎn)換,L1 Cache根據(jù)物理地址獲取對應(yīng)的數(shù)據(jù)。如果數(shù)據(jù)位于本地內(nèi)存,則按照內(nèi)存層次的結(jié)構(gòu)依次進行訪問,取得所需的數(shù)據(jù);如果數(shù)據(jù)位于遠程GPU,則L1 Cache將請求重定向到RDMA,訪問遠程GPU的L2 Cache,以獲取所需數(shù)據(jù)(④)。

3.2 分布式地址轉(zhuǎn)換架構(gòu)

分布式地址轉(zhuǎn)換架構(gòu)的原理和工作流程如圖3所示。訪存請求在訪問L1 Cache前首先訪問L1 TLB,如果L1 TLB失效,繼續(xù)訪問L2 TLB(①)。如果L2 TLB也失效,則請求被送往GMMU。GMMU中的頁表漫游器(Page Table Walker)進行頁表查詢,如果所需的頁表項位于本地內(nèi)存,則GMMU將頁表項返回給L2 TLB(②)。如果所需的頁表項不在本地內(nèi)存,請求被送往IOMMU(③)。IOMMU進行頁表查詢,并將相應(yīng)的頁表項返回給GPU,并且GMMU會判斷頁表項的物理地址是否在GPU上。若頁表項對應(yīng)的物理地址在GPU上,則將該頁表項寫入GMMU中,并且將頁表項返回給L2 TLB;若不是,則只將頁表項返回給L2 TLB(④)。GPU獲取頁表項后完成地址轉(zhuǎn)換,L1 Cache根據(jù)物理地址獲取對應(yīng)的數(shù)據(jù)。如果數(shù)據(jù)位于本地內(nèi)存,則按照內(nèi)存層次的結(jié)構(gòu)依次進行訪問,取得所需的數(shù)據(jù);如果數(shù)據(jù)位于遠程GPU,則L1 Cache將請求重定向到RDMA,訪問遠程GPU的L2 Cache,以獲取所需數(shù)據(jù)(⑤)。

Figure 3 Distributed address translation architecture

3.3 虛實地址轉(zhuǎn)換架構(gòu)對比分析

集中式地址轉(zhuǎn)換架構(gòu)和分布式地址轉(zhuǎn)換架構(gòu)在硬件開銷、地址轉(zhuǎn)換流程、遠程數(shù)據(jù)訪問機制的開銷以及地址轉(zhuǎn)換性能等方面均存在差異,本節(jié)將從以上幾個方面深入分析2種架構(gòu)的特點。

(1)硬件開銷。分布式地址轉(zhuǎn)換架構(gòu)與集中式地址轉(zhuǎn)換架構(gòu)的主要區(qū)別在于系統(tǒng)中各GPU結(jié)點是否具有本地的GMMU。普遍認為,GMMU中包含高度線程化的頁表漫游器(Highly-Threaded Page Table Walker)等部件,因此會引入部分硬件開銷。此外,本地內(nèi)存中需要存儲一些頁表項,也會引入部分存儲開銷。

(2)地址轉(zhuǎn)換流程。由于分布式地址轉(zhuǎn)換架構(gòu)的各GPU結(jié)點具有本地的GMMU,當(dāng)L2 TLB失效時,轉(zhuǎn)換請求首先被送往GMMU進行頁表查詢,如果沒有在本地頁表中找到對應(yīng)的頁表項,請求被送往IOMMU。對于集中式地址轉(zhuǎn)換架構(gòu),當(dāng)L2 TLB失效時,請求被直接送往IOMMU。因此,如果轉(zhuǎn)換請求通過GMMU的頁表查詢可以在本地找到對應(yīng)的頁表項(即命中),就可以省去遠程訪問IOMMU的步驟,由于訪問IOMMU的延遲遠大于訪問本地GMMU的延遲,在這種情況下,分布式地址轉(zhuǎn)換架構(gòu)可以減小地址轉(zhuǎn)換開銷。相反,如果轉(zhuǎn)換請求沒有在本地找到對應(yīng)的頁表項(即失效),分布式地址轉(zhuǎn)換架構(gòu)會因為額外的頁表查詢步驟而帶來性能損失和頁表查詢開銷。

(3)遠程數(shù)據(jù)訪問機制的開銷。第2.2節(jié)指出,目前主要有3種遠程數(shù)據(jù)訪問機制:緩存行直接訪問、頁遷移和首次訪問頁遷移。2種地址轉(zhuǎn)換架構(gòu)的地址轉(zhuǎn)換流程也會對遠程數(shù)據(jù)訪問機制的開銷產(chǎn)生影響。對于緩存行直接訪問機制,與集中式地址轉(zhuǎn)換架構(gòu)相比,分布式地址轉(zhuǎn)換架構(gòu)需要訪問本地GMMU,因此會增加地址轉(zhuǎn)換開銷,進而增加緩存行直接訪問開銷。對于頁遷移機制,分布式地址轉(zhuǎn)換架構(gòu)會引入額外的訪問本地GMMU的開銷。此外,為了保證數(shù)據(jù)的一致性,集中式地址轉(zhuǎn)換架構(gòu)在遷移頁之前,需要清除源GPU中TLB對應(yīng)的頁表項;分布式地址轉(zhuǎn)換架構(gòu)還需要清除源GPU中GMMU的頁表項信息,頁遷移之后,需要更新目標(biāo)GPU中的頁表項信息。因此,分布式地址轉(zhuǎn)換架構(gòu)會引入額外的清除和更新頁表項的開銷。對于首次訪問頁遷移機制,分布式地址轉(zhuǎn)換架構(gòu)會引入額外的訪問GMMU的開銷、清除和更新頁表項的開銷。

(4)地址轉(zhuǎn)換性能。地址轉(zhuǎn)換架構(gòu)的轉(zhuǎn)換性能與應(yīng)用的訪存特征有關(guān),具體可以從L2 TLB失效后的情況中看出,分為2種情況:①如果訪問本地內(nèi)存頁表項的請求占比高,就意味著在分布式地址轉(zhuǎn)換架構(gòu)中,大部分訪問GMMU的頁表查詢請求會命中,因此會大幅減少遠程訪問IOMMU請求的數(shù)量,在這種情況下,分布式地址轉(zhuǎn)換架構(gòu)會表現(xiàn)出性能優(yōu)勢。②如果訪問遠程內(nèi)存頁表項的占比高,就意味著在分布式地址轉(zhuǎn)換架構(gòu)中,大部分訪問GMMU的頁表查詢請求會失效,因此會引入不必要的訪問GMMU的開銷,在這種情況下,集中式地址轉(zhuǎn)換架構(gòu)的性能更優(yōu)。同時,分布式地址轉(zhuǎn)換架構(gòu)與集中式地址轉(zhuǎn)換架構(gòu)的性能差異與訪存請求的局部性相關(guān),若訪存請求的局部性較好,L2 TLB的命中率較高,送往GMMU和IOMMU的請求數(shù)量就會很少,則2種架構(gòu)的地址轉(zhuǎn)換開銷差別較小。相反,如果訪存請求的局部性較差,L2 TLB失效后的請求數(shù)增多,則兩者性能差異會增大。

4 實驗和分析

本文使用MGPUSim模擬器[17]評估與分析2種地址轉(zhuǎn)換架構(gòu)的性能。MGPUSim模擬器基于AMD的GCN3架構(gòu),支持多GPU系統(tǒng)仿真。

4.1 實驗環(huán)境

本文使用MGPUSim模擬器模擬由4個AMD GPU組成的多GPU系統(tǒng),具體配置如表1所示。每個GPU包含4個Shader Engines,每個Shader Engines由9個計算單元(CU)組成,因此每個GPU總共包含36個計算單元。每個CU具有一個私有的L1 vector TLB,每個Shader Engines具有一個L1 instruction TLB和L1 scalar TLB,GPU中所有的CU共享一個L2 TLB。系統(tǒng)中的GPU通過PCIe-v3總線連接,每個總線提供16 GB/s的帶寬。CPU和GPU之間也通過PCIe-v3連接。IOMMU由8個Page Table Walker組成,這是典型的IOMMU配置。GMMU由64個Page Table Walker組成,可以滿足GPU高頻率的地址轉(zhuǎn)換請求。本文將數(shù)據(jù)頁大小設(shè)置為4 KB。

Table 1 Configuration of multi-GPU system

Table 2 Workloads used to evaluate two address translation architecture.

本文使用首次訪問頁遷移策略來分配數(shù)據(jù),該方法能有效減少程序員的工作量,是目前常見的數(shù)據(jù)分配方法。本文從AMDAPPSDK、Hetero-Mark、DNN和SHOC測試集中選擇了部分應(yīng)用來評估2種地址轉(zhuǎn)換架構(gòu)的性能,部分程序由于不能在多GPU系統(tǒng)中運行而被省略。選擇的應(yīng)用數(shù)據(jù)集的平均大小為64 MB,過長的仿真時間使得模擬器無法使用更大的數(shù)據(jù)量進行評估,具體的應(yīng)用信息如表2所示。

4.2 結(jié)果和分析

圖4顯示了各應(yīng)用在2種地址轉(zhuǎn)換架構(gòu)下的性能。從圖4中可以看出,對于RL、FIR和MP,集中式地址轉(zhuǎn)換架構(gòu)的性能比分布式地址轉(zhuǎn)換架構(gòu)的性能好,平均有8%的性能差異。部分應(yīng)用程序分布式地址轉(zhuǎn)換架構(gòu)的性能優(yōu)于集中式地址轉(zhuǎn)換架構(gòu),例如PR、MT、KM、FFT、ST,特別是KM與ST,最大的加速比分別為4.81和5.18。平均而言,分布式地址轉(zhuǎn)換架構(gòu)的性能好于集中式地址轉(zhuǎn)換架構(gòu)的,取得了2.0的加速比。

Figure 4 Performance of each applications in two address translation architectures

Figure 5 Hit distribution of address translation requests in 2 address translation architectures

圖5顯示了地址轉(zhuǎn)換請求在2種地址轉(zhuǎn)換架構(gòu)中的命中分布;由于請求在TLB中命中對于整體性能影響較小,故而將2級TLB命中合并為TLB命中。從圖5中可以看出,2種地址轉(zhuǎn)換架構(gòu)對TLB的影響很小,兩者的TLB命中情況基本一致;且地址轉(zhuǎn)換請求大多在TLB命中,這充分體現(xiàn)了數(shù)據(jù)訪問的時間局部性和空間局部性。而部分應(yīng)用程序在TLB命中的地址轉(zhuǎn)換請求在整體地址轉(zhuǎn)換請求中占比極高,例如FIR、MP、AES和FFT,這說明該類應(yīng)用程序的數(shù)據(jù)訪問具有較高的時間局部性特征。

圖6展示了L2 TLB的失效請求中在GMMU命中和在IOMMU命中的比例。從圖6可以看出,分布式地址轉(zhuǎn)換架構(gòu)與集中式地址轉(zhuǎn)換架構(gòu)相比,應(yīng)用程序MT、KM、FFT和ST訪問IOMMU的次數(shù)明顯減少,平均降低了68.3%;對于ST,在分布式地址轉(zhuǎn)換架構(gòu)中訪問IOMMU的次數(shù)與在集中式地址轉(zhuǎn)換架中相比構(gòu)減少了90%。這說明分布式地址轉(zhuǎn)換架構(gòu)能夠有效降低遠程數(shù)據(jù)訪問開銷,也意味著這些應(yīng)用訪問本地內(nèi)存頁的比例較大。RL、FIR和MP絕大部分地址轉(zhuǎn)換請求都在IOMMU中命中,意味著這些應(yīng)用在L2 TLB失效后訪問遠程頁表項的比例較大,即這些應(yīng)用主要訪問遠程內(nèi)存頁。

Figure 6 Hit distribution of each component in 2 address translation architectures

圖7對比了2種架構(gòu)進行的頁表查詢總數(shù)。從圖7中可以看出,對于RL、FIR和MP,分布式地址轉(zhuǎn)換架構(gòu)的頁表查詢總數(shù)為集中式地址轉(zhuǎn)換架構(gòu)的2倍,這是由于這些應(yīng)用的地址轉(zhuǎn)換請求在TLB失效后都訪問遠程頁表項,分布式地址轉(zhuǎn)換架構(gòu)中GMMU進行頁表查詢無法返回請求所需的頁表項,請求將發(fā)送到IOMMU進行頁表查詢,故而整體頁表查詢數(shù)增加。平均而言,與集中式地址轉(zhuǎn)換架構(gòu)相比,分布式地址轉(zhuǎn)換架構(gòu)的頁表查詢總數(shù)增加了67%,增加了硬件開銷。

Figure 7 Number of page table walks in MMUs

上述結(jié)果中可以得知,分布式地址轉(zhuǎn)換架構(gòu)與集中式地址轉(zhuǎn)換架構(gòu)各有其優(yōu)勢,可以得出以下2點觀察結(jié)果:

(1)當(dāng)L2 TLB失效后,訪問本地GPU頁表項的次數(shù)占整體地址請求次數(shù)比例較小時,分布式地址轉(zhuǎn)換架構(gòu)在進行本地GMMU的頁表查詢時失效的可能性越大,這相比于集中式地址轉(zhuǎn)換架構(gòu)會帶來更大的性能開銷;若訪問本地GPU頁表項的次數(shù)占比較大,分布式地址轉(zhuǎn)換架構(gòu)在GMMU命中的可能性大大增加,避免了將請求發(fā)送給IOMMU,可大大減小地址轉(zhuǎn)換延遲,故而性能會優(yōu)于集中式地址轉(zhuǎn)換架構(gòu)的。

(2)訪問遠程內(nèi)存頁表項時,分布式地址轉(zhuǎn)換架構(gòu)在GMMU進行頁表查詢會失效,造成額外的本地頁表查詢開銷,這不僅會造成地址轉(zhuǎn)換架構(gòu)性能的降低,也會產(chǎn)生相應(yīng)的頁表查詢開銷。

上面2點觀察結(jié)果也給未來的工作指明了方向:(1)可以通過線程塊調(diào)度或內(nèi)存分配等方式有效提升L2 TLB失效后訪問本地內(nèi)存頁的比例,這樣能提升應(yīng)用程序在分布式地址轉(zhuǎn)換架構(gòu)中的運行效率。(2)由于復(fù)雜應(yīng)用程序往往在程序執(zhí)行的不同階段表現(xiàn)出不同的訪存特征,通過旁路地址轉(zhuǎn)換的方式將分布式地址轉(zhuǎn)換架構(gòu)與集中式地址轉(zhuǎn)換架構(gòu)結(jié)合起來,在應(yīng)用程序執(zhí)行過程中進行動態(tài)選擇,實現(xiàn)更高的地址轉(zhuǎn)換效率,也能有效減少頁表查詢總數(shù),降低硬件開銷。

5 結(jié)束語

本文對2種虛實地址轉(zhuǎn)換架構(gòu)進行了深入比較,通過對應(yīng)用程序在各個地址架構(gòu)中的命中分布、訪問數(shù)據(jù)的來源和TLB失效情況進行分析,得到以下結(jié)論:(1)分布式地址轉(zhuǎn)換架構(gòu)的性能普遍高于集中式地址轉(zhuǎn)換架構(gòu)的,集中式地址轉(zhuǎn)換架構(gòu)有著更低的硬件開銷。(2)集中式地址轉(zhuǎn)換架構(gòu)適用于L2 TLB失效后主要訪問遠程頁表項的應(yīng)用程序,即數(shù)據(jù)集中訪問共享數(shù)據(jù)較多的應(yīng)用程序;分布式地址轉(zhuǎn)換架構(gòu)適用于L2 TLB失效后主要訪問本地頁表項的應(yīng)用程序,即數(shù)據(jù)集中訪問共享數(shù)據(jù)較少的應(yīng)用程序。本文的研究成果也給未來的工作指明了方向:通過提升L2 TLB失效后訪問本地數(shù)據(jù)的比例來提升應(yīng)用程序在分布式地址轉(zhuǎn)換架構(gòu)的性能;通過旁路地址轉(zhuǎn)換的方式將分布式與集中式地址轉(zhuǎn)換架構(gòu)的優(yōu)勢結(jié)合起來,實現(xiàn)更高的地址轉(zhuǎn)換效率和更低的頁表查詢開銷。

猜你喜歡
頁表集中式內(nèi)存
更正
作者更正
勘 誤
“春夏秋冬”的內(nèi)存
更正
光伏:分布式新增裝機規(guī)模首次超越集中式
接觸網(wǎng)隔離開關(guān)集中式控制方案研究
光伏集中式逆變器與組串式逆變器
內(nèi)存搭配DDR4、DDR3L還是DDR3?
淺析組串式和集中式逆變器安全可靠性
陆丰市| 阜新| 咸宁市| 肇庆市| 泰顺县| 孟村| 赣州市| 尼玛县| 大名县| 龙口市| 得荣县| 论坛| 青田县| 罗定市| 城步| 浙江省| 台江县| 太白县| 稻城县| 永平县| 昌宁县| 咸阳市| 丹江口市| 崇仁县| 辽阳市| 清苑县| 安新县| 偃师市| 松桃| 凤凰县| 麻阳| 枝江市| 藁城市| 南乐县| 重庆市| 芮城县| 衡阳市| 商丘市| 沂源县| 云浮市| 美姑县|