亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向E 級超算系統(tǒng)的眾核片上存儲層次研究

        2023-12-16 10:28:54方燕飛董恩銘李雁冰何王全漆鋒濱
        計算機工程 2023年12期
        關(guān)鍵詞:處理器一致性架構(gòu)

        方燕飛,劉 齊,董恩銘,李雁冰,過 鋒,王 諦,何王全,漆鋒濱

        (國家并行計算機工程技術(shù)研究中心,北京 100190)

        0 概述

        隨著計算機科學(xué)技術(shù)的高速發(fā)展,處理器計算能力不斷提升,超級計算機系統(tǒng)規(guī)模不斷擴大,高性能計算(High Performance Computing,HPC)開始邁入E 級(Exascale,E 為超級計算機運算單位,意為每秒百億億次)時代。在同一芯片內(nèi)集成大量計算核心的眾核處理器[1-4]憑借超高的性能功耗比和性能面積比成為超算領(lǐng)域的主流處理器架構(gòu),2022 年12 月 第60 屆TOP500[1]榜單上的前10 臺超算 系統(tǒng)均采用眾核處理器為系統(tǒng)提供主要算力。

        隨著數(shù)據(jù)科學(xué)和機器學(xué)習(xí)方法在HPC 應(yīng)用領(lǐng)域的滲透和深度融合,HPC 應(yīng)用對超算系統(tǒng)的運算能力和密集數(shù)據(jù)處理能力都提出了越來越大的需求。而隨著工藝和體系結(jié)構(gòu)技術(shù)的發(fā)展,面向E 級超算系統(tǒng)的眾核處理器計算密度不斷提升,片上集成的運算核心數(shù)量不斷增加,眾多核心對存儲資源的競爭愈加劇烈,眾核處理器面臨的“訪存墻”問題越來越突出。E 級超算眾核片上存儲層次是緩解E 級系統(tǒng)內(nèi)眾核處理器“訪存墻”問題,幫助HPC 應(yīng)用更好地發(fā)揮E 級系統(tǒng)眾核處理器強大的計算優(yōu)勢,提升實際應(yīng)用性能的重要結(jié)構(gòu)。然而,片上存儲器在整個處理器上的面積占比超過50%,功耗占比約為25%~45%[2],而且存儲容量非常有限。因此,如何充分利用E 級超算系統(tǒng)眾核片上面積,合理設(shè)計存儲層次,并從面向E 級計算的應(yīng)用與軟件層面最大限度地發(fā)揮眾核片上存儲層次的優(yōu)勢,是工業(yè)界和學(xué)術(shù)界的研究熱點。

        片上存儲層次有多種組織方式,傳統(tǒng)多核處理器通常采用多級高速緩存(Cache)結(jié)構(gòu),而嵌入式處理器通常采用便簽式存儲器(Scratchpad Memory,SPM)結(jié)構(gòu)來緩解“訪存墻”問題。Cache 具有硬件自動管理、性能優(yōu)化顯著等優(yōu)點,但隨著晶體管數(shù)量的日益增長,Cache 體系結(jié)構(gòu)在現(xiàn)代眾核處理器中變得更加復(fù)雜,在面積、性能、功耗等方面都面臨挑戰(zhàn),而且Cache 具有程序執(zhí)行時間不可預(yù)知、軟件不可控等缺點。SPM 作為Cache 的替代或補充,在能源效率、時間可控性和可擴展性等方面具有明顯優(yōu)勢,但其缺點是編譯器或程序員需要顯式地控制數(shù)據(jù)布局與傳輸,對于軟件優(yōu)化和用戶編程具有很大挑戰(zhàn)。為了充分利用Cache 和SPM 的優(yōu)勢,在性能、功耗、面積、可編程性等方面取得更好的平衡,面向E 級超算的眾核片上存儲層次的結(jié)構(gòu)變得比多核和嵌入式處理器的存儲層次都更加豐富且復(fù)雜,軟硬件及應(yīng)用層面都有許多關(guān)鍵技術(shù)值得研究和突破。

        本文按照不同的組織方式將片上存儲層次分為多級Cache 結(jié)構(gòu)、SPM 結(jié)構(gòu)和SPM+Cache 混合結(jié)構(gòu),并總結(jié)3 種結(jié)構(gòu)的優(yōu)缺點。分析國際主流GPU、同構(gòu)眾核、國產(chǎn)眾核等面向主流E 級超算系統(tǒng)的眾核處理器片上存儲層次設(shè)計現(xiàn)狀與發(fā)展趨勢,并從眾核共享末級Cache(Last Level Cache,LLC)管理與緩存一致性協(xié)議、SPM 空間管理與數(shù)據(jù)移動優(yōu)化、SPM+Cache 混合結(jié)構(gòu)的全局視角優(yōu)化等角度綜述國際上的存儲層次設(shè)計與優(yōu)化相關(guān)軟硬件技術(shù)的研究現(xiàn)狀。

        1 眾核片上存儲層次特點分析

        在過去的近二十年中,隨著集成電路設(shè)計與制造技術(shù)的快速發(fā)展,處理器頻率以每年50%~100%的速度增長,然而主存的速度增長每年只有6%~7%[5],處理器與主存速度差異越來越大。為了緩解處理器和主存之間的速度差,在寄存器與主存之間引入了一種比主存速度更快、容量更小的靜態(tài)隨機存取存儲器(SRAM)作為臨時存儲,形成片上層次化存儲結(jié)構(gòu),也稱作片上存儲層次。E 級超算系統(tǒng)采用包括寄存器、高速緩存、主存、外存的多級存儲體系結(jié)構(gòu)。眾核處理器作為E 級系統(tǒng)的計算節(jié)點,其片上存儲結(jié)構(gòu)是E 級超算系統(tǒng)存儲體系結(jié)構(gòu)中的一個重要組成部分,是緩解眾核處理器“訪存墻”問題,幫助HPC 應(yīng)用更好地發(fā)揮眾核處理器計算優(yōu)勢,提升實際應(yīng)用性能的重要結(jié)構(gòu)。在當(dāng)前主流眾核處理器中,片上存儲層次形式多樣,按照SRAM 的組織方式可以分為多級Cache 結(jié)構(gòu)、SPM 結(jié)構(gòu)和SPM+Cache 的混合結(jié)構(gòu)等。

        1.1 多級Cache 結(jié)構(gòu)

        在通用處理器上,SRAM 通常被組織為Cache。在通用多核處理器上常有3~4 級Cache,不同層次的Cache,其容量、延時和功率不同,從主存到寄存器,越往上Cache 的層次越低,容量越小,訪問延時越低。比如IBM 的Z15[6],每個核心私有L1 數(shù)據(jù)Cache和指令Cache,一個數(shù)據(jù)和指令共用的L2 Cache,所有核共享一個大容量的L3 Cache,此外,還有一個更大容量的片外L4 Cache。但隨著片上核心數(shù)量的不斷增加,受功耗面積等制約,多核Cache 的層次在減少,比如下一代IBM Telum[7],將取消L4 和L3 Cache,物理上只支持L1 和L2 Cache,同時借助更高級的技術(shù)實現(xiàn)邏輯上的共享L3 Cache。在當(dāng)前主流的眾核處理器上,由于片上核心數(shù)量眾多,片上互連結(jié)構(gòu)復(fù)雜,為更有效揮地發(fā)Cache 的作用,眾核大多采用2 級Cache 結(jié)構(gòu),如圖1 所示,各核心私有L1 Cache,L2 Cache 作為末 級Cache 被所有 核心共享,而且L2 Cache 大多容量較大,由多個Bank 組成,通過高速NoC 互連實現(xiàn)核心間共享。

        圖1 眾核處理器上的兩級Cache 存儲結(jié)構(gòu)Fig.1 Two level Cache memory hierarchy on manycore processor

        1.2 SPM 結(jié)構(gòu)

        Cache 的設(shè)計越來越復(fù)雜,且受到面積和功耗的限制,而與Cache 相比,SPM 的功耗和面積比Cache低40%以上[5],因此很多眾核處理器將片上SRAM組織成由軟件管理的便簽式存儲器。例如早期由IBM、Sony 和 To shiba 共同開發(fā)的 Cell[8]處理器,由1 個跟 Power 處理器(PPE)兼容的主處理器和8 個協(xié)處理器(即SPE)組成,其中每個SPE 帶有256 KB SPM。又 如Adapteva Epiphany[9]的64 核 心眾核處理器,每個計算核心帶有軟件管理的SPM。再如“神威·太湖之光”超算系統(tǒng)采用的申威高性能眾核處理器SW26010[10],由4 個控制核心和256 個從核心組成,每個從核心帶有160 KB 的SPM。通常,片上的多個計算核心之間通過片上網(wǎng)絡(luò)(NoC)互連,每個核心除了可以訪問本地SPM 之外,還可以通過NoC 訪問遠程的SPM,并且訪問延遲與核心間的距離成正比。眾核片上核心訪問遠程核心SPM通常有兩種方式:一種是由底層體系結(jié)構(gòu)支持的共享SPM 方式;另一種是通過RMA 等方式顯式地訪問遠程核心的SPM。前者對用戶透明,后者需要調(diào)用RMA 接口顯式編程。有的處理器上的核心還配備直接內(nèi)存訪問(DMA)引擎,用于在片外內(nèi)存和本地SPM 之間傳輸批量數(shù)據(jù)。圖2 顯示了基于SPM的眾核架構(gòu)[11]存儲結(jié)構(gòu)示意圖。每個核心包含一個統(tǒng)一的SPM 用于指令和數(shù)據(jù),每個SPM 持有應(yīng)用程序要使用的全局地址空間的不同部分。雖然SPM可以同時作為代碼和數(shù)據(jù)的片上緩存,但在高性能計算領(lǐng)域,為了減少對代碼管理的復(fù)雜度,眾核處理器通常會在片上提供指令Cache,而只有數(shù)據(jù)是采用SPM 結(jié)構(gòu)進行緩存,典型的如SW26010。本文后續(xù)討論的眾核片上存儲層次也默認都是有指令Cache 的。

        隨著SPM 逐漸被用在GPU、通用處理器及高端處理器上以代替一級數(shù)據(jù)Cache,在一些高性能計算機體系結(jié)構(gòu)中,甚至采用多級軟件管理存儲層次代替?zhèn)鹘y(tǒng)多級Cache 存儲層次[12]。

        1.3 SPM+Cache 混合結(jié)構(gòu)

        由于傳統(tǒng)的SPM 控制器不包含任何輔助管理數(shù)據(jù)的邏輯電路,SPM 中的所有數(shù)據(jù)必須經(jīng)由軟件顯式管理,沒有管理邏輯電路帶來的額外代價,在相同容量下,SPM 面積和單次訪問的能耗都小于Cache。Cache 由于在發(fā)生沖突等情況下訪問時間會大幅增加,因此Cache 具有不確定性的命中時間,SPM 無法像Cache 那樣由硬件自動完成緩沖數(shù)據(jù)的換入換出操作,因此SPM 不存在訪問缺失的情況,始終能夠保證一個很小的固定時鐘周期數(shù)的訪問時間,從而保證了程序的確定性。但是SPM 的容量有限,而且由于不能自動完成數(shù)據(jù)從主存到SPM 的映射,因此對編譯器和用戶編程帶來了很大挑戰(zhàn)。表1給出了Cache 與SPM 特點的對比,兩者各有優(yōu)缺點,而且優(yōu)勢互補。

        表1 Cache 與SPM 的特點對比Table 1 Comparison of features of Cache and SPM

        為了更好地適應(yīng)不同應(yīng)用的需求,充分利用Cache 與SPM 的優(yōu)勢,越來越多的眾核處理器片上存儲結(jié)構(gòu)開始采用SPM+Cache 混合的方式來追求一種平衡設(shè)計。NVIDA 公司面向通用計算領(lǐng)域的GPU 上的存儲層次就是SPM+Cache 混合的典型代表,從其第二代GPU 架 構(gòu)Fermi[13]開 始,為了提 升GPU 的計算效率,引入了L1 和L2 Cache,SPM 結(jié)構(gòu)的共享存儲器(Shared Memory,SMEM)容量也變得更大,圖3 給出了典型的Fermi 架構(gòu)的存儲層次,每個SM 有一個私有的L1 Cache 和SMEM,容量分別為48 KB 或16 KB,所有流式多處理器(SM)共享768 KB L2 Cache。自Fermi 之后的每一代架構(gòu)都繼承了Cache+SPM 的混合結(jié)構(gòu)。NVIDIA GPU 一直保留SMEM 功能,由軟件負責(zé)實現(xiàn)數(shù)據(jù)的讀寫和一致性管理,有利于CUDA 多線程間數(shù)據(jù)重用,對于圖形計算等數(shù)據(jù)流處理類應(yīng)用可以挖掘極致的性能。而后引入的兩級 Cache 結(jié)構(gòu),使GPU 在HPC 領(lǐng)域的適應(yīng)性明顯加強,沒有使用SMEM 的應(yīng)用程序以及無法預(yù)知數(shù)據(jù)地址的算法,都可以從L1 Cache 設(shè)計中顯著獲益。

        圖3 Fermi 存儲層次示意圖Fig.3 Schematic diagram of Fermi storage hierarchy

        1.4 眾核片上存儲層次結(jié)構(gòu)類型總結(jié)

        眾核處理器系統(tǒng)根據(jù)其片上存儲層次中是否包含SPM 可以分為4 類:1)沒有SPM 的純Cache 系統(tǒng);2)只 有SPM 的不可Cache 系 統(tǒng);3)擁 有SPM 和Cache 的混合系統(tǒng);4)SPM 和Cache 混合且容量可配置的系統(tǒng),可以配置成純SPM 模式、純Cache 模式、或者SPM 與Cache 混合的模式,而且SPM 與Cache的容量可以有多種組合配置。典型的混合存儲結(jié)構(gòu)為核心私有1 級Cache 和SPM(容量可配置),所有核心共享MB 級大容量L2 Cache 的結(jié)構(gòu)。

        片上存儲層次的設(shè)計除了組織方式外,還有一個必須關(guān)注的物理部件,即片上高速互連網(wǎng)絡(luò)NoC(如富士通A64FX[3]、申威眾核處理器均設(shè)計了NoC)。片上高速網(wǎng)絡(luò)增強了核間數(shù)據(jù)交互能力,間接提高了單核心Cache 或者SPM 的數(shù)據(jù)重用能力,降低了主存訪問壓力,是硬件高效組織共享末級Cache 和共享SPM 的關(guān)鍵,也是應(yīng)用算法和系統(tǒng)軟件充分共享利用片上資源的重要途徑,因此,在片上存儲層次的設(shè)計與使用中,必須考慮片上網(wǎng)絡(luò)的結(jié)構(gòu)特點。

        2 面向E 級超算的眾核處理器片上存儲層次

        2.1 主流GPGPU 存儲層次現(xiàn)狀

        作為通用加速卡的GPGPU 憑借其卓越的計算能力,已經(jīng)在HPC 領(lǐng)域扮演著越來越重要的角色。NVIDIA 通用GPU 作為最主流的通用眾核加速卡,已經(jīng)廣泛應(yīng)用于HPC 領(lǐng)域,比如第60 屆Top500 排名前10 的超算中有5 臺都采用NVIDIA 的GPU 進行加速。而AMD 和Intel 的通用GPU 也分別作為美國的3 臺E 級系統(tǒng)上的加速卡為系統(tǒng)提供主要算力。下文將分別分析上述3 個面向HPC 的主流GPU 架構(gòu)存儲層次現(xiàn)狀及其發(fā)展趨勢。

        2.1.1 NVIDIA Hopper 架構(gòu)的存儲層次

        NVIDIA GPU 的架構(gòu)從Tesla 到Hopper 已經(jīng)發(fā)展了9 代,為了適應(yīng)GPU 計算能力的不斷提升,其片上存儲層次也在不斷發(fā)展。自Fermi 架構(gòu)采用SPM+Cache 混合的片上存儲結(jié)構(gòu)之后,后續(xù)的架構(gòu)在存儲層次上的設(shè)計沒有較大的變革,其變化主要表現(xiàn)在各級存儲在容量上的變化、SMEM 與L1 Cache 結(jié)合方式上的變化等。直至第7 代Volta 架構(gòu),其片上存儲方式較前幾代架構(gòu)又有了比較重大的變化。Volta 架構(gòu)將數(shù)據(jù)Cache 與SMEM 從功能上做到一個存儲體(memory block)中,使得兩種緩存方式均達到了其訪問的最好性能。SMEM 與L1 Cache 的總?cè)萘繛?28 KB,且容量可以有多種靈活的配置。第8 代Ampere 架構(gòu)的片上存儲方式繼承了Volta 架構(gòu)的片上存儲方式,但將存儲空間總大小擴大至192 KB/SM(采用Ampere 架構(gòu)的典型GPU為A100[14])。A100 的L2 Cache 容量擴展到40 MB,是V100 的7 倍,并且支持駐留優(yōu)先級設(shè)置,可以提高持續(xù)訪問數(shù)據(jù)駐留Cache 的權(quán)利,從而減小DMA帶寬需求。此外,Ampere 增加了異步拷貝指令,可以直接從L2 Cache 以及DRAM 中批量傳輸數(shù)據(jù)到SMEM 中,而在前一代架構(gòu)Volta 中,需要通過一個全局加載指令從L1 Cache 到寄存器中,然后再用Store-Shared 指令從寄存器中傳到SMEM 中,圖4 展示了Ampere 與Volta 的存儲結(jié)構(gòu)變化。從最新一代Hopper 架構(gòu)H100 和Ampere 架構(gòu)A100 的對比來看,最近的兩代存儲架構(gòu)方面沒有大的變化,只是H100的SLM 容量增加到256 KB,且H100 從硬件對TMA(Tensor Memory Accelerator)的功能上做了更多的支持。

        圖4 Ampere 與Volta 的存儲結(jié)構(gòu)變化Fig.4 Storage structure changes of Ampere and Volta

        從NVIDIA 9 代GPU 架構(gòu)的存儲層次發(fā)展趨勢來看,Cache+SPM 的混合結(jié)構(gòu)是其片上存儲層次的一個創(chuàng)新解決方案,混合結(jié)構(gòu)可以更好地兼顧面積、性能、功耗及好用性,以滿足不同領(lǐng)域應(yīng)用的多樣化需求。對于某些應(yīng)用,Cache 仍然是保證系統(tǒng)通用性和應(yīng)用性能的關(guān)鍵結(jié)構(gòu),而SPM 結(jié)構(gòu)為某些HPC 應(yīng)用挖掘極致性能提供了更多可能。對于有些更復(fù)雜的應(yīng)用,則既需要SMEM 也需要Cache,因此支持Cache 與SMEM 容量的靈活配置,可以進一步提高對不同類型應(yīng)用的適應(yīng)性。進一步地,為方便程序員或者編譯系統(tǒng)挖掘應(yīng)用數(shù)據(jù)訪問特性,Hopper 架構(gòu)引入了線程塊集群(Thread Block Cluster,TBC)和分布共享內(nèi)存(Distributed Shared Memory,DSMEM)概念,同一線程塊集群內(nèi)的SM 之間可以共享訪問SPM,而無須通過Global Memory 交互數(shù)據(jù),從而提高數(shù)據(jù)交互效率。此外,硬件上提供了只讀數(shù)據(jù)緩存的Read-Only Data Cache 以及異步拷貝指令,都可以進一步降低訪存時延、提升帶寬利用率,雖然這些設(shè)計會增加軟件管理和編程復(fù)雜度,但是為應(yīng)用或編譯系統(tǒng)充分挖掘片上緩沖性能提供了更多手段。

        2.1.2 AMD CDNA2 架構(gòu)的存儲層次

        AMD CDNA2 是AMD 在2021 年11 月新發(fā)布的GPU 架構(gòu),其設(shè)計目標是科學(xué)計算和機器學(xué)習(xí)領(lǐng)域的應(yīng)用。最新TOP500 排名第1 的美國E 級超算系統(tǒng)Frontier 采用的加速卡AMD MI250X 正是基于AMD CDNA2 架構(gòu)的AMD Instinct MI200 構(gòu)建的。AMD MI250X 采用MCM 技術(shù)封裝了兩個AMD Instinct MI200 GCD。

        每個AMD Instinct MI200 GCD 包含112個計算單元(Compute Unit,CU),最低級別的內(nèi)存層次結(jié)構(gòu)位于CU 內(nèi)部,如圖5 所示,每個CU 包含一個16 KB L1數(shù)據(jù)Cache 和64 KB SPM 結(jié)構(gòu)的本地共享存儲器,另有一個4 KB 共享SPM 結(jié)構(gòu)的全局共享存儲器。整個GCD 共享一個由32 個Slice 構(gòu)成的16 路組相連結(jié)構(gòu)的L2 Cache,總?cè)萘繛? MB。

        2.1.3 Intel Xe 架構(gòu)的存儲層次

        美國E 級計劃中的Aurora 超算系統(tǒng)采用 Intel Xe 架構(gòu)的GPU,Xe 架構(gòu)是Intel 繼Gen 9 和Gen 11 之后的最新一代GPU 架構(gòu)。Gen 9 和Gen 11 都是采用3 級Cache 結(jié)構(gòu),在片上使用共享本地內(nèi)存(Shared Local Memory,SLM),是一種SPM 結(jié)構(gòu)。作為一級數(shù)據(jù)緩沖,沒有通用的L1 數(shù)據(jù)Cache。Gen 11 相對Gen 9 在存儲層次上的改進特點是將SLM 帶入了子Slice 單元,使得SLM 更接近執(zhí)行單元(EU),以便在同時訪問L3 Cache 時減少數(shù)據(jù)的爭用。SLM 更接近EU 也有助于減少延遲并提高效率,如圖6 所示。

        Intel 的Xe 架構(gòu)是對前兩代Gen 9 和Gen 11 架構(gòu)上的進一步升級,Intel Xe 架構(gòu)不僅全面提升了執(zhí)行單元的規(guī)模,從存儲層次發(fā)展來看,Xe 架構(gòu)保留了Gen 11 相 對Gen 9 在SLM 上的改 進,即 將SLM 帶 入SubSlice,并且Xe 架構(gòu)相對Gen 11 進一步新增了L1數(shù)據(jù)Cache。Xe 架構(gòu)還支持端對端壓縮,L2 Cache的容量也有大幅提升。目前發(fā)布的Intel Xe 架構(gòu)GPU Ponte Vecchio 支 持 512 KB 的 SLM 與L1 DCache 動態(tài)可配的一級緩沖,二級Cache 增加到64 MB。從不同代系的發(fā)展來看,在追求兼顧性能與好用性的目標中,Intel 的GPU 存儲層次設(shè)計也逐步采用SPM+Cache 的混合結(jié)構(gòu)。

        2.2 同構(gòu)眾核系統(tǒng)的片上存儲層次

        目前TOP500 排名第2 的日本的Fugaku/Post-K超算系統(tǒng),采用的是富士通A64FX 處理器[3]。

        A64FX 處理器采用同構(gòu)眾核處理器體系結(jié)構(gòu),片上集成52 個同構(gòu)核心,包括48 個計算核心與4個輔助核心,如圖7 所示,所有核心分為4 個組,每組13 個核心,一組核心稱為一個CMG。在A64FX 處理器芯片中,多個CMG 通過片上網(wǎng)絡(luò)連接。富士通的A64FX處理器為了減小芯片大小,采用兩級Cache的結(jié)構(gòu),每個核心私有64 KB 一級Cache,一個CMG 的所有核心共享一個8 MB 二級Cache。A64FX 采用類似于環(huán)形拓撲網(wǎng)絡(luò)的片上網(wǎng)絡(luò),以支持CMG 之間的內(nèi)存一致性協(xié)議,從而可以使用多個CMG 執(zhí)行共享內(nèi)存程序。

        圖7 A64FX 片上存儲層次Fig.7 On-chip storage hierarchy of A64FX

        富岳采用的A64FX 存儲層次設(shè)計是以應(yīng)用和編程軟件需求牽引的一種協(xié)同設(shè)計。比如其CMG 內(nèi)核心數(shù)量、一二級Cache 的容量以及Cache line 的大小等參數(shù)設(shè)置,都是在模擬富岳的重點目標應(yīng)用程序性能的前提下給出的,在功率、面積和性能之間取得更好的權(quán)衡。為了提高目標應(yīng)用程序的性能,采用增強型的緩存功能設(shè)計,比如采用組合聚集操作技術(shù),使間接加載的數(shù)據(jù)吞吐量加倍,采用二級緩存數(shù)據(jù)重用優(yōu)化技術(shù)提高緩存帶寬。純Cache 結(jié)構(gòu)具有更好的應(yīng)用適應(yīng)性,但同時也面臨可擴展性問題。

        2.3 新一代國產(chǎn)眾核存儲層次現(xiàn)狀

        2.3.1 MT-3000 異構(gòu)眾核處理器存儲層次

        國防科技大學(xué)推出了一款自主設(shè)計的面向新一代天河超算系統(tǒng)的異構(gòu)眾核處理器MT-3000[12]。

        MT-3000 采用多區(qū)域加速架構(gòu),其結(jié)構(gòu)如圖8 所示,CPU 內(nèi)包含16 個通用處理器核心和4 個加速域,采用混合存儲器層次結(jié)構(gòu)。

        MT-3000 的每個通用CPU 核含有支持高速緩存一致性 的兩級私有Cache,L1 Cache 被L2 Cache 包含,L2 Cache 容量為512 KB。每個加速域包含24 個控制核心和384 個加速核心,采用兩級SPM 結(jié)構(gòu),其存儲層次如圖8 所示,每個加速域含有1.5 MB 的域內(nèi)共享內(nèi)存(DSM)和48 MB 的高速共享內(nèi)存(HBSM),其中DSM 只能由加速域內(nèi)的核心訪問,而HBSM 被本加速域的所有核心及通用域的16 個CPU 核共享。片上含有兩級高速互連網(wǎng)絡(luò),每個加速域內(nèi)采用全連接網(wǎng)絡(luò),而16 個通用核心間通過二維Mesh 網(wǎng)相連,16 個通用核心可以訪問4 個加速域的HBSM。MT-3000 加速域支持軟件管理的垂直存儲一致性,將加速域內(nèi)的DSM(6 MB)、HBSM(共48 MB)、DDR4 存儲(共32 GB)三級存儲架構(gòu),通過高速DMA 和片上網(wǎng)絡(luò)連接,提供了高帶寬的數(shù)據(jù)傳輸和核間數(shù)據(jù)交互能力。

        2.3.2 申威眾核處理器存儲層次

        用于“神威·太湖之光”的申威26010 眾核處理器[10,15],片上采用純數(shù)據(jù)SPM 的結(jié)構(gòu)。SW26010 包含4 個核組,每個核組有64 個運算核心,每個運算核心私有128 KB SPM。而面向E 級系統(tǒng)的新一代申威眾核處理器[16]開始采用SPM+Cache 混合的片上存儲結(jié)構(gòu)。該眾核處理器包含6 個核組,每個核組有64 個運算核心,每個運算核心有256 KB SRAM,支持SPM與L1 Cache 混合且容量可配置的使用方式,64 個運算核心的SRAM 還可以通過片上NoC 互連組織成共享SPM 空間,片上存儲模型如圖9 所示。運算核心可以RMA 或者遠程load/store 的方式訪問同一核組內(nèi)遠程運算核心的SPM 空間,也可以通過DMA 將主存空間數(shù)據(jù)批量傳輸?shù)剿接谢蛘吖蚕淼腟PM 空間上。

        圖9 新一代申威眾核處理器存儲層次Fig.9 The storage hierarchy of the new generation of Shenwei manycore processors

        為更好地適應(yīng)不同數(shù)據(jù)訪問特征的HPC 應(yīng)用的需求,提升主存數(shù)據(jù)的訪問效率,系統(tǒng)支持主存空間訪問可以配置成可Cache 和不可Cache 兩種屬性。但為了降低編程復(fù)雜度,這種屬性通常對用戶透明,用戶程序主存數(shù)據(jù)默認都是可Cache 的,編譯器或者運行時可以利用主存不可Cache 空間結(jié)合DMA 進行訪存優(yōu)化,減少維護Cache 一致性的開銷。

        2.4 面向E 級超算的眾核處理器片上存儲層次結(jié)構(gòu)類型總結(jié)

        表2 以眾核計算核心的視角總結(jié)了各主流眾核處理器的片上存儲層次。富岳A64FX 同構(gòu)眾核采用兩級Cache 結(jié)構(gòu),MT-3000 異構(gòu)融合架構(gòu)中的加速域 采用純SPM 結(jié) 構(gòu),而NVIDIA、Intel、AMD的面向E 級系統(tǒng)的GPU 以及申威的最新一代異構(gòu)眾核處理器SW260x0 均采用SPM+Cache 混合的結(jié)構(gòu)。可見目前的HPC 主流眾核片上存儲層次結(jié)構(gòu)并不單一,這是由多種因素導(dǎo)致的,不同處理器面向的應(yīng)用領(lǐng)域需求不同,追求的設(shè)計目標不同,各自的技術(shù)積累也不同。但是,從橫向的比較和各處理器自身縱向的發(fā)展趨勢,以及從HPC 與數(shù)據(jù)科學(xué)、機器學(xué)習(xí)不斷融合發(fā)展帶來的應(yīng)用需求變化來看,SPM+Cache 的混合結(jié)構(gòu)最可能成為今后HPC 眾核處理器片上存儲層次設(shè)計的主流選擇。另外,從表2 最后一列的分析可以看出,雖然主流GPU 都采用了的SPM+Cache 結(jié)構(gòu),但每一款GPU的SPM 和Cache 的功能細節(jié)也各有不同,例如NVIDIA H100 的L1 只能為Cache CUDA 對應(yīng)的Local 空間的數(shù)據(jù),Global 空間數(shù)據(jù)只能緩存進L2 Cache。H100 還支持同一TBC 內(nèi)SM 遠程訪問共享SPM,新的存儲層次特性也給HPC 編程帶來新挑戰(zhàn)。而AMD MI250X GPU 支持的CU 私有SPM和L1 DCache 是SIMD 單元專用的,如果HPC 程序員要深度優(yōu)化程序性能,則必須要充分利用好這些存儲結(jié)構(gòu)特性。

        表2 主流眾核處理器片上存儲層次Table 2 On-chip storage hierarchy on mainstream manycore processor

        3 面向眾核片上存儲層次的優(yōu)化技術(shù)

        眾核是構(gòu)建E 級超算系統(tǒng)的主要計算節(jié)點,為E級超算系統(tǒng)提供主要算力來源。如何充分發(fā)揮眾核處理器片上眾多核心的計算能力,一方面需要硬件層面開展眾核片上存儲結(jié)構(gòu)設(shè)計,另一方面需要面向E 級計算的應(yīng)用和軟件開展相關(guān)優(yōu)化技術(shù),以充分利用眾核片上存儲層次特點。當(dāng)前面向E 級的主流眾核處理器采用的片上存儲層次結(jié)構(gòu)多樣,各具優(yōu)缺點,本文從多級Cache、SPM 以及SPM+Cache 混合3 種結(jié)構(gòu)分別探討當(dāng)前主流軟硬件設(shè)計與優(yōu)化技術(shù)。

        3.1 多級Cache 的優(yōu)化

        隨著片上核心數(shù)量的不斷增大,片上互連結(jié)構(gòu)日趨復(fù)雜,要使Cache 結(jié)構(gòu)在片上眾多核心競爭的環(huán)境下能繼續(xù)高效工作,必須解決好兩方面問題:共享末級Cache(LLC[11])的高效管理問題和Cache 一致性問題。

        3.1.1 LLC 的管理策略

        眾核片上典型的Cache 結(jié)構(gòu)為:核心私有一級Cache,L2 Cache 作為LLC 由所有核心共享。在眾核環(huán)境下LLC 會同時接收來自于多個線程的訪存請求,而線程間的數(shù)據(jù)訪問特征有可能各不相同,大量并發(fā)線程間的相互干擾會影響LLC 的使用效率。因此,如何管理片上LLC 資源是影響眾核處理器訪存性能的關(guān)鍵因素。傳統(tǒng)LLC 的替換與插入策略的研究已經(jīng)比較成熟,包括使用LRU 作為替換策略的插入策略、動態(tài)插入策略(DIP)、線程感知的DIP 策略,還有后續(xù)提出的靜態(tài)重引用間隔預(yù)測策略、動態(tài)重引用間隔預(yù)測策略和線程感知的動態(tài)重引用間隔預(yù)測策略。但是,這些傳統(tǒng)的LLC 管理策略在眾核系統(tǒng)下已無法高效工作。文獻[17-20]提出了在CMP的競爭線程之間動態(tài)劃分共享LLC 的策略,文獻[21-22]則進一步考慮了多線程間的共享數(shù)據(jù)行為的影響,并將其融入到LLC 的管理策略。上述技術(shù)大多針對同構(gòu)眾核系統(tǒng),而文獻[23-24]針對異構(gòu)眾核系統(tǒng)開展了LLC 管理策略研究。文獻[25]在前人基礎(chǔ)上提出了適合片上異構(gòu)眾核處理器的動態(tài)LLC 替換策 略DIPP(Dynamic Insertion/Promotion Policy)。該替換策略核心思想是通過限制GPU 核能夠獲取的Cache 資源,達到降低程序間的線程干擾,降低程序的失效率和提升系統(tǒng)整體性能的目的。

        隨著CMP 上處理器核心數(shù)量的不斷增大,非一致Cache 體系結(jié)構(gòu)(NUCA)成為當(dāng)前CMP 上大容量低延遲Cache 的主要組織結(jié)構(gòu)。NUCA 結(jié)構(gòu)中的LLC 由于容量較大,通常分為多個Cache 存儲體(bank),所有bank 置于芯片中央,通過NoC 在邏輯上組織成一個被所有核心共享的統(tǒng)一的末級Cache。NoC 是組織LLC 的重要互連方式。隨著NoC 規(guī)模的擴大,一方面,網(wǎng)絡(luò)延遲正在成為緩存訪問延遲的主要來源,另一方面,不同核心之間的通信距離和延遲差距正在增大。這種差距會嚴重導(dǎo)致網(wǎng)絡(luò)延遲不平衡,加劇緩存訪問延遲的不均勻程度,進而惡化系統(tǒng)性能。文獻[26]分別針對無沖突延遲和競爭訪問提出了非一致性存儲映射和非一致鏈路分布的設(shè)計方法。文獻[27]提出了一種新的面向公平性和位置感知的NUCA 方案,以緩解網(wǎng)絡(luò)延遲不平衡的問題,實現(xiàn)更統(tǒng)一的緩存訪問。文獻[28]提出一種位置敏感的LLC,通過感知Cache 行位置和利用GPGPU 的核間通信來緩解GPGPU 片上網(wǎng)絡(luò)瓶頸,減少訪存延遲。文獻[29]將LLC 淘汰的Cache 塊保存在NoC 的路由器上,當(dāng)有核心請求這塊數(shù)據(jù)時,由NoC 直接響應(yīng)這個請求。這些研究都充分利用了NoC 的特點,為基于NoC 的NUCA 數(shù)據(jù)訪問的不平衡性問題提供了多種解決方案。

        3.1.2 眾核片上緩存一致性協(xié)議

        當(dāng)多個處理器核的高速緩存保持從主存獲取的同一數(shù)據(jù)對象的本地副本時,即使其中任何一個高速緩存修改了同一數(shù)據(jù)對象的值,也會導(dǎo)致高速緩存和共享內(nèi)存之間共享數(shù)據(jù)的全局視圖不一致,這個問題稱為緩存一致性。在眾核處理器中,為管理共享緩存中的讀寫操作,以便在所有處理器核心之間維護一致性,而執(zhí)行的一組特定規(guī)則稱為緩存一致性協(xié)議。緩存一致性協(xié)議可分為目錄協(xié)議[30]和監(jiān)聽協(xié)議[31]兩大類,基本作用是發(fā)現(xiàn)共享數(shù)據(jù)塊的狀態(tài)。傳統(tǒng)的緩存一致性協(xié)議設(shè)計復(fù)雜,開銷較大,無法滿足眾核處理器共享存儲系統(tǒng)追求高效、低功耗、可擴展的設(shè)計目標。國際上有大量面向片上眾核系統(tǒng)低開銷可擴展的Cache 一致性協(xié)議研究。文獻[32]提出了可擴展到千核規(guī)模的融合一致性Cache,在統(tǒng)一物理內(nèi)存的基礎(chǔ)上,采用兩級目錄的融合一致性設(shè)計。文獻[33]提出了SCD 框架,它依賴于高效的高關(guān)聯(lián)緩存實現(xiàn)一個可擴展到數(shù)千個內(nèi)核的單級目錄,精確地跟蹤共享集,并且產(chǎn)生可忽略的目錄引起的失效。國內(nèi)也有許多研究者在Cache一致性協(xié)議功能擴展和性能優(yōu)化等方面開展了研究。文獻[34]針對共享存儲系統(tǒng)提出一種沒有目錄和間接訪問、沒有眾多一致性狀態(tài)和競爭的簡單高效的Cache 一致性協(xié)議VISU,解決了制約目錄協(xié)議可擴展性的目錄開銷問題。文獻[35-36]提出了一種具有表達力的、區(qū)域高效的目錄緩存設(shè)計,并分別在64、256 核系統(tǒng)上進行了評估。文獻[37-38]提出了基于時間的硬件一致性協(xié)議,即庫緩存一致性(Library Cache Coherence,LCC),它通過暫停對緩存塊的寫入,直到它們被所有共享者自失效為止,從而實現(xiàn)順序一致性。

        當(dāng)可伸縮一致性在通用芯片多處理器中得到廣泛研究時,GPU 體系結(jié)構(gòu)具有一系列新的挑戰(zhàn)。引入傳統(tǒng)的目錄協(xié)議會給現(xiàn)有的GPU 應(yīng)用程序增加不必要的一致性通信開銷。此外,這些協(xié)議增加了GPU 存儲系統(tǒng)的驗證復(fù)雜性。文獻[39]描述了一個基于時間的GPU 一致性框架,稱為時間一致性(TC),它利用系統(tǒng)中的全局同步計數(shù)器來開發(fā)一個簡化的GPU 一致性協(xié)議。同步計數(shù)器使所有一致性轉(zhuǎn)換(如緩存塊失效)能夠同步發(fā)生,從而消除所有一致性通信和協(xié)議爭用,達到減少GPU 一致性的開銷的目的。文獻[40]提出CPU-GPU 硬件緩存一致性不要同時實現(xiàn)統(tǒng)一共享內(nèi)存和高GPU 性能的思想。文獻[41]針對CPU-GPU 系統(tǒng)開發(fā)了異構(gòu)系統(tǒng)一致性協(xié)議(HSC),以緩解GPU 內(nèi)存請求的一致性帶寬效應(yīng)。文獻[42]提出一種軟件輔助硬件一致性(SAHC)來擴展Cache 一致性以適應(yīng)異構(gòu)處理器。系統(tǒng)軟件通常具有跨CPU 和GPU 共享數(shù)據(jù)模式的語義知識。這些高級知識可用于在異構(gòu)處理器中跨面向吞吐量的GPU 和對延遲敏感的CPU 提供緩存一致性。SAHC 提出了一種混合軟硬件機制,該機制僅在需要時才使用硬件一致性,同時使用軟件知識過濾掉大部分不必要的一致性通信。

        從上述研究可以看出,眾核上的Cache 一致性協(xié)議設(shè)計工作圍繞可擴展和低開銷的設(shè)計目標,針對典型數(shù)據(jù)共享模式和眾核處理器體系結(jié)構(gòu)開展軟硬件協(xié)同設(shè)計,提出的大多是一種有裁減的弱一致性協(xié)議。

        3.2 SPM 結(jié)構(gòu)的優(yōu)化

        SPM 結(jié)構(gòu)的特點是完全將數(shù)據(jù)的布局與傳輸交給軟件,面向SPM 結(jié)構(gòu)的眾核程序的編程與優(yōu)化,必須解決好程序數(shù)據(jù)的布局與傳輸兩個關(guān)鍵環(huán)節(jié)。

        3.2.1 基于SPM 的堆??臻g管理

        在只有SPM 結(jié)構(gòu)的眾核系統(tǒng)上,軟件必須顯式地管理每個核心本地SPM 的進出數(shù)據(jù),包括全局數(shù)據(jù)、堆空間數(shù)據(jù)、??臻g數(shù)據(jù)的管理。當(dāng)核心對應(yīng)的所有數(shù)據(jù)都能在本地SPM 上放下時,程序執(zhí)行效率非常高。當(dāng)核心程序?qū)?yīng)的數(shù)據(jù)總量超出本地SPM容量時,必須進行顯式數(shù)據(jù)管理才能使SPM 發(fā)揮出較好的性能。對全局數(shù)據(jù)而言,用戶通??梢詫⑵浞譃閮煞N,一種是可以完整放入SPM 中的變量,另一種是無法放入SPM 空間的全局數(shù)據(jù)(數(shù)據(jù)容量超過SPM 空間,或者SPM 空間已滿),用戶可以在程序需要數(shù)據(jù)之前通過DMA 引入數(shù)據(jù)到SPM,在不再需要數(shù)據(jù)之后將其返回到全局內(nèi)存。當(dāng)程序的全局數(shù)組總?cè)萘砍^SPM 空間時,程序員需要考慮哪些數(shù)組布局在SPM,哪些數(shù)組布局在主存并通過DMA 進行傳輸。對于C/C++程序來說,全局靜態(tài)數(shù)據(jù)是可以在編譯時確定容量的,而其棧空間或者堆空間數(shù)據(jù)其大小是可變的,并且與輸入數(shù)據(jù)有關(guān),用戶通常沒有有效的方式來管理堆數(shù)據(jù)和棧數(shù)據(jù)。由于堆棧數(shù)據(jù)的訪問是程序中內(nèi)存訪問的重要部分,因此必須有高效的堆棧管理手段來發(fā)揮SPM 的性能。

        基于SPM 的存儲層次對程序員提出了很高的要求,需要對算法和片上存儲層次特點都有非常準確的把握,而且程序?qū)崿F(xiàn)起來工作量也很大。為此,國際上開展了許多面向軟件管理的存儲層次的編譯優(yōu)化研究,一類是面向SPM 的靜態(tài)分配技術(shù)[43-45],通過采用啟發(fā)式或者整數(shù)線性規(guī)劃等算法,確定哪些數(shù)據(jù)布局進SPM,哪些放置在主存中,還有一類是動態(tài)分配技術(shù)[46-49],包括軟件Cache 技術(shù)、基于圖著色算法的SPM 分配與自動DMA 技術(shù)等。文獻[50-54]專門針對眾核系統(tǒng)面向SPM 的堆棧空間管理開展了長期深入的研究。在??臻g管理方面,他們最初提出了局存容量受限的眾核處理器上的棧數(shù)據(jù)管理的方案[50],支持在SPM 上的任意空間上管理任何任務(wù)的棧數(shù)據(jù),并正確管理所有棧指針,但是其管理開銷較高,并且管理沒有得到優(yōu)化。在此技術(shù)上,文獻[54]對棧數(shù)據(jù)管理做了進一步優(yōu)化,并減少其管理開銷。在堆空間管理方面,文獻[51-52]提出了一種半自動的、可擴展的堆數(shù)據(jù)管理框架,通過提供簡單直觀的編程接口來幫助用戶實現(xiàn)自動管理堆數(shù)據(jù),隱藏了軟件緩存堆數(shù)據(jù)的復(fù)雜性。之后又在文獻[53]中進一步提出一種全自動、高效的堆數(shù)據(jù)管理框架,通過一個編譯和運行時系統(tǒng),實現(xiàn)在有限的本地內(nèi)存眾核體系結(jié)構(gòu)中自動管理無限大小的堆數(shù)據(jù)。文獻[48]在上述框架基礎(chǔ)上進一步開展了3 種通用優(yōu)化,使得堆管理框架更加高效。

        3.2.2 基于SPM 的片上數(shù)據(jù)移動

        為了更好地發(fā)揮SPM 的結(jié)構(gòu)優(yōu)勢,HPC 領(lǐng)域的主流眾核系統(tǒng)片上存儲結(jié)構(gòu)設(shè)計通常會提供DMA來加強SPM 與主存間數(shù)據(jù)的傳輸效率,同時利用NoC 實現(xiàn)片上眾多核心間SPM 的互連,增大單核心可見的SPM 容量。SPM 的容量、DMA 訪存帶寬、NoC 通信帶寬都是眾核系統(tǒng)實現(xiàn)核心數(shù)據(jù)高效傳輸與訪問的重要資源,復(fù)雜的眾核應(yīng)用需要通過對核心數(shù)據(jù)進行合理高效的劃分、映射與傳輸,才能實現(xiàn)上述片上資源的高效率用。比如通過循環(huán)變換等技術(shù)可以增加SPM 數(shù)據(jù)的重用率,減少數(shù)據(jù)進出SPM的頻率。核心間基于NoC 的數(shù)據(jù)傳輸帶寬要比從主存到SPM 的DMA 帶寬高很多,可以結(jié)合應(yīng)用訪存特征合理分配數(shù)據(jù)與任務(wù),使得多核心間可通過遠程內(nèi)存訪問(Remote Memory Access,RMA)命令或者RLD/RST 共享SPM 上的數(shù)據(jù),發(fā)揮NoC 的優(yōu)勢,提升SPM 數(shù)據(jù)在片上的重用率,這些方法都可以降低應(yīng)用程序?qū)蝹€核心的SPM 容量需求,緩解DMA訪存壓力。上述工作對用戶編程和編譯器優(yōu)化提出了巨大挑戰(zhàn)。國際上有許多工作圍繞SPM 結(jié)構(gòu)特點開展高效性與好編程性的研究,從不同角度提出了許多面向SPM 高效編程的優(yōu)化方案、框架、運行時庫及編譯優(yōu)化,為用戶開發(fā)高效的SPM 眾核程序提供編程優(yōu)化指導(dǎo)或者編譯優(yōu)化支持。

        文獻[55]針對SPM 用于多線程應(yīng)用程序時遇到的挑戰(zhàn),提出了協(xié)調(diào)數(shù)據(jù)管理(CDM),這是一個編譯時框架,可以自動識別共享/私有變量,并將這些變量及這些變量的拷貝(如果需要)一起放置到合適的片內(nèi)或片外存儲器中,同時考慮NoC 爭用。另外,還開發(fā)了一個精確的整數(shù)線性規(guī)劃(ILP)公式以及一個迭代的、可伸縮的算法,用于將多線程應(yīng)用程序中的數(shù)據(jù)變量放置在多個核心SPM 上。文獻[56]提出了一個用于優(yōu)化異構(gòu)多核體系結(jié)構(gòu)上SPM 和主存之間的多線程數(shù)據(jù)傳輸?shù)木幾g時框架MSDTM,該框架通過應(yīng)用程序分析和依賴性檢查來確定數(shù)據(jù)傳輸操作的分配,并通過所設(shè)計的性能模型來推導(dǎo)數(shù)據(jù)傳輸?shù)淖罴蚜6取N墨I[57]提出一個名為UniSPM 的框架,使用低開銷的遞歸啟發(fā)式算法來解決NP-hard 的映射問題,為基于NoC 的SPM多核多階段多線程應(yīng)用程序提供統(tǒng)一的線程和數(shù)據(jù)映射框架。文獻[58]針對眾核平臺存儲層次特點提出了一種基于運行支持庫的OpenMP 數(shù)組私有化的編譯優(yōu)化方法,對可重用數(shù)據(jù)進行私有化,充分利用有限的SPM 資源減少DMA 通信,以提升程序執(zhí)行效率。文獻[59]針對“神威·太湖之光”超算系統(tǒng)上支持DMA 的SPM 存儲結(jié)構(gòu),提出了一種基于帶寬感知的OpenCL 程序循環(huán)平鋪方法,對傳統(tǒng)的僅帶寬和僅容量考慮的循環(huán)平鋪方法進行了改進,有效提升了帶寬利用率和SPM 重用。文獻[60]基于SPM提出了一種新的GPU 資源管理方法EXPARS,通過將寄存器文件擴展到SPM 內(nèi)存,通過未被充分利用的SPM 來支持額外的寄存器分配,在邏輯上提供了一個更大的寄存器文件。文獻[61]針對申威眾核處理器核心的SPM 存儲結(jié)構(gòu)特點,開展了基礎(chǔ)函數(shù)庫的內(nèi)存延遲優(yōu)化,提出一種有效的自動數(shù)據(jù)轉(zhuǎn)換方法和一種表查找方法來優(yōu)化基礎(chǔ)函數(shù)庫的訪存延遲。

        3.3 SPM+Cache 混合結(jié)構(gòu)下的全視角優(yōu)化

        相比純Cache 或者純SPM 結(jié)構(gòu)的存儲層次,混合結(jié)構(gòu)具有兩者的優(yōu)勢。原本SPM 結(jié)構(gòu)下最棘手的程序堆??臻g管理問題在混合結(jié)構(gòu)下可以得到很好的緩解——堆??臻g可以直接放在主存,基于Cache 進行緩存。而原本引起嚴重Cache 沖突的數(shù)據(jù)可以優(yōu)先布局進SPM,或者利用DMA 加SPM 緩沖的方式避免數(shù)據(jù)進入Cache。因此,混合結(jié)構(gòu)下存儲層次的優(yōu)化,重點在于如何聯(lián)合Cache 和SPM 開展全視角優(yōu)化以獲得一加一大于二的性能。

        國際上針對混合結(jié)構(gòu)的片上存儲層次優(yōu)化開展了一系列研究。文獻[62]利用DMA 實現(xiàn)SPM 數(shù)據(jù)的動態(tài)換入換出,從而避免了傳統(tǒng)動態(tài)優(yōu)化技術(shù)利用數(shù)據(jù)Cache 實現(xiàn)數(shù)據(jù)搬運可能造成的對數(shù)據(jù)Cache 的污染問題,并利用類似虛擬內(nèi)存管理的思想,將部分動態(tài)申請且頻繁引起數(shù)據(jù)Cache 沖突的堆棧數(shù)據(jù)和堆數(shù)據(jù)的連續(xù)虛地址空間重定位到SPM中獲得系統(tǒng)性能和能耗的收益。文獻[63]研究了6 種不同的SPM 分配算法來優(yōu)化混合SPM 緩存結(jié)構(gòu)的性能或能耗,并通過實驗證明感知Cache 的SPM分配比不感知Cache 的SPM 分配具有更好的性能或能耗的結(jié)論。文獻[4]認為在混合體系結(jié)構(gòu)中可將頻繁使用的數(shù)據(jù)分配給SPM 以進行快速檢索來降低對緩存的訪問頻率,因此可將混合SPM+Cache 的Cache 行更主動地置于低功耗模式,在不顯著降低性能的情況下減少更多的泄漏能量。文獻[57]提出一種編譯器技術(shù)將應(yīng)用程序數(shù)據(jù)對象映射到SPMCache,以整個程序優(yōu)化為目標,根據(jù)SPM 和Cache大小以及應(yīng)用程序的動態(tài)需求進行數(shù)據(jù)分配。文獻[64]提出一種Cache 和SPM 參數(shù)可動態(tài)配置的可重構(gòu)片上統(tǒng)一存儲器(RcfgMem),通過動態(tài)調(diào)整Cache 的關(guān)聯(lián)度和SPM 的容量等片上存儲資源的參數(shù),可以適應(yīng)不同的應(yīng)用程序或同一應(yīng)用程序在不同階段對存儲層次的需求,在不損失系統(tǒng)性能的前提下達到降低系統(tǒng)能耗的目的。文獻[65]通過一種軟硬協(xié)同的方式支持SPM 到主存的映射,實現(xiàn)SPM與主存間的自動隱式數(shù)據(jù)傳輸,減輕用戶顯式調(diào)用DMA 傳遞數(shù)據(jù)的編程負擔(dān),并通過支持重映射和利用SPM 壓縮存儲機制提升SPM 空間的利用率,同時又避免了Cache 結(jié)構(gòu)下訪問TLB 所需的延遲開銷和Cache 不命中開銷。

        4 未來展望

        在眾核體系結(jié)構(gòu)日益復(fù)雜的趨勢下,眾核片上存儲層次的設(shè)計與優(yōu)化使用面臨許多關(guān)鍵技術(shù)挑戰(zhàn),需要開展軟硬件協(xié)同設(shè)計。下文從硬件、軟件和算法3 個層面的未來發(fā)展進行展望:

        1)硬件設(shè)計層面。隨著E 級系統(tǒng)眾核處理器上集成的核心數(shù)量越來越多,片上互連能力越來越復(fù)雜,傳統(tǒng)的多級Cache 或者SPM 將無法滿足新興眾核結(jié)構(gòu)上存儲層次的發(fā)展需求,眾核處理器片上存儲層次會越來越豐富。從存儲層次結(jié)構(gòu)發(fā)展趨勢上來看,Cache 與SPM 混合的結(jié)構(gòu)因其更好的應(yīng)用適應(yīng)性而更可能成為未來眾核片上存儲層次的主流結(jié)構(gòu)。而如何基于片上網(wǎng)絡(luò)實現(xiàn)眾核心間SPM 的數(shù)據(jù)共享、數(shù)據(jù)批量傳輸以及可擴展的Cache 橫向一致性都將是未來片上存儲結(jié)構(gòu)的重要研究方向。總之,面向超大規(guī)模E 級系統(tǒng)的眾核處理器片上存儲層次的設(shè)計需圍繞系統(tǒng)的整體設(shè)計目標開展,未來非常有必要針對大量目標應(yīng)用場景進行數(shù)據(jù)訪問特征分析,并結(jié)合片外內(nèi)存訪問帶寬、片上網(wǎng)絡(luò)結(jié)構(gòu)、片上可用面積、整體功耗控制等條件開展平衡設(shè)計。

        2)軟件設(shè)計層面。從編譯優(yōu)化角度來看,可以對應(yīng)用程序核心數(shù)據(jù)容量、數(shù)據(jù)訪問粒度和重用情況開展分析,并建立好的訪存收益評估模型,為數(shù)據(jù)分配合理的實際地址空間(SPM 或者主存)以及為主存數(shù)據(jù)訪問選擇高效的傳輸方式(DMA、RMA、Cache 模式);在編程語言設(shè)計角度,可以為專家級用戶提供顯式的存儲層次描述手段,方便用戶直接控制核心數(shù)據(jù)的布局與傳輸,或者指導(dǎo)編譯器開展相應(yīng)的編譯優(yōu)化與程序變換工作,從而提升眾核片上存儲層次的易編程性與高效性;在編程框架設(shè)計角度,可以針對領(lǐng)域應(yīng)用特征,開發(fā)多平臺統(tǒng)一的編程框架接口,底層針對不同的眾核處理器片上存儲層次特點,開展具體的優(yōu)化實現(xiàn),從而提升應(yīng)用面向不同片上存儲結(jié)構(gòu)的性能可移植性;在運行時支撐庫的角度,應(yīng)該針對目標平臺的存儲層次特點開展領(lǐng)域典型算子庫的設(shè)計與實現(xiàn),為應(yīng)用程序開發(fā)提供平臺相關(guān)的高效API 接口支撐。

        3)算法與程序設(shè)計層面。就HPC 用戶層面而言,需要針對具體的目標平臺上的存儲層次特點,結(jié)合應(yīng)用核心運算特征,開展高效的眾核并行算法模型設(shè)計。并行算法模型需要根據(jù)應(yīng)用的核心任務(wù)數(shù)據(jù)量和訪問特征研究線程間無關(guān)并行、線程間流水并行、基于共享內(nèi)存或片上通信的多線程協(xié)同并行、主從異步并行等方式,再基于具體的并行模式開展數(shù)據(jù)布局與傳輸方案設(shè)計。而應(yīng)用程序級的優(yōu)化則需要結(jié)合目標平臺眾核片上存儲層次的具體特點,比如SPM 的容量大小、共享范圍、訪問帶寬和延時,再進一步結(jié)合程序核心循環(huán)的數(shù)據(jù)訪問方式、數(shù)據(jù)量等開展數(shù)據(jù)布局優(yōu)化、SPM 數(shù)據(jù)重用優(yōu)化、批量數(shù)據(jù)傳輸優(yōu)化、基于SPM 緩沖的數(shù)據(jù)傳輸與計算重疊優(yōu)化等,從而使應(yīng)用程序能夠更好地發(fā)揮出存儲層次的優(yōu)勢,提升應(yīng)用效率。

        5 結(jié)束語

        本文闡述了3 類常見的片上存儲結(jié)構(gòu)及特點,分析了國際主流GPU、同構(gòu)眾核及國產(chǎn)眾核等面向主流E 級超算系統(tǒng)的眾核處理器片上存儲層次設(shè)計現(xiàn)狀與發(fā)展趨勢,并總結(jié)了國際上的存儲層次設(shè)計與優(yōu)化相關(guān)軟硬件技術(shù)的研究現(xiàn)狀。后續(xù)將針對具體的應(yīng)用領(lǐng)域,對應(yīng)用獲得的性能與片上存儲結(jié)構(gòu)類型及各種結(jié)構(gòu)參數(shù)的定量關(guān)系方面開展研究,從而為眾核片上存儲層次的軟硬件設(shè)計給出更具體的參考依據(jù)。

        猜你喜歡
        處理器一致性架構(gòu)
        基于FPGA的RNN硬件加速架構(gòu)
        關(guān)注減污降碳協(xié)同的一致性和整體性
        公民與法治(2022年5期)2022-07-29 00:47:28
        注重教、學(xué)、評一致性 提高一輪復(fù)習(xí)效率
        IOl-master 700和Pentacam測量Kappa角一致性分析
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
        基于事件觸發(fā)的多智能體輸入飽和一致性控制
        一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
        Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
        ADI推出新一代SigmaDSP處理器
        汽車零部件(2014年1期)2014-09-21 11:41:11
        97人伦色伦成人免费视频| 国产一品二品三品精品在线| 一区二区三区国产在线视频| 亚洲熟女精品中文字幕| 国产激情无码一区二区三区| 三上悠亚久久精品| 麻豆成人在线视频| 国产真人性做爰久久网站| 天天躁日日躁狠狠躁人妻 | 国内精品熟女一区二区| 经典黄色一区二区三区| 免费视频无打码一区二区三区| 国产精品免费无遮挡无码永久视频| 少妇人妻大乳在线视频不卡| 一区二区传媒有限公司| 中文字幕精品一二三区| 一区二区日本影院在线观看| 国产中文字幕免费视频一区| 亚洲综合另类小说色区| 午夜精品久久久久久毛片| 99热久久这里只精品国产www| 四虎国产精品视频免费看| 超碰性爱| 在线观看av不卡 一区二区三区| 麻豆69视频在线观看| 国产专区一线二线三线码| 色狠狠av老熟女| 人妻丰满熟妇av无码区hd| 国产精品农村妇女一区二区三区| 三级日本理论在线观看| 亚洲av综合一区二区在线观看| 亚洲av无码片在线观看| 中文字幕精品久久天堂一区| 国产特黄1区2区3区4区| 人妻精品在线手机观看| 国产呦系列呦交| 国产精品久久久久尤物| 毛片av在线尤物一区二区| 一本之道日本熟妇人妻| 国产肉体xxxx裸体784大胆| 日本做受高潮好舒服视频|