電子發(fā)燒友網(wǎng)報道(文/吳子鵬)GPU誕生的原因是人們需要更好地處理3D游戲中的圖形渲染,因此GPU擁有很多很小的內(nèi)核增加并行處理能力,然后通過圖形流水線的模式做圖形處理。由于天生核心數(shù)量多,因此GPU計算能力增加迅速,業(yè)界普遍認(rèn)為2004年前后GPU計算能力已經(jīng)超過CPU,此后兩者之間的算力差距越拉越大。
擁有強大算力之后,更多的應(yīng)用開始找上GPU,比如氣候檢測,還有時下大熱的深度學(xué)習(xí)等。快速增長的計算需求也開始改變GPU,早期用于通用計算的GPU實際上還是遵循圖形處理的原則來設(shè)計,內(nèi)部依然有Vertex級處理器以及Fragment級處理器,面向其他運算需求顯得“不倫不類”,直到英偉達(dá)設(shè)計出了統(tǒng)一處理器。
此后,GPGPU在任務(wù)清晰且計算量要求大的領(lǐng)域,比如矩陣的計算上優(yōu)勢愈發(fā)凸顯。受益于人工智能、大數(shù)據(jù)和萬物互聯(lián)等多層buff加持,越來越多的行業(yè)開始提出這樣的計算需求,GPGPU前景光明且市場巨大。在這樣的背景下,目前國內(nèi)已經(jīng)涌現(xiàn)出一批GPGPU企業(yè),沐曦集成電路(上海)有限公司(以下簡稱:沐曦)便是其中之一,該公司致力于提供高性能GPU。
軟件棧決定了用戶群大小和用戶體驗
回顧GPGPU的發(fā)展,我們發(fā)現(xiàn)市場需求不僅是改變了GPGPU的核心布局,同時為了兼顧通用性,軟件端也發(fā)展了巨大的改變,從OpenGL演化出統(tǒng)一計算架構(gòu)CUDA。沐曦光啟智能研究院科學(xué)家李兆石在接受電子發(fā)燒友采訪時表示,“GPGPU作為一款通用芯片,在面對不同客戶層出不窮的新需求時,需要保證它的可編程性。可編程性是由完善的軟件棧來保證的。
對于所有GPGPU來說,軟件棧的規(guī)劃直接決定了GPGPU用戶受眾群體大小和用戶使用體驗。因此所有的GPGPU,不論是否國產(chǎn),都會擁有自己的運算平臺,即軟件棧。比如AMD面向它的MI系列GPGPU,對標(biāo)CUDA,開發(fā)了RoCM,并在RoCM之上移植了PyTorch等AI軟件框架。”
他強調(diào)GPGPU上軟件棧是至關(guān)重要的,對此他通過分析英偉達(dá)的CUDA來解釋原因。“GPGPU芯片非常龐大,最新的Nvidia A100上有542億個晶體管,它們構(gòu)成了6912個并發(fā)執(zhí)行的CUDA內(nèi)核,以及為了保證CUDA內(nèi)核的數(shù)據(jù)供給而設(shè)計的一套復(fù)雜的存儲子系統(tǒng)。
考慮到人的思維方式是串行的,用戶很難處理這么多的并發(fā)執(zhí)行單元,因此這么多并發(fā)的硬件資源不可能直接暴露給用戶。所以我們需要有一套軟件棧將底層硬件架構(gòu)的特征抽象成易于理解的編程模型提供給用戶,從而讓用戶充分開發(fā)GPGPU的潛力。”
李兆石講到,“然而抽象是有代價的:抽象掩藏掉的硬件細(xì)節(jié)越多,編程模型對用戶越友好,那么它會越難充分發(fā)揮硬件的全部潛力。因此GPGPU的抽象是分層次的:越靠近用戶的層次越易用,同時該層次的性能或者靈活性會越差。這樣特定應(yīng)用領(lǐng)域的用戶,如果重心在開發(fā)效率,可以選擇高層次的編程模型;而需要榨取GPGPU性能潛力的用戶可以選擇低層次的編程模型。這也正是我們把GPGPU的編程模型稱為‘軟件棧’的原因。”
目前,國產(chǎn)GPGPU顯然還是跟隨者的狀態(tài),雖然廠商在積極地推進(jìn)架構(gòu)創(chuàng)新和軟件創(chuàng)新,但和英偉達(dá)之間的差距還是巨大的,因此從英偉達(dá)身上國產(chǎn)GPU還有很多經(jīng)驗可以汲取。李兆石對英偉達(dá)在GPGPU上面的軟件實力有著清晰的認(rèn)識。
他指出:“英偉達(dá)的AI軟件棧自底向上至少可以分成5層:SASS是硬件實際執(zhí)行的指令集,類似CPU的匯編;PTX是虛擬指令集,為不同代的Nvidia GPGPU提供了一個統(tǒng)一的編程接口;CUDA是用戶在編寫高性能GPGPU程序時最主要的編程模型;
cuBLAS, cuDNN, cuFFT, CUTLASS等運算庫則讓用戶可以通過調(diào)用Nvidia針對自家GPGPU高度定制的算子庫,不需要花費太多精力進(jìn)行性能調(diào)優(yōu)就可以享受到Nvidia GPGPU最好的性能,但它們靈活性受限;TensorRT, Triton, Megastron則是Nvidia針對特定AI應(yīng)用場景深度定制,讓AI類用戶開箱即用的軟件平臺。”
可以看出,CUDA處于中間層。CUDA提供了硬件的直接訪問接口,而不必像傳統(tǒng)方式一樣必須依賴圖形API接口來實現(xiàn)GPU的訪問。CUDA采用C語言作為編程語言提供大量的高性能計算指令開發(fā)能力,使開發(fā)者能夠在GPU的強大計算能力的基礎(chǔ)上建立起一種效率更高的密集數(shù)據(jù)計算解決方案。
李兆石認(rèn)為:“對于新興的國產(chǎn)GPGPU而言,構(gòu)建自己的軟件棧時,首要任務(wù)是先打好基礎(chǔ),對標(biāo)CUDA及以下的抽象層次,充分發(fā)揮自己芯片的特色,開發(fā)出一套用戶可用、易用的編程模型,正所謂‘不積硅步無以至千里’。然后再結(jié)合目標(biāo)客戶的需求,對標(biāo)TensorRT等框架,定制開箱即用的高層次編程模型。”
在此,他談到了沐曦的規(guī)劃。當(dāng)前,沐曦GPGPU的芯片架構(gòu)和軟件棧是同時開發(fā)的。芯片架構(gòu)上與現(xiàn)有GPGPU擁有不同的新特性,在設(shè)計之初都充分考慮了如何在各個層次的編程模型中進(jìn)行抽象。這樣,沐曦可以保證用戶即可以平滑地從現(xiàn)有GPGPU遷移到沐曦的GPGPU上,又能在使用沐曦的軟件棧時充分享受到新特性帶來的更好體驗。
著眼于未來的發(fā)展,英偉達(dá)CUDA既是國產(chǎn)GPGPU在并行計算架構(gòu)方面的老師,也是最大的勁敵。目前,CUDA已經(jīng)能夠支持DX12這樣的API,也支持C語言、Fortran、OpenCL等計算語言,其生態(tài)屬性非常強大。
并且根據(jù)英偉達(dá)官方的說法,CUDA未來的發(fā)展是開放性的技術(shù)平臺,支持更多的并行計算需求。這樣的CUDA會給國產(chǎn)GPGPU在軟件棧方面的發(fā)展造成巨大的困擾,因此李兆石呼吁:“國內(nèi)各家GPGPU創(chuàng)業(yè)公司都有自研IP和軟件棧的規(guī)劃。從公開的信息來看,各家公司的軟件棧規(guī)劃都存在一定的共性。希望未來大家可以多多相互交流,共同進(jìn)步。”
傳統(tǒng)GPU的軟件棧很難遷移到GPGPU上
GPGPU在GPU的基礎(chǔ)上進(jìn)行了優(yōu)化設(shè)計,使之更適合高性能并行計算,并能使用更高級別的編程語言,在性能、易用性和通用性上更加強大。相較而言,國產(chǎn)GPU的啟動比國產(chǎn)GPGPU要提前一些,是否有經(jīng)驗可循呢?
李兆石認(rèn)為:“傳統(tǒng)GPU主要面向圖形渲染類應(yīng)用。對于Nvidia來說,圖形渲染類應(yīng)用的軟件棧與GPGPU的軟件棧,只有底層的SASS, PTX和少量CUDA是共享的。再往上走的圖形渲染API層,如OpenGL, Vulkan等,目前GPGPU還不需要支持。
國產(chǎn)傳統(tǒng)的圖形渲染GPU,大多基于自研的匯編層,對提供圖形渲染API層提供支持。我們的底層設(shè)計(與Nvidia SASS和PTX同層次的匯編)與Nvidia及其它國產(chǎn)GPU是不同的,因此傳統(tǒng)的圖形渲染GPU軟件棧難以直接遷移到GPGPU上。”
應(yīng)用領(lǐng)域方面,GPGPU將應(yīng)用擴(kuò)展到了圖形之外,在科學(xué)計算、區(qū)塊鏈、大數(shù)據(jù)處理、工程計算、金融、基因等方面都有重要的應(yīng)用,但更多是以服務(wù)器的形態(tài)提供高算力。
在應(yīng)用層面,目前傳統(tǒng)GPU和CPU的融合趨勢已經(jīng)顯現(xiàn),比如AMD APU系列,蘋果的M1芯片、以及大多數(shù)手機SoC芯片等,它們的CPU和GPU都是直接在物理上共享內(nèi)存。這些芯片通過CPU和GPU的緊密耦合,避免了CPU和GPU之間數(shù)據(jù)跨芯片搬運的能量消耗。
李兆石表示:“對于GPGPU而言,目前市面上還沒有成熟的產(chǎn)品,讓CPU和GPGPU在同一個die上緊密耦合。造成這一現(xiàn)象的原因有兩個。首先,CPU和GPGPU之間的通信延遲或帶寬,在目前流行的GPGPU應(yīng)用中不是系統(tǒng)的瓶頸。
GPGPU的編程模型中,CPU與GPGPU間的通信用于處理應(yīng)用中的控制邏輯。而GPGPU通常用來處理計算密集型應(yīng)用或者訪存密集型應(yīng)用,其瓶頸在于GPGPU上的計算資源、或者GPGPU與顯存(GDDR或者HBM)之間的通信帶寬。
控制密集型應(yīng)用很少大規(guī)模部署在GPGPU上。其次,GPGPU通常以加速卡的形式部署在服務(wù)器上,服務(wù)器廠商出于成本、可靠性和可擴(kuò)展性的考慮,會分別采購CPU和GPGPU。”
“不過,對于CPU和GPGPU的融合,我們還是要以發(fā)展的眼光看問題。從應(yīng)用需求的角度,隨著張量加速單元和HBM技術(shù)在GPGPU的普及,GPGPU的計算和訪存能力快速提升。正所謂‘按下葫蘆浮起瓢’,此時CPU和GPGPU的通信代價正在變得越來越顯著。
尤其當(dāng)我們考慮到新興的Pytorch等AI框架的動態(tài)圖特性會引入非常頻繁的CPU-GPGPU之間的交互時,低延遲的CPU-GPGPU緊耦合架構(gòu)就變得更有價值了。從系統(tǒng)設(shè)計的角度,新興的Chiplet技術(shù)可以有效降低封裝內(nèi)CPU和GPGPU緊耦合的設(shè)計成本。所以我們也很期待新的應(yīng)用需求和封裝技術(shù)可以使能未來的融合CPU-GPGPU芯片。” 李兆石在采訪中講到。
聲明:本文由電子發(fā)燒友原創(chuàng),轉(zhuǎn)載請注明以上來源。如需入群交流,請?zhí)砑游⑿舉lecfans999,投稿爆料采訪需求,請發(fā)郵箱huangjingjing@elecfans.com。
編輯:jq
-
芯片
+關(guān)注
關(guān)注
455文章
50727瀏覽量
423179 -
3D
+關(guān)注
關(guān)注
9文章
2875瀏覽量
107487 -
cpu
+關(guān)注
關(guān)注
68文章
10855瀏覽量
211596 -
gpu
+關(guān)注
關(guān)注
28文章
4729瀏覽量
128897
原文標(biāo)題:國產(chǎn)高性能GPGPU的破局點是什么?
文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論