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

        ?

        異構(gòu)計算并行編程模型綜述

        2021-09-11 01:38:30鄔江興祁曉峰高彥釗
        上海航天 2021年4期
        關(guān)鍵詞:異構(gòu)編程文獻(xiàn)

        鄔江興,祁曉峰,高彥釗

        (中國人民解放軍戰(zhàn)略支援部隊信息工程大學(xué)信息技術(shù)研究所,河南鄭州 450000)

        0 引言

        科研工程等領(lǐng)域的應(yīng)用對計算能力(簡稱算力)的需求越來越大。例如在深度學(xué)習(xí)模型中,計算系統(tǒng)處理的計算任務(wù)呈現(xiàn)出網(wǎng)絡(luò)規(guī)模龐大、問題復(fù)雜、需求多樣等特征?;仡櫸⑻幚砥靼l(fā)展歷史,如圖1 所示,在20 世紀(jì)80 年代,通過指令集、編譯優(yōu)化、超標(biāo)量、多級緩存推動了計算性能的提升;90 年代,通過提高時鐘頻率,使計算系統(tǒng)的單線程性能提升,但功耗隨之增加;21 世紀(jì)以來,對多核并行計算的研究逐漸增多,直至當(dāng)前,摩爾定律逐漸失效。JOHN 等[1]在ISCA 2018 中指出,單核處理器性能提升的幅度已經(jīng)縮小至每年只增加3%,高性能計算需要計算體系結(jié)構(gòu)的創(chuàng)新。

        圖1 48 年微處理器發(fā)展趨勢[2]Fig.1 48 years of microprocessor trend data[2]

        計算體系結(jié)構(gòu)創(chuàng)新的內(nèi)涵有兩個方面:其一是規(guī)模,即由單核轉(zhuǎn)向多核并行計算。傳統(tǒng)的高性能計算研究聚焦在單核性能上,當(dāng)前則是依靠多核集群,集中分布式算力,通過規(guī)?;?yīng)提升算力。其二是架構(gòu),如中央處理器(Center Process Unit,CPU)、圖像處理器(Graph Process Unit,GPU)和可編程門陣列(Field Program Gate Array,F(xiàn)PGA)等計算器件均有各自擅長的處理領(lǐng)域,按照一定組織方式組成多核異構(gòu)的系統(tǒng)。每種計算器件有各自計算存儲模型,不同計算器件的組合使得系統(tǒng)具有異構(gòu)性。目前,混合兩種及兩種以上計算器件的多核異構(gòu)芯片、系統(tǒng)、集群都已經(jīng)出現(xiàn)。研究人員試圖組合不同的計算器件,從性能、功耗等方面的需求出發(fā),通過新型計算體系架構(gòu)將硬件性能發(fā)揮到極致。

        異構(gòu)計算器件組合可以滿足多樣化的計算任務(wù)需求。但是,器件集成在同一系統(tǒng)并不意味著算力相加。如圖2 所示異構(gòu)系統(tǒng)中,包含不同計算器件,但是各個計算器件的計算、存儲和連接等均有獨(dú)立標(biāo)準(zhǔn),異構(gòu)器件之間的任務(wù)劃分、調(diào)度、通信、存儲、同步等機(jī)制的不同為系統(tǒng)管理帶來新的問題。若不解決這些問題,異構(gòu)系統(tǒng)難以發(fā)揮其理論上的性能和能耗優(yōu)勢,異構(gòu)特征反而會成為系統(tǒng)負(fù)擔(dān)。

        圖2 異構(gòu)計算系統(tǒng)抽象表示Fig.2 Abstraction architecture of heterogeneous computing system

        解決該問題的難度體現(xiàn)在開發(fā)者既要具備豐富的硬件架構(gòu)知識,又要熟悉各種軟件優(yōu)化方法。對開發(fā)者而言,易用的軟硬件協(xié)同編程工具和自動優(yōu)化功能是異構(gòu)計算編程追求的目標(biāo)。因此,對異構(gòu)并行編程模型及運(yùn)行優(yōu)化的研究是異構(gòu)并行系統(tǒng)研究的重要內(nèi)容。本文回顧和梳理異構(gòu)系統(tǒng)并行編程最新成果,介紹了代表性異構(gòu)編程模型,研究了異構(gòu)編程模型優(yōu)化方法,討論了異構(gòu)并行計算的關(guān)鍵問題,最后對異構(gòu)計算體系架構(gòu)的研究方向進(jìn)行總結(jié)。

        1 異構(gòu)并行編程模型

        異構(gòu)并行編程模型把底層硬件抽象表示,提供統(tǒng)一編程接口,解決異構(gòu)系統(tǒng)并行計算、存儲、通信等一系列問題。文獻(xiàn)[3]介紹了主流的異構(gòu)并行編程模型,例如,OpenCL[4]、CUDA[5]等。早期編程模型接口相對低級,開發(fā)者需大量手工操作實現(xiàn)細(xì)節(jié)優(yōu)化,這不僅增加編程難度導(dǎo)致較低開發(fā)效率,也會導(dǎo)致適用性差、易出錯等問題。文獻(xiàn)[6]總結(jié)了各種異構(gòu)系統(tǒng)編程模型的接口分類,補(bǔ)充許多實驗室異構(gòu)編程模型項目,例如,Merge[7]、C++AMP[8]、Lime[9]、Copperhead[10]、Grag[11]等。這些編程模型的出現(xiàn)一定程度上克服了CUDA、OpenCL等編程模型的缺點(diǎn)。

        分析現(xiàn)有異構(gòu)并行編程模型優(yōu)化研究,可分為兩種:一種從硬件底層優(yōu)化出發(fā),針對特定異構(gòu)架構(gòu)設(shè)計編程模型;另一種是基于現(xiàn)有編程框架改進(jìn)或擴(kuò)展,通過封裝編程接口降低編程難度,提高現(xiàn)有異構(gòu)編程框架的可用性。

        1.1 顯式異構(gòu)編程模型

        多數(shù)異構(gòu)編程模型針對特定架構(gòu),例如CPU+GPGPU 的架構(gòu)。異構(gòu)系統(tǒng)處理任務(wù)劃分、調(diào)度、通信、同步等問題,對應(yīng)大量的編程接口。異構(gòu)編程模型以顯式編程形式實現(xiàn)異構(gòu)系統(tǒng)優(yōu)化,代表性的編程模型有OpenCL、CUDA。它們采用Host/Device 的分工形式,Host運(yùn)行CPU的控制代碼,Device 運(yùn)行加速設(shè)備的代碼,如圖3 和圖4所示。

        圖3 OpenCL 編程模型Fig.3 OpenCL programming model

        圖4 CUDA 編程模型Fig.4 CUDA programming model

        CUDA 和OpenCL 的編程接口偏底層,因此,其對開發(fā)能力要求高,并且對并行程序的分析和驗證比較困難。因此,對顯式編程模型的優(yōu)化研究是將復(fù)雜的編程接口簡化,構(gòu)建結(jié)構(gòu)化的編程框架。例如,文獻(xiàn)[12]使用腳本語言和OpenCL設(shè)計結(jié)構(gòu)化的并行編程框架,通過腳本調(diào)用OpenCL 接口控制任務(wù)。文獻(xiàn)[13]提出一種結(jié)合OpenCL 和CUDA 的接口庫HCLOOC,解決計算核心和多核通用CPU 之間通信鏈路有限帶寬的約束問題。HCLOOC 庫包含調(diào)用各類計算硬件的基本模塊,支持OpenCL 命令隊列、任務(wù)卸載、復(fù)制和執(zhí)行CUDA 流等功能。

        1.2 制導(dǎo)式編程模型

        制導(dǎo)式編程模型(pragma)方法在源代碼上以注釋的形式,告訴編譯器并行代碼區(qū)域的位置,如何在代碼的不同部分訪問變量以及如何在同步點(diǎn)執(zhí)行。編譯器根據(jù)制導(dǎo)語句生成代碼、執(zhí)行代碼段、傳輸數(shù)據(jù)和執(zhí)行同步操作。生成代碼通過調(diào)用運(yùn)行時系統(tǒng)管理硬件資源以及跨不同內(nèi)存層級傳輸數(shù)據(jù)。代表性的制導(dǎo)式異構(gòu)編程模型包括OpenACC[14]、OpenMP[15]、OpenHMPP[16]等。

        對制導(dǎo)式異構(gòu)編程模型研究主要是基于內(nèi)存的優(yōu)化。例如,文獻(xiàn)[17]提出了一個基于OpenMP開發(fā)的工具包HyCOMP,工具包模擬分布式CPU和GPU 上的虛擬共享內(nèi)存空間,分布式共享內(nèi)存系統(tǒng)可以有效防止GPU 在處理主機(jī)到設(shè)備內(nèi)存拷貝過程中,因大量頁錯誤而導(dǎo)致的性能下降。制導(dǎo)式異構(gòu)編程模型簡化了異構(gòu)并行編程的難度,并對優(yōu)化異構(gòu)系統(tǒng)性能起到顯著作用。

        2 異構(gòu)編程模型的優(yōu)化

        2.1 異構(gòu)編程中間表示

        在生成執(zhí)行機(jī)器碼過程中,運(yùn)行時系統(tǒng)優(yōu)化代碼操作能夠有效提高系統(tǒng)性能,即中間表示(Intermediate Representation,IR)技術(shù)。HAS[18]、ROCm[19]、CUDAPTX[5]、SPIR[20]等都是專門為異構(gòu)體系結(jié)構(gòu)設(shè)計的IR。

        HSA 是由HSA 基金會開發(fā)的異構(gòu)體系結(jié)構(gòu)規(guī)范,HSA 定義了中間語言HSAIL(HSA Intermediate Language),包括對異常、虛擬函數(shù)和系統(tǒng)的調(diào)用。AMD 基于HSA 和HSAIL 開發(fā)了ROCm,針對OpenCL 和CUDA程序進(jìn)行編譯。CUDA PTX 是NVIDIA 為CUDA 程序開發(fā)的中間表示。CUDA編譯器將CUDA 代碼轉(zhuǎn)換為PTX IR,但僅適用于NVIDIA 系列的GPU。SPIR 是一種基于LLVMIR 的二進(jìn)制中間語言,用于圖形計算和內(nèi)核計算。LLVM 可以作為多種語言編譯器的后臺來使用,將代碼編譯成多種不同硬件架構(gòu)的指令集。

        2.2 異構(gòu)編程語言接口

        開發(fā)者希望使用易于理解的高級語言實現(xiàn)抽象編程語言到底層框架的映射,多數(shù)研究以此為目標(biāo)優(yōu)化異構(gòu)編程框架。異構(gòu)編程語言可分為非托管式的和托管式的。

        非托管編程語言指可以直接處理內(nèi)存的編程語言。并行編程框架采用非托管式語言,因為它能為系統(tǒng)提供更高性能。文獻(xiàn)[21-25]使用類C 語言,設(shè)計高層級統(tǒng)一的并行編程架構(gòu)。通過源到源的編譯器,將類C 語言轉(zhuǎn)成CUDA 或OpenCL 代碼,實現(xiàn)不同規(guī)模的異構(gòu)底層映射。使用非托管式編程語言的特點(diǎn)是所有規(guī)則、語法、執(zhí)行模型和內(nèi)存模型都是能夠通過編程語言定義。但是非托管語言的抽象級別相對較低,需要程序員具備更多的軟硬件開發(fā)專業(yè)知識。

        托管式編程語言是指內(nèi)存可由運(yùn)行時系統(tǒng)自動管理的編程語言。托管式編程語言實現(xiàn)內(nèi)存自動管理,依賴于高效的語言虛擬機(jī)、解釋器和編譯器執(zhí)行。文獻(xiàn)[26-28]基于Java 語言設(shè)計異構(gòu)并行計算編程架構(gòu),以高級抽象的方式管理硬件資源,并在內(nèi)部運(yùn)行時系統(tǒng)進(jìn)行中間優(yōu)化操作。文獻(xiàn)[14]提供Python 封裝接口,使用PyOpenCL 調(diào)用接口。文獻(xiàn)[29]設(shè)計高級語言O(shè)ccanpi,用于異構(gòu)粗粒度硬件構(gòu)建、編譯和生成機(jī)器碼,解決異構(gòu)可重構(gòu)平臺的可訪問性問題。盡管托管編程語言簡化了開發(fā)過程,但抽象程度越高,平臺性能優(yōu)化越困難。例如在Java 中,所有數(shù)組都從Java 端復(fù)制到JNI(Java Native Interface)端。JNI 需要為所有數(shù)組創(chuàng)建額外副本。因此,應(yīng)用程序的性能將低于用非托管語言實現(xiàn)的應(yīng)用程序性能。

        2.3 融合的并行編程模型

        異構(gòu)計算的規(guī)模不僅限于芯片,還擴(kuò)展到異構(gòu)計算集群。大規(guī)模異構(gòu)計算集群對計算節(jié)點(diǎn)的并行性能要求增加,系統(tǒng)往往具有更為復(fù)雜的并行層次和內(nèi)存層級。文獻(xiàn)[30]使用多核控制器管理異構(gòu)設(shè)備,可跨不同計算硬件類型移植通用內(nèi)核,簡化數(shù)據(jù)分區(qū)和映射。運(yùn)行時系統(tǒng)自動為每個設(shè)備選擇和部署合適的內(nèi)核,管理數(shù)據(jù)移動并隱藏啟動細(xì)節(jié)。

        高度并行異構(gòu)系統(tǒng)需要處理好粗粒度并行和細(xì)粒度并行?;旌洗至6群图?xì)粒度并行的編程框架,通常為MPI+X 的多層結(jié)構(gòu)。文獻(xiàn)[31]設(shè)計一種通用、混合和優(yōu)化稀疏的工具包,按照MPI+X 的范式,為多核計算器件提供內(nèi)核和資源管理。文獻(xiàn)[32-35]均采用MPI+OpenMP+CUDA(MOC)混合并行編程模型,通過基于節(jié)點(diǎn)間(粗粒度)和節(jié)點(diǎn)內(nèi)(細(xì)粒度)的并行處理架構(gòu)實現(xiàn)CPU 和GPU 協(xié)作的大規(guī)模異構(gòu)并行計算。文獻(xiàn)[36-37]則是提出MPI+OpenMP+OpenCL 的并行化方法,增強(qiáng)異構(gòu)系統(tǒng)的數(shù)據(jù)可移植性。

        2.4 虛擬化異構(gòu)編程模型

        盡管MOC 范式的融合異構(gòu)并行編程框架具有良好的性能和能效,但是其編程復(fù)雜度較高。文獻(xiàn)[38]提出了一種基于異構(gòu)集群的分布式虛擬機(jī)。虛擬機(jī)實際是一個分布式系統(tǒng),將混合的CPU 和GPU 看作單一的大規(guī)模GPU 集群,只需要使用CUDA 開發(fā)應(yīng)用程序,而不需要將MPI 和多線程API 結(jié)合起來。以虛擬化的方式消除異構(gòu)系統(tǒng)開發(fā)、設(shè)備內(nèi)存空間和線程配置的復(fù)雜性,可以實現(xiàn)自動化處理異構(gòu)處理器間負(fù)載均衡、設(shè)備內(nèi)存和線程的配置約束問題。

        2.5 小結(jié)

        本章詳細(xì)介紹了異構(gòu)并行編程優(yōu)化的最新研究成果,優(yōu)化目標(biāo)從編程難度、計算性能、并行規(guī)模3 個維度出發(fā),對異構(gòu)架構(gòu)并行編程的技術(shù)挑戰(zhàn)提出部分解決方案。實際上,一個異構(gòu)并行編程框架難以同時具備編程難度低、計算性能高和異構(gòu)規(guī)模大這3 個特點(diǎn),只能滿足三取其二。這種特征構(gòu)成了異構(gòu)并行編程優(yōu)化的“不可能三角”,如圖5所示。

        圖5 異構(gòu)并行系統(tǒng)“不可能三角”Fig.5 Impossible trinity of heterogeneous parallel system

        這個“不可能三角”的3 個頂點(diǎn)分別是編程難度低、計算性能高、并行規(guī)模大,即異構(gòu)并行編程模型優(yōu)化的3 個目標(biāo)。然而這3 個目標(biāo)最多只能做到2 個。例如,如果追求編程模型易上手,通過少量代碼或指令實現(xiàn)異構(gòu)編程,同時保證系統(tǒng)具有高度并行和計算能力。這種情況下就需要高度封裝的編程語言接口或者中間表示優(yōu)化,從而犧牲編程靈活性,因此,難以在大規(guī)模異構(gòu)系統(tǒng)上實現(xiàn)。另外兩種情況也類似。如果想要計算性能高,同時異構(gòu)規(guī)模大,那就需要多層級存儲和混合顆粒度的并行編程框架,這將增加系統(tǒng)編程的復(fù)雜度;如果想要編程難度低,并且異構(gòu)規(guī)模大,那么目前的方法就是采用虛擬化的方式,犧牲一定系統(tǒng)性能,從而實現(xiàn)大規(guī)模異構(gòu)計算資源的統(tǒng)一管理。因此,在進(jìn)行異構(gòu)編程模型優(yōu)化時,核心是兩個方面:

        1)對開發(fā)者來說,只有異構(gòu)編程模型的編程復(fù)雜度是可控的,因此,開發(fā)或優(yōu)化新型異構(gòu)編程模型應(yīng)由實際需求驅(qū)動。

        2)在當(dāng)前研究框架下,由于優(yōu)化目標(biāo)相互限制,還未出現(xiàn)完美的異構(gòu)編程框架,理想的研究方向應(yīng)是如何避免這個三元悖論或者將3 個優(yōu)化目標(biāo)進(jìn)行折解。

        3 異構(gòu)并行計算關(guān)鍵問題

        提高資源利用率和減少通信開銷是異構(gòu)計算研究的關(guān)鍵問題。為充分提高資源利用率,需要考慮并行任務(wù)使用哪些硬件計算資源;在不同的計算器件上,任務(wù)處理速度和效率不同,系統(tǒng)性能很大程度上受調(diào)度方案的影響,合理的負(fù)載均衡策略、服務(wù)質(zhì)量管理都可以提高資源利用率。異構(gòu)系統(tǒng)各類計算器件的傳輸、存儲方式不同,合理的數(shù)據(jù)存儲結(jié)構(gòu)能夠節(jié)省大量的數(shù)據(jù)讀取時間;數(shù)據(jù)傳輸時可以通過疊加或流水等方式將計算或存儲操作隱藏。此外,對系統(tǒng)性能的評估也需要靈活的評估方法和工具,綜合考慮系統(tǒng)通信、能耗、可靠性以及其他技術(shù)指標(biāo)的平衡。下面分別介紹異構(gòu)系統(tǒng)任務(wù)調(diào)度映射、負(fù)載均衡、服務(wù)質(zhì)量、存儲優(yōu)化、傳輸優(yōu)化、通信隱藏、性能評估等方面的最新研究成果。

        3.1 提高資源利用率

        3.1.1 調(diào)度映射

        同一計算任務(wù)在不同的硬件節(jié)點(diǎn)中執(zhí)行,在性能功耗等方面各有所長,因此,異構(gòu)系統(tǒng)需要將任務(wù)分配給合適的計算設(shè)備。

        調(diào)度映射方式可分為靜態(tài)和動態(tài)。靜態(tài)調(diào)度方法利用系統(tǒng)約束和任務(wù)屬性,將問題轉(zhuǎn)化為多約束條件下的求最優(yōu)解問題。求解方法分為線性規(guī)劃方法和啟發(fā)式方法。規(guī)劃求解策略根據(jù)系統(tǒng)的多約束條件通過線性規(guī)劃等方式求最優(yōu)解。例如,文獻(xiàn)[39]用線性規(guī)劃方法,根據(jù)處理器類型和時間表約束進(jìn)行任務(wù)調(diào)度,最小化通信延遲和能耗。啟發(fā)式方法的核心是評價函數(shù),以評價函數(shù)為標(biāo)準(zhǔn)通過不斷迭代找到最優(yōu)解。例如,文獻(xiàn)[40]提出了混合雙目標(biāo)并行遺傳算法,采用加權(quán)求和的方法,根據(jù)用戶的偏好平衡能耗和執(zhí)行時間。文獻(xiàn)[41]基于搜索的調(diào)度算法,通過剪枝技術(shù)縮小搜索空間,通過啟發(fā)式函數(shù)指導(dǎo)最優(yōu)解搜索。文獻(xiàn)[42]使用混合的元啟發(fā)式集合方法,尋找異構(gòu)系統(tǒng)的最優(yōu)帕累托映射方案,同時優(yōu)化執(zhí)行時間和能耗。

        動態(tài)調(diào)度方法通過感知系統(tǒng)能耗,動態(tài)實時調(diào)度子任務(wù)。文獻(xiàn)[43]把能耗感知作為大規(guī)模異構(gòu)計算環(huán)境中并行調(diào)度策略的重要參考依據(jù),將不同并行層級任務(wù)映射到目標(biāo)計算平臺。文獻(xiàn)[44-45]將動態(tài)電壓頻率標(biāo)度和動態(tài)功率管理等系統(tǒng)參數(shù)量化,基于多目標(biāo)全局優(yōu)化元啟發(fā)式算法,研究能耗感知和融合能效感知的調(diào)度模型。文獻(xiàn)[46-47]在異構(gòu)系統(tǒng)中,采用啟發(fā)式的電源感知和能效調(diào)度算法,近似求解最小化動態(tài)能耗開銷的調(diào)度策略。

        3.1.2 負(fù)載均衡

        負(fù)載均衡主要用于工作負(fù)載分配,通常以能耗感知的方式調(diào)整計算資源的使用,平衡計算能耗。

        1)將特定異構(gòu)模型和任務(wù)調(diào)度聯(lián)合優(yōu)化。文獻(xiàn)[48-49]基于CPU 和Intel-MIC 結(jié)構(gòu)提出工作負(fù)載分配方法,解決計算器件間的負(fù)載平衡問題。文獻(xiàn)[50]采用聚合計算,改善CPU 和加速器之間的負(fù)載平衡。文獻(xiàn)[51-52]通過基于貪婪策略的異構(gòu)動態(tài)調(diào)度器實現(xiàn)負(fù)載均衡。文獻(xiàn)[53]設(shè)計了雙層工作負(fù)載分配方案,為每個計算節(jié)點(diǎn)分配最合適的工作負(fù)載,并在每個節(jié)點(diǎn)內(nèi)合理劃分CPU 和GPU 之間的工作負(fù)載。文獻(xiàn)[54]采用基于FPM 的異構(gòu)分解方法在異構(gòu)處理設(shè)備之間分配工作負(fù)載。

        2)依據(jù)系統(tǒng)能耗的動態(tài)反饋結(jié)果實現(xiàn)運(yùn)行時的負(fù)載均衡。例如,文獻(xiàn)[55]通過工作負(fù)載劃分算法確定負(fù)載分布,最小化應(yīng)用并行執(zhí)行的能耗。文獻(xiàn)[56]將性能和能耗作為工作負(fù)載函數(shù)的參數(shù),評估并行平臺的資源競爭,返回任務(wù)劃分的帕累托最優(yōu)解。文獻(xiàn)[57]使用CMT-bone 工具進(jìn)行異構(gòu)架構(gòu)的負(fù)載均衡,平衡優(yōu)化性能和能耗。

        此外,針對大規(guī)模異構(gòu)集群,文獻(xiàn)[58]研究了MOC 結(jié)構(gòu)異構(gòu)環(huán)境下,生成可執(zhí)行程序時自動分配計算負(fù)載的方法。

        3.1.3 服務(wù)質(zhì)量

        由于并行任務(wù)在線程同步、數(shù)據(jù)共享和并行化模式的多樣性,管理執(zhí)行性能要求不同的并行任務(wù)是一個復(fù)雜的問題。在資源有限的異構(gòu)計算系統(tǒng)上并行執(zhí)行任務(wù),為不同任務(wù)定義不同的優(yōu)先級,對異構(gòu)系統(tǒng)的任務(wù)映射和資源管理具有重要意義。文獻(xiàn)[59]研究異構(gòu)系統(tǒng)上的并行任務(wù)服務(wù)質(zhì)量管理方式,通過分析一系列任務(wù)映射策略對應(yīng)用程序性能的影響,認(rèn)為在異構(gòu)硬件上的有效的服務(wù)質(zhì)量管理策略能提高任務(wù)映射策略的性能,同時保持了系統(tǒng)優(yōu)化目標(biāo)的平衡。

        3.2 減少通信開銷

        3.2.1 數(shù)據(jù)存儲

        異構(gòu)體系結(jié)構(gòu)中的共享末級緩存(Last Level Cache,LLC)對系統(tǒng)的整體性能至關(guān)重要,當(dāng)與CPU 應(yīng)用程序協(xié)同運(yùn)行時,GPU 應(yīng)用程序很容易占據(jù)LLC 的大部分,使得CPU 資源嚴(yán)重匱乏,針對異構(gòu)體系共享LLC 的設(shè)計和管理,文獻(xiàn)[60]將傳統(tǒng)的SRAM 與新的存儲器技術(shù)STT-RAM 相結(jié)合來擴(kuò)展共享LLC,并通過綜合管理策略減少計算器件間的資源爭用。

        3.2.2 數(shù)據(jù)傳輸

        異構(gòu)系統(tǒng)計算器件上的數(shù)據(jù)需要頻繁交互。一方面,主節(jié)點(diǎn)與設(shè)備節(jié)點(diǎn)進(jìn)行同步,會對系統(tǒng)帶來額外的開銷。文獻(xiàn)[61]提出優(yōu)化消息傳遞模型MEMPHA 減少異構(gòu)器件之間的擁塞,縮短總通信量。文獻(xiàn)[62-63]設(shè)計并行算法,通過GPU 排序隊列減少通信開銷。另一方面,數(shù)據(jù)傳輸過程的接口協(xié)議需要相互轉(zhuǎn)換。針對數(shù)據(jù)轉(zhuǎn)換,文獻(xiàn)[64]提出一種動態(tài)二進(jìn)制轉(zhuǎn)換任務(wù)遷移方法,減少因數(shù)據(jù)轉(zhuǎn)換造成的開銷。

        3.2.3 通信隱藏

        異構(gòu)規(guī)模的增加使通信延遲成為性能瓶頸。為減少通信延遲,文獻(xiàn)[65]采用空間域分解和射線并行相結(jié)合的方法進(jìn)行異構(gòu)并行計算,使MPI 通信時間與GPU 上的傳輸掃描時間重疊,隱藏GPU 與CPU 之間的通信和數(shù)據(jù)傳輸時間。文獻(xiàn)[66]通過性能分析模型識別性能影響因素,實現(xiàn)數(shù)據(jù)計算與數(shù)據(jù)傳遞操作相互重疊。文獻(xiàn)[67]提出流水線混合并行的優(yōu)化方法,加速GPU 之間的流水線混合并行,減少通信延遲和內(nèi)存使用頻率。

        3.3 性能評估

        異構(gòu)系統(tǒng)還包括對計算和通信行為的性能評估模型的研究。文獻(xiàn)[68-69]設(shè)計形式化的通信性能的表達(dá)方式,用于評估通信代價、最小化通信開銷。文獻(xiàn)[70]提出一種精確通信成本評估函數(shù),用于在執(zhí)行數(shù)據(jù)并行應(yīng)用程序的過程中,評估混合平臺中計算存儲數(shù)據(jù)移動的通信時間。異構(gòu)系統(tǒng)優(yōu)化的另一個目標(biāo)是準(zhǔn)確估計不同計算器件的能耗。文獻(xiàn)[71]采用系統(tǒng)級功率測量表估計應(yīng)用組件級能耗。對于安全性要求高的并行應(yīng)用,必須滿足可靠性目標(biāo)的同時最小化成本。文獻(xiàn)[72]針對異構(gòu)嵌入式系統(tǒng)上并行計算的資源消耗成本最小化問題,將應(yīng)用程序的可靠性目標(biāo)轉(zhuǎn)化為每個任務(wù)的可靠性目標(biāo)并分配給處理器,以啟發(fā)式的方法最小化能耗。

        3.4 小結(jié)

        本章詳細(xì)介紹了異構(gòu)并行計算在提高資源利用率,減少通信開銷以及系統(tǒng)性能評估等方面的最新研究成果。相比于傳統(tǒng)并行編程模型的計算方法,異構(gòu)模型增加了系統(tǒng)的計算復(fù)雜度,這種計算復(fù)雜度主要體現(xiàn)在三個方面:

        1)任務(wù)的編譯不僅面向CPU,還要映射到GPU、FPGA 等含有局部存儲結(jié)構(gòu)的加速器件上。編譯過程增加了任務(wù)劃分、映射、負(fù)載和執(zhí)行優(yōu)先級等工作,直接增加系統(tǒng)計算負(fù)擔(dān)。

        2)異構(gòu)器件的存儲和傳輸成為新的性能瓶頸,根據(jù)計算任務(wù)不同,系統(tǒng)應(yīng)支持以靈活的方式改變存儲結(jié)構(gòu)及通信傳輸方式實現(xiàn)性能優(yōu)化。

        3)異構(gòu)特性使系統(tǒng)在評估性能時的可選指標(biāo)更加多元化,因此,應(yīng)支持根據(jù)實際需求或應(yīng)用場景的變化,可靈活定義異構(gòu)系統(tǒng)內(nèi)部結(jié)構(gòu)及其評價標(biāo)準(zhǔn)。

        從以上特點(diǎn)可以看出,當(dāng)前異構(gòu)并行計算優(yōu)化方法主要繼承傳統(tǒng)并行計算優(yōu)化中的任務(wù)映射、分級存儲和并行流水等策略,在策略的生成過程中人工干預(yù)較多,系統(tǒng)缺乏主動認(rèn)知和自主決策的能力,并且明顯缺點(diǎn)是各類計算優(yōu)化只針對特定體系結(jié)構(gòu)的異構(gòu)系統(tǒng)。從研究趨勢以及研究需求上看,未來計算體系結(jié)構(gòu)的特點(diǎn)應(yīng)具備“應(yīng)用決定結(jié)構(gòu)”的主動認(rèn)知的動態(tài)重構(gòu)過程,因此,對靈活可變特征的異構(gòu)體系結(jié)構(gòu)模型有待進(jìn)一步研究。

        4 結(jié)束語

        本文回顧了主流異構(gòu)并行編程模型及研究進(jìn)展,針對異構(gòu)并行計算關(guān)鍵問題進(jìn)行討論。前文已經(jīng)指出異構(gòu)并行計算架構(gòu)系統(tǒng)的三元悖論對開發(fā)者來說一直都是挑戰(zhàn),隨著計算器件多樣化,支持軟件定義的異構(gòu)融合模型軟件工具鏈內(nèi)涵仍需不斷擴(kuò)展和完善。2008 年,鄔江興院士根據(jù)“結(jié)構(gòu)決定功能、結(jié)構(gòu)決定性能、結(jié)構(gòu)決定效能”的公理,提出擬態(tài)計算(Mimic Structure Calculation,MSC)架構(gòu)。擬態(tài)計算是在異構(gòu)計算的基礎(chǔ)上實現(xiàn)基于主動認(rèn)知的多維環(huán)境動態(tài)重構(gòu),實時感知計算任務(wù)關(guān)于時間的負(fù)載分布和能耗狀況,調(diào)度合適的軟硬件功能模塊,協(xié)同完成計算任務(wù)以擬合期望的能效曲線。結(jié)合擬態(tài)計算的思想,理想的異構(gòu)編程模型應(yīng)具備融合多類計算資源、結(jié)構(gòu)的主動感知和動態(tài)重構(gòu)的特征。異構(gòu)融合的編程模型能夠提供靈活的底層資源的抽象,通過軟件定義形式實現(xiàn)多模態(tài)計算模型。結(jié)合研究團(tuán)隊在擬態(tài)計算和高效能計算方面的積累,對新型異構(gòu)體系架構(gòu)的研究有以下幾個方向:

        1)軟件定義互連。異構(gòu)內(nèi)涵不斷豐富,未來的網(wǎng)絡(luò)體系包含多種異構(gòu)計算資源,存儲資源和相互間的各種網(wǎng)絡(luò)連接資源。軟件定義互連基于可重構(gòu)和可編程技術(shù),具有可擴(kuò)展的硬件/軟件架構(gòu),允許應(yīng)用程序?qū)τ布M(jìn)行在線定義,動態(tài)更改交換互連的功能、性能,實現(xiàn)對不同應(yīng)用場景的最佳擬合適配。軟件定義互連將是針對未來多樣化需要的新型網(wǎng)絡(luò)技術(shù),是交換與互連技術(shù)及產(chǎn)業(yè)的未來演進(jìn)形態(tài),其發(fā)展趨勢主要包括兩點(diǎn):一是突破軟件定義互連技術(shù)基礎(chǔ)理論、基礎(chǔ)支撐技術(shù)和共性關(guān)鍵技術(shù)問題,形成覆蓋標(biāo)準(zhǔn)規(guī)范、芯片、設(shè)備、網(wǎng)絡(luò)平臺、軟件、工具等在內(nèi)的體系化成果;二是著眼關(guān)鍵應(yīng)用的新型體系結(jié)構(gòu)發(fā)展,打造支持軟件定義互連為內(nèi)核的產(chǎn)業(yè)體系,形成從終端到邊緣計算、匯聚接入、核心交換的軟件定義大互連生態(tài)。

        2)內(nèi)生安全。異構(gòu)體系架構(gòu)的核心特征是基于能效的軟硬件變結(jié)構(gòu)協(xié)同計算和基于性能的變結(jié)構(gòu)協(xié)同處理。在此基礎(chǔ)上,擬態(tài)計算架構(gòu)支持在效能和性能目標(biāo)間自由轉(zhuǎn)換,并具備動態(tài)優(yōu)化和管理的功能。擬態(tài)計算所具有的多樣性、動態(tài)性和隨機(jī)性的協(xié)同處理特點(diǎn),恰好能夠彌補(bǔ)傳統(tǒng)系統(tǒng)在應(yīng)對基于內(nèi)生安全問題攻擊時的靜態(tài)性、確定性和相似性安全缺陷。因此,利用對威脅感知的功能等價動態(tài)變結(jié)構(gòu)協(xié)同處理環(huán)境的非確定性,就可以創(chuàng)造以內(nèi)源性的“測不準(zhǔn)”效應(yīng)規(guī)避內(nèi)生安全問題的新型防御體制。從應(yīng)用維度上看,基于擬態(tài)計算的異構(gòu)變結(jié)構(gòu)協(xié)同計算能夠適配基于構(gòu)造效應(yīng)的內(nèi)生安全機(jī)制。在未來的研究中,功能等價條件下的軟硬件變結(jié)構(gòu)協(xié)同處理體制機(jī)制將成為解決內(nèi)生安全問題的關(guān)鍵。

        3)類腦計算。類腦計算以融合科學(xué)計算和神經(jīng)網(wǎng)絡(luò)計算為核心,基于擬態(tài)計算與軟件定義互連技術(shù),實現(xiàn)軟件與硬件、控制與計算的分離,計算、存儲、互連等資源可靈活定義的“左右腦”融合計算架構(gòu)。類腦計算通過資源動態(tài)自適應(yīng)匹配方法,構(gòu)建主動認(rèn)知重構(gòu)的處理結(jié)構(gòu),生成多目標(biāo)約束下的資源調(diào)度方法,實現(xiàn)任務(wù)與資源的優(yōu)化匹配。基于軟件定義的可重構(gòu)計算方法結(jié)合人腦工作機(jī)理的抽象與建模,實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)與擬態(tài)神經(jīng)計算的融合,推動人工智能從原理模型、算法到實現(xiàn)架構(gòu)的發(fā)展,為邊緣終端、移動終端等設(shè)備的智能化實時信息處理提供強(qiáng)力支撐,是未來計算系統(tǒng)發(fā)展的一條可行的技術(shù)途徑。

        隨著軟件定義互連、內(nèi)生安全、類腦計算技術(shù)的發(fā)展,本團(tuán)隊將應(yīng)用場景進(jìn)一步擴(kuò)展至晶上系統(tǒng)(System on Wafer,SoW)領(lǐng)域。軟件定義晶上系統(tǒng)立足我國集成電路成熟工藝和工具“代差落后”的基本國情,借助領(lǐng)域?qū)S密浻布f(xié)同計算結(jié)構(gòu)和晶圓級互連拼裝集成的聯(lián)合迭代創(chuàng)新,解決SoW 發(fā)展初期領(lǐng)域?qū)S没旌狭6阮A(yù)制件設(shè)計、異構(gòu)多Die 之間互連、動態(tài)可重構(gòu)網(wǎng)絡(luò)等關(guān)鍵問題,并將作為SoW 內(nèi)部Die-to-Die 之間的計算互連規(guī)范,致力于構(gòu)建一個開放式的SoW 生態(tài)。

        猜你喜歡
        異構(gòu)編程文獻(xiàn)
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        試論同課異構(gòu)之“同”與“異”
        Hostile takeovers in China and Japan
        速讀·下旬(2021年11期)2021-10-12 01:10:43
        Cultural and Religious Context of the Two Ancient Egyptian Stelae An Opening Paragraph
        大東方(2019年12期)2019-10-20 13:12:49
        The Application of the Situational Teaching Method in English Classroom Teaching at Vocational Colleges
        The Role and Significant of Professional Ethics in Accounting and Auditing
        商情(2017年1期)2017-03-22 16:56:36
        overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
        亚洲乱码国产乱码精品精| 国产青春草在线观看视频| 丝袜美腿制服诱惑一区二区| 国产a∨天天免费观看美女| 国产精品嫩草影院av| 色爱无码A V 综合区| 国产91精品清纯白嫩| 久久日日躁夜夜躁狠狠躁| 粗壮挺进人妻水蜜桃成熟漫画| 337p粉嫩日本欧洲亚洲大胆| 99久久er这里只有精品18| 欧美一区二区午夜福利在线yw| 高清亚洲精品一区二区三区| 人妻少妇被猛烈进入中文字幕| 性色av无码中文av有码vr| 99国产小视频| 超短裙老师在线观看一区| 国产精选自拍视频网站| 国产午夜精品一区二区三区软件| 麻豆国产av尤物网站尤物| 亚洲男人的天堂色偷偷| 国产欧美日韩一区二区加勒比| 精品国产av最大网站| 日韩国产欧美成人一区二区影院 | 区一区二区三免费观看视频| 亚洲中文字幕无码天然素人在线 | 国产精品综合久久久久久久免费| 国产成人丝袜在线无码| 国产av丝袜熟女丰满一区二区| 久久www免费人成精品| 一级午夜视频| 男女后入式在线观看视频| 人妻熟妇乱又伦精品hd| 欧洲熟妇色xxxx欧美老妇多毛网站| 色yeye在线观看| 成人国产高清av一区二区三区 | 99久久久精品免费香蕉| 国产一区二区美女主播| 亚洲av无码精品色午夜app| 国产偷国产偷亚洲清高| 中文字幕一区二区三区.|