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