首頁 -> 網絡技術 -> 技術前哨 -> 正文
GPU運算即將退潮 CPU浮點性能革命

《中無通訊》第68期 文︰ 世界網絡 www.581895.tw 林和安 小洛夫

wps_clip_image-26781

看個筆者這個題目,大家也許會感到十分驚訝。因為近年來各大媒體均大力吹噓GPU運算能力一日千里,加上各種支援GPGPU運算的軟件陸續登場,超級計算機市場上早已是GPU的天下,而且在桌面計算機及智能手機市場也計劃陸續支援GPU加速功能,使GPU在計算機重要性不亞于CPU,筆者憑甚么說CPU會反過來取代GPU呢? 原來,Intel與AMD針對于CPU架構不足,早于數年前已從事新一代指令集及微架構之研發,銳意提升CPU浮點性能,相關產品更已陸續登場,又會為市場帶來怎樣的改變呢?

回顧GPU走上巔峰的日子

GPU的主要應用是游戲市場,何以發展至今天無所不能呢?不如先讓我們回顧一下GPU的發展進路。

GPU全名Graphics Processing Unit,中文解作圖像處理單元,因為NVIDIA認為GPU提升強大,部份甚至是不依賴CPU的獨立運算性能,非過往2D/3D圖形芯片可比。公認的GPU始祖為NVIDIA于1999年推出的GeForce 256。這顆GPU最大的特點是整合了T & L(Transform and Lighting)功能,使GPU可以提供強大的幾何并改進光影表現。而以往這些功能主要由CPU負責的,自此GPU的重要性大大提升。另一方面,NVIDIA是一家野心勃勃的公司,他們并不滿足于游戲市場。在2001年發布的GeForce 3,改用編程的著色器(Programmable Shaders)設計,自此GPU具有一定的可編程功能而非過去固定設計,使用上更有彈性,只待合適的開發平臺,即可開發出各種采用GPU加速軟件。終于在2004年,由美國的史丹佛(Standford University)開發出Brook 這款為GPU而設的計算機語言。隨后在2006年AMD及NVIDIA分開提供了CTM及CUDA開發平臺,而2008年發布的OpenCL更是由多家IT巨擘提倡的跨平臺API界面,自此GPU終于步入超級計算機的平臺。2009年11月中國發布的天河一號超級計算機,即憑借5,120顆Radeon 4870 X2 GPUs的威力成功位列世界500超級計算機第5位(http://www.top500.org/lists/2009/11/),并于2010年11月憑借7,168顆NVIDIA Tesla M2050 GPUs的威力位列世界500超級計算機第1位(http://www.top500.org/lists/2010/11/),既向世界展示了GPU的威力也為我國之光。只是GPU的成功最終吸引了CPU的反擊,此仍市場之必然定律。

wps_clip_image-868

公認GPU的始祖—NVIDIA GeForce 256

wps_clip_image-31003

我國的天河一號及天河1A超級計算機讓大家認識到GPU的威力

AMD SSE5指令集: 加入GPU功能的嘗試

2006年AMD收購了ATI,自始致力于推動CPU與GPU的整合產品—APU。然而隨了開發APU產品外,AMD也把GPU的技術嘗試引入CPU去,這便是發布于2007年8月的SSE5指令集。

SSE5指令集雖然最后沒取得成功,但其理念卻被Intel AVX/2所吸收并加入新的優化。其中一項名為FMA (Fused Multiply-Add)技術,更可提供2倍峰值浮點性能。FMA即乘法及加法融合指令,以計算(a x b) +/- C為例,由于合并了乘法及加法指令,使原來需2次操作變為1次操作,令浮點性能得以提升一倍。FMA指令已隨AMD在2011年發布Bulldozer核心的FX處理器而面世,名為FMA4指令。不過因為FX處理器采用單模塊雙核心設計,由兩顆處理器共享一組資源而使性能強差人意,所以未受市場上太大的注意。不過隨著Intel AVX2指令集支援FMA指令,并成為新一代Haswell架構處理器的標準功能,FMA技術再次獲得市場注意。

Intel版的FMA指令名為FMA3,從功能來說,FMA(3)與FMA4相當,但以FMA4使用彈性較大,而FMA3更易在硬件層面上實現。以d = a + b x c為例,FMA4容許a,b,c及d使用不同的registers,在編程方面更有彈性,而FMA3要求d使用與a,b或c相用的register,可減少code的長度,從而更易在硬件上實現。所以從編程的角度來看FMA4無疑較佳,不過因為Intel的影響力遠比AMD大,加上AMD已在新一代Piledriver加入FMA3功能,所以x86處理器目前主要使用FMA3指令為主。

wps_clip_image-66

AMD SSE5指令集雖然失敗,但卻提供浮點性能的理念卻保存下來

Intel Haswell有望提供1TFOPS浮點性能

雖然AMD Bulldozer是第一個支援FMA指令集的CPU架構,但因為兩個CPU核心共享一組256bit FMA,所以效能跟沒有FMA指令的Intel Sandy Bridge/Ivy Bridge架構的256 bit AVX addition + multiplication不會有太大的分別。然而Intel新一代的Haswell已改用2組256bit FMA,有望刷新CPU浮點性能的新紀錄。

現在讓我們看看Intel新一代Haswell核心在配合含FMA3指令下可以提升多高的浮點性能。以下是Intel自Core 2到Haswell架構,FP性能的比較表,大家可以見到從Core 2/Nehalem架構到Sandy Bridge/Ivy Bridge架構,再到Haswell架構,每代均有2X FP性能的提升。假設是一顆8核心Haswell處理器,在4GHz工作時脈下會有 4000MHz x 8 cores x 32 SP FLOPs/cycle = 1.024 TFLOPS的Single Precision FP性能,即使是Double Precision FP也有4000MHz x 8 cores x 32 SP FLOPs/cycle = 512GFLOPS,十分可觀。若果與Radeon HD 7970 GHz Edition的4.096 TFLOPS,相比的話,CPU僅及GPU的1/4,但算上Double Precision FP的話,Radeon HD 7970 GHz Edition只有1TFLOPS,CPU與GPU性能差距縮小至1/2。Double Precision FP因為提供更高的精度關系,目前重要性正不斷提供,因為架構的不同,CPU的Double Precision FP一般是Single Precision FP的一半,而GPU只有高階型號才能夠提供Single Precision FP的1/3或1/4性能,主流型號僅有1/16性能,難對CPU維持絕對優勢。

image

Intel Xeon Pil成為最新超級計算機第1名

雖然Intel新一代Haswell處理器并沒有擊敗GPU,但Intel以x86技術打造的Xeon Pil協處理器,因使用多顆小型x86核心而使性能大大提升,最近成功擊敗GPU組合連續2季(2013年6月及11月)成為TOP500超級計算機第一名。

2013年6月公布TOP500超級計算機中(http://www.top500.org/lists/2013/6/),第一名的寶座由中國天河二號奪得。它采用了Intel Xeon E5-2692 處理器+ Intel Xeon Phi 31SP協處理器的組合,創下54,902.4 TFLOPS/s的浮點性能,領先第二名美國Titan-Cray XK7的27,112.5TFLOPS/s。而后者所采用的是AMD Opteron 6274處理器 + NVIDIA K20x GPU,很有CPU重新超越GPU的意味。不過問題是Intel把Xeon Pil造成一片獨立的加速卡,它還算不算是CPU呢?另一方面,AMD與Intel最近為旗下的CPU整合GPU,這種名為APU的CPU還算不算是CPU呢?似乎CPU與GPU的分別越來越模糊呢?

wps_clip_image-17046

當今第一超級計算機采用了Intel Xeon E5-2692 處理器+ Intel Xeon Phi 31SP協處理器的組合

wps_clip_image-554

第二名超級計算機是采用AMD Opteron 6274處理器 + NVIDIA K20x GPU的組合

wps_clip_image-17903

Intel Xeon Pil協處理器外形有如顯示卡,還算不算是CPU呢

wps_clip_image-28816

AMD APU還算不算是CPU呢

結論︰GPU的優點及CPU所吸收了

本文的目前,并沒有否定GPU的價值。相反GPU的優點正逐漸被CPU所吸收,這表現在新一代指令集仿傚了GPU的高浮點性能平衡運算,以及CPU整合GPU的APU產品。對于業界來說,GPU與CPU各有所長,互補不足,新一代的OpenGL 1.2, OpenGL 2.0以及NVIDIA CUDA 6,都加入了GPU + CPU同時運算功能。狹義的GPU正逐漸消失,廣義的GPU有如旭日初升。

文章搜索

覆蓋全國各省會城市及海外城市的網速測試
→選擇要測試的地區
→選擇目標測試點
>> 測試點注冊
时时彩计划