圖形處理器(Graphics Processing Unit,GPU)又稱顯示核心、視覺處理器、顯示芯片,是一種浮點性能強大的通用并行處理器件。
英偉達公司在1999年8月發布了 GeForce256圖形處理芯片,首先提出GPU的概念。Geforce256的核心技術有硬件級的幾何與光照轉換引擎紋理壓縮、凹凸映射、雙重紋理等。同時期的OpenGL和DirectX 7也提供了硬件頂點變化的編程接口。隨后GPU進入高速發展時期。在2009年后才在手機等手持移動設備中嶄露頭角。同時,由于圖形渲染的高度并行性,GPU沒有CPU龐大的控制單元,而是通過增加執行單元和存儲器控制單元的方式來提高并行處理的性能以及存儲帶寬。因此,GPU的數據處理能力遠遠超過了一般的通用處理器。
現代圖形處理器已具有高度的并行計算能力和極高的傳輸帶寬,從單純的圖形渲染加速器發展為通用的高性能并行計算芯片,廣泛地應用在游戲、虛擬現實、科學計算、人工智慧和機器人等眾多領域。
發展歷程
本文以圖形處理器發展過程中不同類型為線索介紹GPU的發展歷程。
圖形顯示
圖形處理設備最早可以追溯到二十世紀七十年代。富士通株式會社公司生產的視頻轉換器和Namco游戲公司生產的專用圖形處理設備被廣泛應用到街機游戲機,拉開了圖形處理設備發展的序幕。八十年代,日本電氣公司是最早利用大規模集成芯片技術生產出圖形處理設備的企業,并降低了圖形處理設備的設計生產成本。隨后,Williams Electronics公司生產的圖形處理芯片可以快速處理16色位圖。Commodore Amiga公司生產的圖形處芯片不僅實現了對位圖的加速處理,還可以實現線條繪制和面積填充等圖形功能,但是它需要利用自己專門的指令集。德州儀器也開發出第一款集成了片上圖形芯片的微處理器。之后兩年中,Sharp公司和富士通株式會社公司生產的圖形處理芯片分別可以支持16位和24位的調色板。Namco和Taito株式會社游戲公司在1988年開發出了第一款專用的3D多邊形處理卡,并用于他們的街機系統中。
2D、3D圖形加速
九十年代,2D圖形加速已經成為圖形處理芯片的重要特性之一。隨著生產制造工藝的發展,圖形處理芯片的集成度也得到逐步提升。為了更好的滿足2D圖形處理任務的應用需求,出現了專門的圖形編程接口API,其中以微軟的WinG和Direct Draw為典型代表。這個時期,3D圖形的應用也得到逐步增長,催生了具有3D圖形處理能力的圖形處理設備的產生。為了開發個人計算機的CAD市場,1994年matrox公司推出MatroxIm pression。它是第一個PC機上的3D圖形加速器。而在PC機上3D圖形芯片的真正突破是1996年Interactve公司推出的Voo-doo芯片,開創了PC機可以代替昂貴的圖形工作站的新時代。富士通株式會社公司在1997年發布了個人電腦所用的第一款3D幾何處理器。同年,Mitsubishi公司生產了一款全功能的圖形處理芯片,支持圖形的變換和光照功能。1999年英偉達發布了世界上首款集成了變換、光照、三角形構成、裁剪、紋理和染色引擎的圖形處理器GeForce 256,開啟了真正意義上的GPU研制歷程。
統一渲染
進入到二十一世紀,GPU進入了快速發展階段。2001年,英偉達推出了第一款具有可編程渲染功能的GPU,即GeForce3,它可以實現對像素和幾何頂點的可編程處理。但是,由于像素和幾何頂點處理的頻率不一樣,GeForce3中設計了不同的染單元,對它們進行分別處理。2003年開始,英偉達和ATI發布的新產品都同時具備了可編程頂點處理和可編程像素處理器,具備了良好的可編程性。從此,開發人員可以根據自己的需求靈活的控制渲染過程,編程時無需再過度關注于GPU的其他硬件特性,重點關注可編程性即可。從此,GPU又多了一個可編程的屬性,也叫做可編程圖形處理單元。2006年,NVIDIA公司推出了GeForce 8800 GTX,它首次使用統一的渲染部件代替了各種可編程部件,同時解決了可編程GPU片上的負載均衡問題成為當今通用圖形處理器的雛形,另外GeForce 8800 GTX不僅支持OpenGL和DirectX 10還推出了CUDA編程模型,使得程序員對GPGPU的使用更加方便簡單。
通用計算
2007年英偉達公司推出了全新的CUDA架構(Compute Unified Device Architecture,統一計算設備架構)改變了GPU的發展軌跡,使GPU不再受編程模型和開發方式的限制,從單一的圖形渲染領域走向了通用計算領域,并且憑借其強大的計算能力在通用計算領域占據了重要地位。2008年,NVIDIA推出了基于GT200結構的GPU。GT200體系結構在G80體系結構的基礎上進行相應改進了,主要表現在加入了對共享存儲器的原子操作和雙精度浮點運算的支持,放寬了對存儲器的對齊訪問。2009年,AMD計劃推出了它的GPU—Firestream9270,其特點是具有更高的主頻,存儲為GDDR5,并且支持OpenCL。但同時功耗大幅增加,已經接近英偉達 GT200系列GPU的功耗水平。與此同時,NVIDIA在同年11月份,對外發布了其第三代統一體系結構的產品Fermi,加入了更多的SM數目和寄存器器、共享存儲器等硬件資源,線程塊調度機制也得到了進一步的優化,GPGPU的通用計算能力得到了顯著提升。GPGPU的發展從此進入了快車道。2011年TESLA的GPU計算卡發布,標志著NVIDIA將正式用于計算的GPU產品線獨立出來,憑借著架構上的優勢,GPU在通用計算及超級計算機領域,逐漸取代CPU成為主角。2018年,英偉達 發布了最新的Turing架構,其集實時光線追蹤、AI、模擬和光柵化于一身,為計算機圖形帶來了根本性變革,讓實時光線追蹤首次成為現實。
近些年,隨著制造工藝的進步以及編程。模型的優化,使得GPU并行計算功能越來越強大,GPU也從最初的專用圖形加速器發展成為現在的通用加速器,廣泛應用于眾多領域,包括高性能計算、圖像處理、深度學習、計算機視覺和數據分析等領域。
硬件架構
GPU體系架構主要由兩部分組成,分別是SPA流處理器陣列(Scalable Streaming Processor Array)和存儲器系統,這兩部分之間是由一個片上互聯網絡連接起來的。SPA和存儲器系統都可以獨立的進行擴展。本文以英偉達在2022年發布的全新的Ada Lovelace架構(以下簡稱“Ada架構”)為例介紹GPU的硬件架構。
AD102核心
Ada架構目前最完整、規模最大的芯片被稱為AD102。完整版本的AD102芯片擁有12個GPC(Graphics Processing Clusters,圖形處理器集群),每個GPC擁有6個TCP(Texture Processin gClusters,紋理處理集群),每個TPC擁有2個SM(Streaming Multiprocessors,流式多處理器)和1個Poly Morph引擎,因此1個AD102總計擁有72個TPC、144個SM。存儲部分采用的是384bit的GDDR6X控制器,一共布置了12個顯存控制器,每個顯存控制器可以控制32bit位寬。英偉達特別提示,考慮到FP64相關代碼比如張量(Tensor)代碼的運行,英偉達還為AD102增加了288個FP64單元,每個SM核心2個。
SM單元
AD102的每個SM單元包含128個CUDA內核,1個ADA第三代RT核心以及4個ADA第4代張量核心、4個紋理單元、256KB寄存器、128KB的L1/共享內存,和之前的產品一樣,L1/共享內存也可以根據使用情況進行配置。每個SM擁有128KB的L1CPU緩存,AD102總計擁有18432KB的L1緩存。Ada架構在緩存部分的變化主要體現在L2緩存。AD102目前擁有98304KB的L2緩存,也就是96MB,相比之前GA102的6144KB也就是6MB,大約是后者的16倍。巨大的緩存為所有GPU相關操作,如光線追蹤、路徑追蹤等復雜的操作都帶來益處。
光線追蹤模塊
傳統的實時3D圖形計算采用的是光柵化的方式,但由于光柵化計算并不是對物體和光線進行了真正的交互處理,所以存在非常多的局限性,如果依舊在光柵化的條件下解決這些問題需要高昂的代價。在這種情況下,通過引入光線追蹤,讓光線在3D場景中通過碰撞和反射、折射來生成真正的數據和信息,就不失為一個很好的解決手段了。在沒有專用的加速硬件時,光線追蹤的計算需要由SM單元進行一次又一次的循環計算才能完成,而RT核心(即專門用于光線追蹤計算的光追核心)則可以將光線追蹤計算中最復雜的循環部分被大幅度加速,其效率相較SM單元提升了數倍乃至數百倍之多。具體到Ada架構中,其RT核心能夠以高達每秒10 Giga Rays 的速度對光線和聲音在3D環境中的傳播進行加速計算。
在光線追蹤計算中,光線投射到物體表面,會先查詢開發人員是否標注了“不透明”狀態,如果有,則將這些計算合并到光線追蹤后續計算中。然而,如果沒有標注,那么RT核心就會要求著色器檢查到底是透明還是不透明,這將占據SM的線程并產生性能需求,甚至會產生多次調用。在Ada架構中,英偉達設計了一個名為Opacity Micromap(不透明微圖單元)來進行透明狀態類似的檢查。Opacity Micromap在運行中會首先生成一個由微小三角形組成的網格,然后用這個網格來標記物體透明或不透明。具體來說,RT核心會直接判斷光線和Opacity Micromap三角形的交點,這個交叉點的重心坐標可以用于確定當前三角形覆蓋的區域是透明、不透明或者未知。在RT核心中擁有Opacity Micromap后,遍歷性能在擁有alpha通道的幾何圖形中,性能提高了一倍。
Displaced Micro-Mesh Engine是第3代RT核心的又一個重要功能,可以稱其為置換微網絡引擎(DMME)。在DMME出現之前,系統需要調用RT模塊針對目標物體的每一個三角形進行光線追蹤交叉測試,但是在DMME出現之后,系統只需要把任務交給DMME,DMME根據基底三角地(簡略模型)和位移圖的相關參數,自動生成DMM并完成光線追蹤的三角形交叉計算,然后將數據返回給系統,這樣就大大降低了系統的壓力,提升了效率。在DMME出現后,可以利用空間一致性進行數據壓縮,并且會根據其結構和LOD(Level Of Detail)情況(或者不同的動畫細節等級)進行高效率渲染。在光線追蹤計算時,DMME會避免BVH的大量時間和空間成本;在光柵化計算時,DMME將會根據LOD情況進行渲染,給出正確精度的結果數據。
在Ada架構中,英偉達設計了一種新的調度系統,被稱為Shader Execution Reordering(著色器執行重排序,SER)來解決執行分歧和數據分歧等問題。SER的作用是當分歧發生時,它可以重新調度著色器的工作排序,從而避免部分著色器在等待中浪費算力和電能,以獲得更好的效率和性能。
第四代張量核心
Ada架構中的第四代張量核心(Tensor Core)的作用是用于加速矩陣乘法累加(MMA)計算,這類張量計算在高性能計算機和AI計算中廣泛存在。在第四代張量核心中,英偉達新增計算格式FP8和Transformer Engine。其中FP8支持更高效率的數據管理,Transformer Engine不僅可以通過自動分析計算結果輸出值的信息,判斷接下來的神經網絡計算內容和所需要的精度,還可以自動轉換現有數據至更高效的數據格式并將其送入計算引擎。這些優勢大幅度提升Transformer模型計算的效能。在Transformer Engine和FP8數據格式的加速下,可以在人工智能的大型語言模型訓練上提供9倍的訓練加速和30倍的推理加速。
編解碼器
Ada架構中的第8代NVENC硬件編碼器整合了對AV1視頻編碼格式的支持,此前Ampere只支持AV1的解碼,而不含編碼。新的AV1編碼器在效率上比H.264編碼器提高了40%。 在解碼功能方面,Ada架構的NVDEC解碼器支持MPEG2、VC-1、H.264(AVCHD)、H.265(HEVC)、VP8、VP9和AV1等視頻格式的解碼,還支持8K@60Hz視頻的解碼。另外,英偉達還加入了AI功能以方便視頻制作。
工作原理
GPU是計算機硬件系統的重要組成部分,主要承擔圖像顯示輸出任務。其工作原理可通過硬件架構、計算模式及與CPU的協作機制等方面解析。GPU的核心設計目標為加速圖形渲染,因渲染一幀圖像本質是對大量像素點進行相似計算,這種大規模并行任務需求推動GPU采用包含數百至數千個核心的并行計算架構,使其具備數據并行任務處理優勢。本章重點闡述GPU在3D圖形渲染中的工作流程。GPU通過與CPU的協同工作完成圖像繪制,其3D渲染工作流程主要包含幾何處理、光柵化、像素渲染、ROP輸出四個步驟。本文將通過詳細闡述這四個步驟,說明GPU的3D渲染工作機制。
整個流程的第一步是幾何處理,它的作用是把抽象的數學公式轉化為電腦屏幕里的形象輪廓。通過這些數學公式可以將程序員腦海中的復雜圖像,在一個三維坐標系中展現出來,把物體表面一些重要的關鍵點在通過數學公式映射在坐標系中,并通過一定的規則將這些離散的坐標點連起來,這樣就形成了一個在虛擬空間中的物體幾何輪廓,最后在通過對相應坐標點的位置變換,從而實現物體運動的表現。這些處于虛擬空間中的坐標點我們稱之為多邊形頂點,而GPU的工作就是將代碼中所描述的頂點參數映射到虛擬空間的坐標系中。
經過幾何處理的步驟后,模型的輪廓就可以確定了。之后需要根據程序要求,對模型進行更加精細化的處理,如曲面細分Tesselation,就是利用GPU硬件加速,將現有3D模型的三角形拆分得更細小、更細致,也就是大大增加三角形數量,使得渲染對象的表面和邊緣更平滑、更精細。但是由于電腦屏幕顯示的均是二維圖像信息,因而接下來的步驟就是如何將復雜的三維世界物體模型映射到二維平面中表達出來,這就是GPU中另一個單元Rasterizer所要完成的工作。
Rasterizer光柵化是通過透視原理將分布散三維空間的立體坐標信息映射到二維平面直角坐標系中。由于電腦所使用的顯示器是一個二維平面結構,無法直接展示出三維空間的全部信息,所以需要通過透視原理將三維空間中的景深信息表達出來,這也就是我們所說的圖像立體感。同時為了實現物體信息的像素化,Rasterizer這個步驟也是必不可少的。Rasterizer通過一系列的數學變換將三維坐標轉換為平面二維坐標,這個過程中圖像原本的Z軸坐標信息將會被單獨提取出來存放入Z-Buffer中,作為景深值。
經過光柵化操作后物體的輪廓信息就已經被定格在平面像素中,那么接下來的工作就是將物體的顏色信息填充到圖像中,這個部分的工作又稱為材質操作,而這一過程將由GPU中的PixlShader完成,它將賦予圖像鮮活的生命力。材質操作就是GPU給物體填色的過程,但是由于硬件限制,實際操作中無法象現實生活中那樣直觀地操作,需要借助代碼去完成,而GPU的工作就是將代碼轉換為人們能夠識別的顏色信息,繼而填充在圖像上,最終呈現在顯示屏上。然而3D圖像生成過程到這里還沒有結束。為了解決圖像展現在屏幕上會非常的死板的問題,需要將真實世界的光影信息添加到物體上,將物體的實時動態效果展示出來,從而滿足人們越來越高的視覺要求,這項任務將由PixelShader來完成。PixelShader的主要工作就是還原物體被光線照射之后所呈現出來的色彩信息,這些色彩信息GPU都將在像素上進行操作,所以也就是對像素的色彩進行修改。
圖像經過上述一系列操作之后,只需進行最后的整合,就可以輸出在顯示器上了。ROP的作用在于拾取渲染好的像素,以及調用Z-buffer上的信息,結合模型的透明度信息決定哪些面是被遮擋住的,被遮擋的部分將被隱藏,不予顯示。完成后,圖像將被存入幀緩存,在合適的時機輸出到屏幕。ROP是前面所有工作的整合器,它的效率直與顯卡的工作效率緊密相關。從最初的數學公式到最終呈現在顯示器上的圖像,顯卡的工作到這里就結束了。整個過程在一秒鐘內一般要重復完成75次。ROP單元是整個GPU工作流程中最為重要的一環,性能將直接影響到整個GPU的實際表現、工作效率的高低將直接影響到整個流程的效率。
關鍵技術
并行計算技術
GPU并行計算技術就是利用GPU的計算單元來完成和加速并行計算任務的技術 ,而非傳統的基于CPU完成計算任務。因為GPU相比CPU具有更多的計算單元,這使得GPU比CPU更適合進行并行計算任務,獲得更高的運行效率。在CUDA計算架構推出后,開發者可以使用類c語言來為GPU編寫程序 ,從而大大降低了GPU的使用門檻,這極大地推動了基于GPU的并行計算技術在模式識別、圖形語音、自然語言等人工智能領域多個方向上的發展。
渲染架構技術
現代圖形處理器主要有兩種渲染架構:即時渲染架構和分塊渲染架構。桌面圖形處理器一般采用即時渲染架構,它指的是完全按照應用程序指定的物體順序,即時繪制物體,每個提交的渲染任務都會立刻開始執行,渲染期沒有任何延遲,所以驅動程序直接,渲染效率高,在沒有帶寬限制的情況下性能好,但是由于渲染物體位置的無關性,導致高速緩存的丟失率提高,對帶寬要求比較高。嵌入式圖形處理器顯卡內存容量比較有限,需要與系統及芯片上的其他處理器共用系統內存,如果像傳統的桌面圖形處理器那樣,一次性將整個屏幕內容繪制出來,由于三維場景的復雜性,著色緩存和深度緩存會被更新多次,所以需要多次讀寫系統內存,因此性能和功耗都會很差。所以目前嵌人式圖形處理器大多采用分塊渲染架構。
顯存帶寬壓縮技術
隨著GPU計算性能的不斷提升,顯存帶寬與CPU計算性能的差距越來越大,GPU對顯存帶寬的需求不斷提高。為了提升GPU的性能,節省顯卡內存帶寬的壓縮技術顯得格外重要。GPU對顯存帶寬需求主要來自兩方面,其一,紋理采樣;其二,深度和顏色緩存的讀寫。目前,比較常用的紋理壓縮技術有 S3TC、ETC、ASTC等。這些壓縮技術滿足紋理壓縮的需求。它們的特點是固定壓縮率、有損、壓縮時間比解壓時間長、解壓的硬件實現簡單等。
GPU虛擬化技術
GPU虛擬化技術分為設備仿真、設備直連、API重定向、全虛擬化和硬件虛擬化。這四種方式從不同角度提供了GPU虛擬化的解決方案,設備仿真用軟件模擬GPU,設備直連則允許虛擬機直接使用GPU,后三者則分別從API接口、虛擬層驅動、GPU硬件入手實現虛擬化。其中,設備仿真是在沒有真實硬件的環境下虛擬出GPU,但虛擬出的GPU性能面臨巨大的挑戰,實用價值較低,因而常用于GPU架構研究,主要用于科研人員進行GPU硬件結構仿真。隨著云計算理論和研究的不斷發展,GPU虛擬化在深度學習、人工智慧等領域的重要性不斷增強,特別是英偉達、超威半導體公司等GPU廠商進軍虛擬機后,GPU虛擬化技術獲得長足發展。
特色功能
光線追蹤
光線追蹤采用全局光照模型,通過物理原理對光線和物質之間的交互行為進行建模,不僅考慮直接光照的效果,也考慮物體間相互光照影響,比傳統的光柵化渲染效果更加立體,色彩更柔和更逼真,通常用于離線渲染處理。在基于GPU的光線追蹤上,每個GPU硬件線程同一時刻負責一條光線的處理因此,一個單指令多線程處理器同一時刻處理32條光線。每個線程處理過程都遵循基于棧的遍歷算法。例如,2018年英偉達發布的RTX2080GPU,采用Turing架構,在GPU中集成了68個獨立的RTCore,用于光線追蹤,光線處理能力達到了10Giga/S,1080P@60Hz需要處理的光線約為6Giga/S,實測基于光線追蹤的應用其幀率大致在50FPS左右,基于RTX2080的光線追蹤達到了可用的程度,光線追蹤對于反射和陰影有著更逼真的處理效果,盡管目前仍然是采用光線追蹤和傳統光柵圖形處理相結合的方式來進行圖形渲染,但其效果已經遠超傳統光柵圖形處理,對于游戲、電影等追求逼真光影效果的應用,光線追蹤能提供電影級畫質的實時渲染,帶來視覺效果上質的飛躍。除了游戲、電影方面的應用,產品設計師和建筑師也可以享受到光線追蹤帶來的好處,借助光線追蹤工具和高性能GPU,可以實時生成逼真的產品模型,提高設計迭代速度。
DLSS
英偉達 DLSS的設計初衷就以GPU內置的專用核心(Tensor Core)為基礎,通過使用超級采樣、實時反饋和AI技術來克服傳統的分辨率縮放技術帶來的圖像質量嚴重降低的限制,以實現與原始分辨率基本相當的圖像質量,并且還能夠顯著提升游戲幀率表現。相比NIS、FSR等技術,DLSS可以提供更好的圖像質量細節、更穩定的畫質表現以及更清晰的圖像邊緣質量。由于DLSS總是在基于AI的神經網絡上不斷學習,再加上機制中存在的前后幀聯動輸入分析,這讓它可以生成媲美甚至超過原生圖像的高質量畫面。而傳統分辨率縮放技術則更簡單粗暴地使用削減分辨率的方法進行渲染,再利用相對固定的算法,使用很少的圖形信息采樣進行渲染補足,以犧牲圖形質量的方式換取游戲性能的提升。最大的問題就在于物體細節嚴重衰退和渲染輸出圖形的不穩定性。
FSR
FSR全稱為AMD FidelityFX Super 分辨率,也就是AMD FidelityFX超級分辨率,主要作用是在相同分辨率和畫質設置下提升游戲幀率,改善玩家的游戲體驗 。換而言之,在相同畫質和分辨率設置下,FSR可讓游戲幀率得到50%甚至100%的提升,讓原本在該設置下根本不能玩的游戲變得可以玩,讓原本不是太流暢的游戲體驗達到60fps+的效果。FSR1.0和2.0都會以降低渲染分辨率的方式來顯著提高性能,然后將較低的分辨率輸入圖像縮放到目標分辨率再進行輸出。不過FSR 1.0和2.0的區別在于算法不同,FSR1.0采用的是空間算法,而FSR 2.0則采用的是時間算法。FSR 1.0的空間算法使用的是當前幀的數據來創建縮放輸出圖像,并依賴于合并到游戲渲染管道中的單獨反鋸齒。而FSR 2.0的時間算法使用的是渲染管道中的深度緩沖、運動矢量緩沖和色彩緩沖,并利用來自過去幀的信息來創建質量更高的輸出圖像,并且FSR 2.0還包括優化的高質量抗鋸齒。由于上述這些不同之處,在所有質量模式預設和屏幕分辨率下,FSR 2.0提供的圖像質量理論上要比FSR 1.0更加出色。
分類
GPU與CPU對比
CPU稱為中央處理器,作為計算機系統的運算和控制核心,主要完成處理指令、執行操作、控制時間、處理數據,著重是面向數據的處理。GPU稱為圖像處理器,是一種專門圖像運算工作的微處理器,又稱顯示核心、視覺處理器、顯示芯片,主要面向2D、3D的圖形處理與HPC(高性能計算)。
兩者的硬件架構有著本源的區別,如下圖所示,CPU具備完善的Control、DRAM、緩存、及ALU;而GPU省略掉了Control和大量的Cache,設計更多的ALU計算單元。硬件設計上,馮諾依曼架構的CPU包含控制器單元(Control)、運算器單元(計算邏輯單元ALU)及高速緩沖存儲器Cache、主存儲器DRAM;CPU更利于先后順序的串行處理。而GPU芯片硬件架構設計,沒有控制器單元,節省出更大的空間設計成更多的小且高效的計算邏輯單元(ALU),每列計算單元分配一份高速緩沖存儲器,這種架構使得GPU能夠同時處理多任務而實現高性能的并行計算。且和CPU相比,GPU的計算能力和存儲帶寬也具有明顯的優勢。
同時,兩者的關系也密不可分。GPU缺少控制單元,不能脫離CPU而獨立工作,必須由CPU進行控制調用才能工作;為了滿足大規模并行處理的業務需求,產生了具備CPU通用計算處理能力的GPU,稱為GPGPU,主要是具備GPU的并行計算工作能力,同時具備協助CPU通用計算運算的能力。
應用領域
電力系統
近年來,圖形處理器GPU作為一種具有高內存帶寬和強浮點計算能力的新型并行處理器,逐漸被應用于大規模電力系統分析的加速計算中,在潮流計算、狀態估計、靜態安全分析、電磁暫態仿真和用電負荷預測等應用場合已經有顯著的加速表現,使單一模塊的計算耗時降低到60ms以下。下面簡單介紹GPU技術在電力系統中的應用現狀。
數據管理
GPU在空間數據庫、關系數據庫、數據流、數據挖掘及信息檢索等數據密集、計算密集型應用中獲得了廣泛的關注。通過GPU可以加速某些性能瓶頸點,從而提高整個系統的效率。
自然語言處理
近年來,GPU在自然語言處理領域的應用非常廣泛,在加速語言模型的訓練方法、文本挖掘、文本分類、術語抽取等方向均有豐富的科研實踐成果。例如目前已實現了基于GPU的條件隨機場模型用于數據分類。該方法基于數據劃分的思想,將大規模的數據劃分為適合GPU并行執行的數據塊,數據預處理由CPU執行,包括生成特征集和判斷數據是否需要被劃分。將計算密集的部分移植到GPU完成,再將結果回傳到主機CPU完成后續的工作。
代數運算及流體模擬
應用GPU進行代數運算的研究起步較早,例如早期就有學者曾利用多紋理技術實現矩陣運算操作。隨著GPU硬件可編程功能的發展,實現了在頂點級建立一個代數運算的框架系統。其中包括向量運算和矩陣乘法運算等。而隨后像素可編程功能的出現加速推動了這一領域的研究。GPU還被應用于加速流體運動問題方面的研究,其目的是通過利用優越的計算性能來提高流體模擬的實時性。已有學者實現了利用基于像素編程的多重網格算法求解包括流體力學問題、熱傳導問題等在內的邊界值問題。不過到目前為止這方面的研究大多數還只是集中在二維域中。
人工智能
AI技術的發展與應用,初始階段均以GPU支撐AI的計算能力需求,AI初創公司都是在GPU上做軟件算法,然后集成到現成的服務器做落地應用;實力雄厚的AI科技公司,會潛心專注自己的AI芯片設計研發,以通過芯片硬件實現AI計算力的顯著提升(利用MAC“乘加計算”加速陣列對CNN“神經網絡”中最主要的卷積運算進行加速)。AI算法的煉提升,是人類智力運動的共同結果,差異化將會拉平,而硬件層面的芯片產品競爭將會加劇,伴隨著GPU與CPU逐步走向統一計算架構的趨勢,最終AI芯片的XPU也將會與GPU逐漸相融合。
3D渲染
GPU是相對于中央處理器單元的一個概念,GPU的出現主要是幫助CPU分擔三維處理的負擔,然而近年來興起的GPU渲染在一些特殊應用場景其實有很大的發揮潛力與應用價值,如《阿凡達》就是運用了GPU渲染技術實現特殊視覺效果。通過開啟GPU渲染加速,可以提升圖形加載速度,降低CPU處理器的負擔,使系統運行更加流暢,一些專業的圖形建模和設計類顯卡如Quadro系列顯卡,不僅僅在時間上更勝一籌,也可以在渲染前給出出色的渲染效果圖,這點對于使用者也可以節省更多時間。從實際應用上來看,GPU渲染效果最顯著的是時間上的優勢,其處理速度基本上可以比CPU單獨渲染提高數十倍不止。
超聲成像
近些年來,GPU高度的可并行性和強大的數值計算能力使其成為實現醫學超聲先進成像方法的有力工具之一。在目前的研究中,GPU主要被應用于超聲彈性成像中計算量最大的環節—位移估計和超聲超高速成像。將GPU應用于超聲超高速成像,重點在于線程的任務分配和數據存儲策略的優化。通常的做法是分配GPU中的一條線程負責一個像素點的計算,一個線程塊負責一個通道的數據處理;數據存儲策略方面,受制于GPU中共享存儲器和寄存器大小的限制,大量的數據主要存儲于全局存儲器中,共享存儲器和寄存器只用于存放少量的需要重復計算和讀寫的數據。
性能指標
GPU的性能指標主要包含架構、核心頻率、CUDA核心數等方面,這些指標都會在不同程度上影響GPU的理論和實際性能。
參考資料 >
NVIDIATuring架構.英偉達 .2023-09-28
Comparison Table – Laptop Gpu vs Desktop Gpu.medcpu.2023-10-03
Mobile Graphics: Ten Things You Need to Know.arm.2023-10-03