憑借GPU強大的計算能力,超級計算機在數(shù)據(jù)處理、物理模擬、天氣預(yù)測、現(xiàn)代制藥、基因測序、先進制造、人工智能、密碼分析等方面都有著廣泛的應(yīng)用。在2020年的新冠肺炎疫情中,更是為醫(yī)療衛(wèi)生科研人員提供了巨大的幫助,為抗疫斗爭贏得了寶貴的時間。從GPU在新冠肺炎疫情中的實際應(yīng)用情況出發(fā),回顧了GPU誕生至今40余年的主要發(fā)展歷程,分析其發(fā)展趨勢,提出了未來可能的若干發(fā)展方向,并結(jié)合本單位GPU研制實踐,闡述了國產(chǎn)GPU研制的特點及現(xiàn)狀,列舉了多項關(guān)鍵技術(shù),對國產(chǎn)GPU的未來發(fā)展提出了展望。
引言
2020年伊始,全人類都在為抗擊新冠肺炎而努力,在這場與病毒生死時速的競賽中,速度至關(guān)重要,而以GPU集群為計算核心的超級計算機成為了抗疫競速的加速器。近期,一篇利用超級計算機進行病毒研究的論文引發(fā)關(guān)注,美國橡樹嶺國家實驗室的研究人員利用IBM的Summit超級計算機尋找可以對抗新冠肺炎的最有效的現(xiàn)有藥物[1]。Summit是目前世界上最強大的超級計算機,它由4 608個計算節(jié)點組成,每個節(jié)點包含2個22核Power9 CPU和6個Nvidia Volta V100 GPU計算卡,單節(jié)點雙精度浮點運算能力42TFLOPS,整個集群峰值運算能力超過200 PFLOPS。研究人員從8000多種化合物入手,借助Summit的算法尋找可以與蛋白質(zhì)結(jié)合并阻止病毒發(fā)揮作用的藥物,已篩選出77種化合物,這一篩選過程,如果手動進行,需要數(shù)年才能完成,如果在低速計算平臺上進行需要數(shù)月,在超級計算機上,時間縮短到以天計,而這主要得益于GPU的超級計算能力[2]。GPU歷經(jīng)40多年的發(fā)展,已經(jīng)從單純的圖形顯示加速功能發(fā)展到如今日益豐富的廣泛使用場景,本文綜述GPU的發(fā)展歷程及未來趨勢,并介紹國內(nèi)GPU的一些研制實踐。
1.GPU發(fā)展歷程
1999年,NVIDIA公司在發(fā)布其標(biāo)志性產(chǎn)品GeForce256時,首次提出了GPU的概念,盡管如此,追溯GPU的歷史,要從圖形顯示控制器說起。世界上第一臺個人電腦IBM5150于1981年由IBM公司發(fā)布,這臺PC搭載了黑白顯示適配器(monochrome display adapter,MDA)和彩色圖形適配器(color graphics adapter,CGA),這便是最早的圖形顯示控制器[3]。后來,IBM又推出EGA(enhanced graphics adapter),并于1987年提出了VGA(video graphics array)標(biāo)準(zhǔn),它是IBM為PS/2系統(tǒng)中的Model50、60和80機型所內(nèi)建的顯示系統(tǒng),VGA在文字模式下可支持720×400分辨率,繪圖模式下可支持640×480×16色和320×200×256色輸出,VGA標(biāo)準(zhǔn)一直沿用至今。為了保證兼容性,當(dāng)今的顯卡依然會遵循VGA標(biāo)準(zhǔn)。
從MDA到VGA,圖形圖像的運算都由CPU來完成,圖形卡的作用主要是將其顯示出來。1991年,S3 Graphics推出的“S3 86C911”,正式開啟2D圖形硬件加速時代,它能進行字符、基本2D圖元和矩形的繪制。到了1995年,幾乎所有的顯卡都具備2D加速功能,2D圖形接口GDI、DirectFB等也都相繼出現(xiàn),并延續(xù)至今。
1994年,3DLabs發(fā)布的Glint300SX是第一顆用于PC的3D圖形加速芯片,它支持高氏著色、深度緩沖、抗鋸齒、Alpha混合等特性,開啟了顯卡的3D加速時代,然而這個階段的顯卡大多沒有執(zhí)行統(tǒng)一的標(biāo)準(zhǔn),加速功能也不盡相同,直到NVIDIA推出GeForce256,它整合了硬件變換和光照(transform and lighting,T&L)、立方環(huán)境材質(zhì)貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,并且兼容DirectX和OpenGL[4],被稱為世 界上第一款GPU。硬件T&L的引入,極大減輕了CPU的負擔(dān),是這一時代GPU的標(biāo)志。2001年微軟發(fā)布DirectX 8,提出了渲染單元模式(shader model) 的概念,根據(jù)操作對象的不同引入了2種shader,分別是頂點著色器(vertex shader)和像素著色器(pixel shader),從此,硬件T&L被拋棄,進入 shader時代,此時的GPU架構(gòu)是固定管線[5]。
固定管線架構(gòu)持續(xù)多年,直到微軟推出DirectX 10。shader不再扮演固定的角色,每一個shader都可以處理頂點和像素,這就是統(tǒng)一渲染著色器(unified shader),它的出現(xiàn)避免了固定管線中頂點著色器和像素著色器資源分配不合理的現(xiàn)象發(fā)生,使得GPU的利用率更高。第一款采用統(tǒng)一渲染架構(gòu)的GPU是ATI在2005年與微軟合作的游戲主機XBOX 360上采用的Xenos,它是ATI第一代統(tǒng)一渲染架構(gòu),而真正具有影響力的,是NVIDIA在2006年發(fā)布的GeForce 8800 GTX(核心代號G80),它是第一款采用統(tǒng)一渲染架構(gòu)的桌面GPU,其架構(gòu)影響了日后的數(shù)代產(chǎn)品,是一款極具劃時代意義的GPU[6]。
與G80一同發(fā)布的,還有著名的CUDA(compute unified device architecture),它能利用NVIDIA GPU的運算能力進行并行計算,拓展了GPU的應(yīng)用 領(lǐng)域,然而這時的CUDA只能算是GPU的副業(yè)。2011年TESLA GPU計算卡發(fā)布,標(biāo)志著NVIDIA將正式用于計算的GPU產(chǎn)品線獨立出來,憑借著架構(gòu)上的優(yōu)勢,GPU在通用計算及超級計算機領(lǐng)域,逐漸取代CPU成為主角[7]。
GPU的發(fā)展歷程如表1所示。
表1.GPU發(fā)展歷程
2.GPU未來趨勢
GPU的未來方向,可以從NVIDIA 2019年的中國GTC(GPU technology conference)大會窺見一斑。GTC會議是NVIDIA近年來每年舉辦的一場GPU技術(shù)大會,匯集全球頂級的GPU專家,提供GPU領(lǐng)域頗具熱門話題的相關(guān)培訓(xùn)和演講。在這個大會上展示的是全球GPU研究人員的最新的研究和應(yīng)用方向,通過GTC會議可以窺見GPU的未來。2019年中國GTC大會設(shè)置了兩大主題,分別是AI和圖形,兩個大主題之下各自又有一些小主題[8],如表2所示。
表2.2019中國GTC大會主題
從表2不難看出,GPU的未來趨勢無外乎3個:大規(guī)模擴展計算能力的高性能計算(GPGPU)、人工智能計算(AIGPU)、更加逼真的圖形展現(xiàn)(光線追蹤 Ray Tracing GPU)。雖然GPU的最基本功能-顯示技術(shù)在大會主題中沒有“顯式”的提及,但是眾多應(yīng)用方向均與之密切相關(guān),譬如:智慧醫(yī)療和生命科學(xué)、游戲、虛擬現(xiàn)實/增強現(xiàn)實、工業(yè)設(shè)計與工程、自動駕駛與交通等,因此支持更加清晰和動感的高清顯示是無需強調(diào)的未來趨勢。此外,由于GPU越來越廣泛地應(yīng)用到手機、終端、邊緣計算節(jié)點等嵌入式設(shè)備,所以高效能也是一個永恒的追求。
2.1 高性能計算
NVIDIA最新發(fā)布的Tesla V100s高性能計算GPU,集成5120個CUDA Core,640個Tensor Core,采用32 GB HBM2顯存,顯存帶寬達1134GB/S,單精度浮點計算能力達16.4 TFLOPS。
GPGPU在圖形GPU的基礎(chǔ)上進行了優(yōu)化設(shè)計,使之更適合高性能并行計算,加上CUDA多年來建立的完整生態(tài)系統(tǒng),其在性能、易用性和通用性上比圖形GPU更加強大?;谶@種特性,GPGPU將應(yīng)用領(lǐng)域擴展到了圖形之外,在自動駕駛、智慧醫(yī)療、生命科學(xué)、深度學(xué)習(xí)、云計算、數(shù)據(jù)處理、金融等方面均 得到廣泛應(yīng)用,關(guān)于它的科研成果和新應(yīng)用模式也層出不窮。
相比CUDA,OpenCL具有更好跨平臺性和通用性,得到更多GPU硬件廠家的支持,但由于其對開發(fā)者的友好程度不高,直接應(yīng)用反而不多。
2.2人工智能計算
GPU的并行處理結(jié)構(gòu)非常適合人工智能計算,但傳統(tǒng)的基于流處理器的 GPU,其流處理器一般只能處理FP32/FP64等精度的運算,而AI計算的精度 要求往往不高,INT4/INT8/FP16往往可滿足絕大部分AI計算應(yīng)用。針對AI應(yīng)用,NVIDIA設(shè)計了專用的Tensor Core用于AI計算,支持INT4/INT8/FP16等不同精度計算,RTX 2080集成了544個Tensor Core,INT4計算能力可達455 TOPS。
基于NVIDIA GPU的AI應(yīng)用絕大多數(shù)情況下應(yīng)用在服務(wù)器端、云端,基于GPU的AI計算往往具有更好的靈活性和通用性,在數(shù)據(jù)中心、云端等環(huán)境下具有更廣泛的適用性。與之相對應(yīng)的,在分布式應(yīng)用領(lǐng)域AI計算更傾向于獨立的面向特定應(yīng)用領(lǐng)域的專用芯片,而不依賴于GPU,如手機、平板等移動端SOC都集成了專用的NPU IP。
2.3 光線追蹤-更加逼真的圖形展現(xiàn)
傳統(tǒng)的圖形GPU都使用光柵化技術(shù)顯示3D物體,對物體進行3D建模,將其分割成若干三角形,三角形的細粒度很大程度上決定最后的成像質(zhì)量,然后將三角形轉(zhuǎn)換為2D屏幕上的像素點并分配初始顏色值,接下來進行像素處理,基于場景修改像素顏色,并將紋理應(yīng)用于像素,從而生成像素的最終顏色[9]。
光線追蹤與光柵化的實現(xiàn)原理不同,它最早由IBM的Arthur Appel于1969年在“Some Techniques for Shading Machine Renderings of Solids”[10]中提出,光線追蹤通過從觀察點對每一個像素發(fā)射一條光線并找到在世界場景中阻擋光線路徑的最近物體來渲染場景,光線有兩種,第一種是視者發(fā)射的光線,來尋找場景中的交點,另一種是從交點發(fā)到燈光的陰影射線,看自身是否是處于陰影當(dāng)中,光線追蹤的一個顯著優(yōu)點是能夠處理不平整的表面和固體。
2018年NVIDIA發(fā)布的RTX 2080 GPU,采用Turing架構(gòu),在GPU中集成了 68個獨立的 RT(ray tracing) Core ,用于光線追蹤,光線處理能力達到了10 Giga/S,1 080P@60Hz需要處理的光線約為6Giga/S,實測基于光線追蹤的應(yīng)用其幀率大致在50FPS左右,基于RTX 2080的光線追蹤達到了可用的程度,光線追蹤對于反射和陰影有著更逼真的處理效果,盡管目前仍然是采用光線追蹤和傳統(tǒng)光柵圖形處理相結(jié)合的方式來進行圖形渲染,但其效果已經(jīng)遠超傳統(tǒng)光柵圖形處理,對于游戲、電影等追求逼真光影效果的應(yīng)用,光線追蹤能提供電影級畫質(zhì)的實時渲染,帶來視覺效果上質(zhì)的飛躍。
除了游戲、電影方面的應(yīng)用,產(chǎn)品設(shè)計師和建筑師也可以享受到光線追蹤帶來的好處,借助光線追蹤工具和高性能GPU,可以實時生成逼真的產(chǎn)品模型,提高設(shè)計迭代速度。
NVIDIA的下一代圖形GPU,采用Ampere架構(gòu),計劃于今年發(fā)布,相信在光線追蹤方面帶來新的提升。
2.4 高清顯示
2.4.1 高刷新率
目前主流屏幕的刷新率為60Hz,就是一秒能刷新60張畫面,但近年來用戶要求不斷提高,游戲、電影都提出了90Hz、120Hz、144Hz刷新率的要求,VR基于良好的用戶體驗也提出了120Hz刷新率的要求,高刷新率能帶來更加流暢連貫的畫面顯示效果,提供更好的感官體驗,目前市場上已經(jīng)推出了280Hz刷新率的顯示器,可見的未來顯示刷新率會不斷提高。
高刷新率對GPU帶來了兩個挑戰(zhàn),一方面需要每秒輸出更多的像素數(shù)據(jù),另一方面需要解決GPU與顯示器刷新率不匹配造成的畫面撕裂問題。對于第一個挑 戰(zhàn),目前GPU采用了更快的顯存如GDDR6/HBM以及提升GPU自身的處理能力以提升刷新率,同時在接口方面采用了PSR/PSR2等技術(shù),即只對變化的像素點進行更新,以降低顯示接口輸出的壓力。對于第二個挑戰(zhàn),AMD/NVIDIA使用Free Sync/G-Sync等技術(shù),在顯示器內(nèi)安置一枚可與GPU直接通信的芯片,以協(xié)調(diào)顯示器與GPU顯示輸出之間的數(shù)據(jù)同步,使顯示器根據(jù)GPU的實際輸出進行刷新率動態(tài)調(diào)節(jié),以解決刷新率不匹配造成的畫面撕裂問題。
2.4.2 高分辨率
目前2K顯示已經(jīng)成為主流,但無論桌面端還是移動端4K顯示的硬件基礎(chǔ)已具備,隨著片源問題的逐步解決,未來4K、甚至8K顯示必然會逐步普及,而VR 則要求16K乃至32K的分辨率以期給用戶帶來更好的沉浸感,最新推出的HDMI 2.1支持10K顯示,而DP 2.0顯示接口已經(jīng)能夠支持16K顯示。
高分辨率給GPU的顯示接口以及處理能力提出了更高要求,16K模式下每一幀圖像像素點達到了1.32億,考慮同時存在的高刷新率需求,高分辨率對GPU的像素處理能力要求極高。隨著消費端對沉浸式高分辨率顯示的不斷追求,GPU 廠商需要進一步提升GPU圖形處理能力以及顯示接口的傳輸速率。
2.5 高效能
GPU擅長處理計算密集型任務(wù),但大部分應(yīng)用場景都需要在滿足計算或者圖形處理性能的條件下盡量降低功耗。傳統(tǒng)的GPU架構(gòu)將存儲和計算分離,會遇到很多瓶頸:增加核心數(shù)量來達到高性能的方式,有芯片面積、功耗和可靠性的限制;紋理和頂點數(shù)據(jù)移動的功耗遠多于圖形計算的功耗。目前存內(nèi)計算的方式,已經(jīng)成功應(yīng)用于人工智能領(lǐng)域中,來提升深度學(xué)習(xí)芯片的能效比。因此,本文提出了開展基于新型存儲器的存算一體圖形處理架構(gòu)的研究,以提升圖形處理器的能效比,對GPU的發(fā)展有積極意義。
3.國產(chǎn)GPU的研制實踐
我國現(xiàn)有的絕大部分計算機中所使用的GPU均為美國芯片巨頭(NVIDIA、AMD)所壟斷,盡管在民用領(lǐng)域目前看來沒有太大問題,但是在黨政軍辦公和國民經(jīng)濟的關(guān)鍵領(lǐng)域,存在嚴(yán)重的信息安全隱患和供貨保障問題。因此,亟需開展國產(chǎn)GPU的研制工作,并加速推廣應(yīng)用。
研究團隊針對上述GPU的發(fā)展現(xiàn)狀及未來趨勢,多年來展開了一系列關(guān)鍵技術(shù)的研究,包括可擴展的科學(xué)計算與圖形渲染統(tǒng)一架構(gòu)、多核多線程調(diào)度與管理、生態(tài)環(huán)境建設(shè)、國產(chǎn)計算機平臺適配與優(yōu)化等等,研制了多款國產(chǎn)GPU芯片。在顯示方面,提出了一種基于圖層的高刷新率高分辨率顯示技術(shù),滿足了比較廣泛的高清圖像顯示應(yīng)用需求。未來,更多高清3D應(yīng)用的出現(xiàn)將帶來GPU高清圖形圖像顯示需求的持續(xù)增長,對GPU處理能力也是一項不小的挑戰(zhàn),持續(xù)改進GPU系統(tǒng)架構(gòu)和設(shè)計方法,提高運算能力和綜合顯示能力,以應(yīng)對高清顯示的發(fā)展要求。
4.結(jié)論與展望
近些年,國外GPU技術(shù)快速發(fā)展,已經(jīng)大大超出了其傳統(tǒng)功能的范疇。國內(nèi)GPU芯片的研制雖然可滿足目前大多數(shù)圖形應(yīng)用需求,但在科學(xué)計算、人工智能及新型的圖形渲染技術(shù)方面仍然和國外領(lǐng)先水平存在較大差距,未來持續(xù)發(fā)展國產(chǎn)GPU勢在必行。
國產(chǎn)GPU下階段的發(fā)展方向可以主要考慮3個方面:第一,進一步提升圖形圖像顯示水平,提升國產(chǎn)GPU的基本能力;第二,擴展科學(xué)計算和人工智能計算能力,增強國產(chǎn)GPU的非傳統(tǒng)功能;第三,建設(shè)全系統(tǒng)解決方案及生態(tài)系統(tǒng),尋求用戶的最優(yōu)體驗。