在現代GPU發展史上,2006年是一個不能錯過的節點——這一年AMD以54億美元的代價收購了ATI公司,從此手握CPU及GPU兩張好牌,AMD此後一直以此為榮,強調他們是業界唯一能夠同時提供高性能CPU及高性能GPU的公司,CPU拳打NVIDIA,GPU腳踢英特爾。當年另外一件事就是微軟在DX10 API上推出了統一渲染架構,NVIDIA 2006年發佈的G80架構GeForce 8800 GTX顯卡率先支持統一渲染,從此NVIDIA的CUDA也閃亮登場了。
2006年發生的這兩件事本質上沒什麼關聯,但是回想起當年及之後的GPU發展情況,總忍不住遐想一下如果當年ATI沒被AMD收購,ATI、NVIDIA兩家GPU公司今天的發展會如何?因為在2006年前後,ATI在獨顯GPU市場上的份額與NVIDIA並沒有多大差距,05年之前市場份額甚至還領先一些,但2006年被收購之後由於兩家公司需要整合,AMD/ATI兩邊的CPU、GPU產品路線圖都不免受到影響,也是從那個時候AMD顯卡的份額不斷下滑,與NVIDIA的差距不斷拉大,從曾經的55開變成了46開、37開,直到今年初雙方的差距已經是28開了。
Reddit上有帖子討論了2002年到2017年GPU市場的份額變化
NVIDIA做大靠的是AMD收購ATI的機遇嗎?也許有天時地利的因素,但從根本上來說雙方差距的拉大還是源於產品/技術的差異,NVIDIA在G80架構之後就開始佔上風了,期間雖然也有GTX 480這樣的翻車事故,但總體上還是一路上揚的,40nm Fermi費米架構之後Kepler、Maxwell、Pascal、Volta(這代只有Titan V這一個桌面版顯卡),再到去年的Turing圖靈顯卡,NVIDAI在GPU市場上的地位已經穩如狗了,AMD近幾代顯卡掀不起大風大浪了。
NVIDIA的GPU路線圖已經四五年沒更新了,最新的還是15年版
NVIDIA以往會在GTC大會上提前兩三年公佈GPU路線圖,不過2015年之後更新過Pascal顯卡之後就不再推新的GPU路線圖了,Turing圖靈顯卡發佈之前就沒在路線圖上出現過,圖靈之後的GPU架構官方也是守口如瓶,目前的說法稱之為Amper安培,但最終是否如此還是未知數。
今天的超能課堂裡我們就來回顧下NVIDIA GPU的發展過程,回頭來看下這10年中NVIDIA GPU都經歷了怎樣的變化。同樣地,後續還有AMD的GPU發展路程姊妹篇,敬請期待。
NVIDIA G80到GF100架構:40nm費米GPU的教訓
NVIDIA的GPU發展史少說也要從G80時代CUDA架構開始講起,不過限於篇幅原因,這裡不打算再挖墳這麼深了,G80及衍生版的G92核心在NVIDIA GPU中非常經典,馬甲卡當初就是形容這一時期變化的,可以說花樣頻出,比現在的刀法精湛多了。
microway之前總結過GF100架構及之前的NVIDIA GPU架構情況
曾經有段時間業界形容AMD、NVIDA在GPU策略上的不同是“AMD擅長小核心,性能適中,但是低功耗、NVIDIA偏重大核心,性能強,但功耗高、成本更貴”,NVIDIA在GT200核心上確實是大核心策略,在GF100核心上達到了巔峰,從SP單精度、DP雙精度配比上大家應該可以看出來,這時候NVIDIA已經在大幅提升GPU的計算性能了。
在40nm Fermi費米架構中,NVIDIA一下子將CUDA核心數提升到了512個,是GT200核心的兩倍,而且單雙精度達到了1:2,大量核心用於雙精度計算。但是第一代費米核心的GTX 480顯卡也因此翻車了,還記得那個著名的顯卡紅外溫度100°C+的圖片嗎?說的就是GTX 480時代的事。
當年的GTX 480顯卡(上)與GTX 580顯卡(下)
GTX 480在功耗、發熱上的翻車教訓導致NVIDIA一度很難堪,直到後來推出了GTX 580顯卡才有所緩解,詳細情況大家可以翻看我們之前的評測:Fermi威力完美呈現,GeForce GTX 580全球同步評測
總的來說,40nm費米架構這一代,NVIDIA在GPU設計上有了一次飛躍,規格大幅提升,不僅注重遊戲性能,也重視計算性能,為此塞入了更多的雙精度計算單元,但也因此帶來了諸多問題,GTX 480翻車事故帶給NVIDIA很多教訓,多多少少都影響了後來的GPU架構設計。
2012年NVIDIA Kepler架構:遊戲、計算GPU分離,NVIDIA後發制人
距離GTX 580顯卡發佈一年半時間後,2012年3月22日NVIDIA推出了GTX 680顯卡,由此28nm工藝的Kepler架構閃亮登場。這時候AMD基於全新GCN架構的HD 7970顯卡已經發布將近3個月了(海外市場2011年12月底發佈,國內是次年1月初),後者當時光芒萬丈,GCN架構同時融合了計算及遊戲的優點,性能比之前的VLIW架構顯卡有了明顯進步,而且還首發了臺積電28nm工藝、PCIe 3.0等等。
GTX 680發佈於2012年3月底
GTX 680顯卡使用的是Kepler家族中的GK104核心,但GK104反應的架構設計思路早在GF100到GF104、GF114架構中就有所體現了,那就是減少SM單元數(NVIDA這代的正式稱呼是SMX單元),提升每組SM單元中的CUDA核心數,GF100時代每組SM單元還是32個CUDA核心,GF104/GF114則是每組SM單元48個CUDA核心,而到了Kepler時代,每組SM單元的CUDA核心數一下子提升到了192個,紋理單元也增加到16組,前端渲染單元也增加到四組,同時SFU以及LD/ST單元也是水漲船高,增加到32組,紋理單元再次翻倍,8組SMX單元總計有1536個流處理器、128個紋理單元以及32個ROP單元。
GF110 SM單元(左)、GF114 SM單元(中)以及GK104 SMX單元(右)對比
除了SM單元大變之外,NVIDIA在Kepler架構中還做了一項重要改變——從Kepler開始,NVIDIA以往堅持的Core:Shader=1:2的分頻模式已經沒有了,以前採用這種方式是因為核心頻率不能大幅提高,為了提高性能就必須讓CUDA的核心頻率增加一倍,但是這也意味著更高的能耗。
GK104架構的一大特點就是CUDA規模大幅增長
GTX 680中NVIDIA將SMX單元中的CUDA核心數提高至原來的3倍,而且核心頻率也達到1GHz以上,不再需要Shader異步了,二者將同頻運行,有助於降低顯卡功耗,因此GTX 680在CUDA數量暴增的同時功耗更低,而每瓦性能比更是提高了一倍。
GTX 680顯卡的規格
在Kepler時代,NVIDIA還改變了一個潛規則——以往GPU發佈是首發大核心,比如費米時代的GF100到GF104/GF106,而Kepler時代是首發GK104,更大的核心GK110是後面才發佈的。不過這次改變也只是Kepler時代出現的,在後面的Pascal、Volta及現在的Turing中多是大核心先發(GTC大會上首發,Tesla計算卡先用),GX104/106核心後續才會跟進。
GTX 680顯卡的發佈解決了NVIDIA的燃眉之急,遊戲性能小幅領先AMD的HD 7970,扳回了一局,不過計算性能上不如後者,畢竟GK104並不是為計算而生的架構。對NVIDIA來說,Kepler是他們真正貫徹了遊戲、計算卡徹底分離的產品,想要更好的計算性能?那就找大核心的GK110核心吧。
2012的GTC大會上NVIDIA就展示了GK110大核心的威力,年底的SC超算大會上正式發佈了基於GK110的Tesla K20X及Tesla K20加速卡,完整版GK110核心擁有15組SMX單元,總計2880個CUDA核心,集成了71億晶體管,核心面積也達到了551mm2。
GK110核心的SMX單元中依然有192個CUDA核心,但DP雙精度單元數量從GK104的8個提升到了64組,這樣一來但雙精度的比例就變成了1:3,雖然還沒有達到費米時代1:2那麼誇張的地步,但遠高於GK104的1:24了,再加上總性能的提升,GK110核心的計算性能總體來說還是進步的。
此外,GK110不僅僅是計算規模的增加,還增加了一些計算專用的新技術,比如NVIDIA開發的Grid Management Unit、GPUDirect、Hyper-Q以及Dynamic Parallelism動態並行技術。
第一代Titan顯卡
在消費級顯卡中,GK110首先用於2013年3月發佈的GTX Titan顯卡中,自此NVIDIA也開闢了一條新的產品線——Titan顯卡,售價是999美元起步,比當時的高端顯卡翻倍。
此外,Titan顯卡的公版設計也與之前的顯卡大為不同,並影響了後面的GTX XX80/80 Ti系列公版顯卡的設計。
Titan顯卡不是一般人買得起的,2013年11月份NVIDIA又推出了基於GK110核心的GTX 780系列顯卡,其中GTX 780 Ti使用的是GK110-425-B1新核心,與此前的GK110還有所不同,核心面積更小一些,而且啟用了完整版SMX單元,導致它的規格實際上比Titan顯卡更好,性能更強,以致於後面NVIDIA又推出了完整版GK110核心的Titan Black顯卡。
在Kpler架構的尾聲階段,NVIDIA還推出了GK210核心,它可以說是GK110核心的再改良版,也被稱為Kepler 2.0,CUDA計算能力從GK104的3.0、GK110的3.5升級到了CUDA 3.7。
此外,NVIDIA並沒有改變CUDA核心數或者CUDA的架構,他們改進的只是SMX單元之間的內存子系統,GK110(B)的SMX單元擁有256KB寄存器文件,64KB共享緩存,GK210的規模翻倍,擁有512KB寄存器文件,128KB共享緩存,因此它改進了SMX單元的數據吞吐量,提高了效率,確保CUDA核心的更容易頻繁使用。
不過GK210架構主要是用在計算卡上, 消費級顯卡中沒有,所以DIY玩家的影響力非常少,倒是有同樣Kpler 2.0的GK208等核心用於低端的GT 740/730/720及移動版產品中。
2014年NVIDIA Maxwell架構:SMM單元又重組,更注重能效
在Kpler時代,NVIDIA顯卡從AMD HD 7970顯卡的陰影中走出來了,GK104核心的GTX 680追上了HD 7970,但沒有全面優勢,GK110大核心的GTX 780系列性能上有絕對優勢了,只是功耗要高,但此時的NVIDIA已經掌握主動權了,畢竟AMD後來推出HD 7970繼任者的R9 290X同樣存在功耗、發熱的問題。
根據NVIDIA的路線圖,Kepler之後就是Maxwell架構了,這時候製程工藝還是28nm,Maxwell架構的重點則是改進能效。在這個階段,NVIDIA又上演了一次出人意料的舉動,Maxwell架構既不是GM200也不是GM204,而是GM107,用在了GTX 750 Ti及GTX 750顯卡,從命名上也不是更新一代的,還是沿用了GTX 700系列的。
GM107核心使用的是Maxwel一代架構,其最大變化就是將SM單元(這一代稱為SMM單元)再次重組,從Kpler時代的每組SM單元192個CUDA核心減少到了每組128個,但是每個SMM單元將將擁有更多的邏輯控制電路,便於精確控制,這使得GM107核心的每核心效能提升了35%,每瓦功耗比提升了一倍。
這種全新的 SM 架構可大幅提升節能性,而且在著色器有限的工作場合中可令每個CUDA核心的性能提升 35%。實現這些進步需要對架構進行大量重大更改。 NVIDIA重新編寫了SM調度器架構和算法,使其更加智能,避免了不必要的停頓,同時進一步降低了調度每條指令所需的能耗。
當然,SMM單元也有很多改進的地方,比如L2緩存容量從之前的256KB大幅增加到2MB,H.264及NVENC編碼/解碼能力也提升了,指令週期性能也改善了。
反映到顯卡上,GTX 750 Ti及GTX 750顯卡擁有極好的能效比,遊戲功耗比同期的HD 7770、GTX 660甚至GTX 650 Ti功耗要低很多,而且溫度、噪音也非常低,這款顯卡可以說是近年來的一代經典。
在GM107核心的Maxwell一代架構之後,NVIDIA又在2014年9月份推出了GTX 980/970顯卡,它們使用的是GM204核心,也被稱為Maxwell 2.0架構。整個GM204核心可分為4組GPC單元,每組GPC則包含4個SMM單元,每個SMM單元又包含128個CUDA核心,8個紋理單元以及一個多邊形引擎單元(PolyMorph Engine 3.0),總計2048個CUDA核心,128個紋理單元。
在桌面級顯卡命名上,NVIDIA這次跳過了GTX 800系列(OEM及移動版GPU上有GTX 800系列),直接進入了GTX 900系列,GTX 980使用的是GM204-400核心,搭配4GB GDDR5顯存,但它的性能已經超過了GK110大核心的GTX 780 Ti顯卡,TDP則從250W直降到165W,整機功耗測試中也印證了功耗的大幅下降,可以說能效優勢非常明顯,不論是對AMD的顯卡還是對自家上代顯卡而言都是如此,能效簡直是碾壓般的存在。
在GM107、GM204、GM206核心之後,NVIDIA在Titan X顯卡上又使用了GM200核心,而且是完整版的GM200-400核心,該卡發佈於2015年3月18日,它使用的GM200核心擁有6組GPC單元,24組SMM單元,每組SMM單元128個CUDA核心,總計3072個CUDA核心,而顯存控制器也從之前4組64bit GDDR5變成了6組,位寬384bit。
不過6月1日NVIDIA又推出了GTX 980 Ti顯卡,使用的也是GM200大核心,但是閹割版的GM200-310核心,CUDA核心數為2816個。GTX 980 Ti顯卡的詳細規格如下:
2016年NVIDIA Pascal架構:16nm製程紅利,計算遊戲核心再分離
時間很快到了2016年,4月初的GTC大會上NVIDIA發佈了Tesla P100加速卡,使用的是GP100核心,這是pascal架構的大核心,製程工藝升級到了16nm,這種工藝則是高性能工藝,所以在Pascal顯卡上其GPU頻率大幅提升,起步就達到了1.6GHz,加速頻率達到2GHz稀鬆平常。
在Pascal顯卡上,最大的特色就是先進工藝帶來的製程紅利,不過這時候的GPU架構再次出現了遊戲、計算的分離,出現了GP100、GP102兩種大核心,而且使用的架構、顯存都是不同的,其中GP100是純粹的計算核心,不僅有3584個單精度CUDA核心,雙精度核心也達到了1792個,重新回到了1:2的比例。
此外,計算用的GP100核心使用的是HBM 2顯存,等效位寬4096bit,帶寬達到了720GB/s,雖然沒有實現HBM2顯存1TB/s的滿速帶寬,但帶寬已經比當時的GDDR5顯存大幅提升了,只不過HBM2顯存實在太貴了,別說2016年,直到2019年的今天都遠未普及。
2016年7月份NVIDIA推出了Titan X Pascal顯卡,它使用的也是16nm Pascal架構,但核心是GP102,全規格的GP102核心確實可以稱為目前最強大的微架構:120億晶體管、3584個流處理器、12GB GDDR5X 顯存、384-Bit位寬,相比Tesla P10的HBM 2顯存和NVLink有所妥協,所以顯存帶寬為480GB/s,8+6Pin供電,顯示接口提供Display Port 1.4、HDMI 2.0b以及雙鏈DVI,最大支持7680*4320@60Hz輸出,性能上達到11TFLOPS。
在Titan X Pascal之外,桌面的GTX 1080 Ti顯卡也是GP102核心,除了顯存容量、位寬的變化之外,GP102核心的SM單元架構也跟GP100核心不同,後者為了追求更高的計算性能,每組SM單元的CUDA核心數減少到了64個,但集成了更多組SM單元,高達56組,而GP102核心雖然也是3584個CUDA核心總數,但只有28組,每組SM單元的數量回歸到了Maxwell的128個,所以這一代遊戲及計算再次分離,本質上來說GP100是真正的Pascal核心,而GP102核心是16nm加強版的Maxwell架構。
Maxwell(左)架構與GP104核心的SM單元架構
從GTX 1080的GP104到GTX 1080 Ti的GP102核心,它們的SM單元架構倒是一致的,只是CUDA核心數量的區別。
除此之外,GTX 1080系列顯卡在在技術上也比GTX 980系列有所增強,使用了頻率更高的GDDR5X顯存及更先進的內存壓縮算法,改進了異步運算及對VR的支持。
2017年NVIDIA Volta:真正為計算而生的GPU,支持AI加速
在NVIDIA的路線圖上,原本Maxwell之後是Volta,後者技術邁進的更多,但因為種種原因,Volta顯卡進度不如預期,所以中間多了個Pascal顯卡,這也可以解釋為什麼GP102/104核心的架構其實比Maxwell沒什麼質的變化。
但是Volta就不同了,這又是一款真正為計算而生的顯卡架構了,與Pascal相比,GV100核心的CUDA核心數一下子增加到了5120個,儘管使用了16nm改良版的12nm FFN工藝,但它各方面規格都很驚人——815mm2核心面積、211億晶體管、5120個CUDA核心、15TFLOPS浮點性能等等。
在GV100大核心中,每組GPC單元是14個SM單元,總數應該是84組SM單元,但是現在Tesla V100跟Tesla P100一樣都不是完全體,前者啟用了56組SM單元,後者啟用了80組SM單元,總計80x64=5120個CUDA核心。
除此之外還有FP64單元,GV100依然延續了GP100中FP32:FP64=2:1的比例,每個SM單元中有32個FP64單元,理論上有2688個FP64單元,實際啟用的是2560個。
更重要的是,Volta架構在傳統的單雙精度計算之外還增加了專用的Tensor Core張量單元,用於深度學習、AI運算等,在GV100大核心中,每組SM單元中還有8個Tensor單元,這樣整個SM單元中就是FP32:FP64:Tensor=64:32:8的比例存在,GV100也因此有了Tensor計算能力這個指標,Tesla P100的Tensor計算能力高達120TFLOPS,NVIDIA宣稱它的Tensor性能是Pascal架構的12倍。
Volta架構如此之特殊,以致於NVIDIA並沒有推出對應的消費級產品,除了TITAN V這一款顯卡,TITAN V從Tesla V100的4096-bit、16GB縮減為3072-bit、12GB的HBM2顯存,顯存頻率850MHz,等效數據頻率1700MHz,帶寬高達652.8GB/s,另外TITAN V的L2緩存減少到4.5MB,這些使得在深度學習運算性能上稍不如Tesla V100(112TFLOPS),顯卡供電接口是6+8pin,顯卡TDP 250W,顯示接口為3個DP+1個HDMI。
2018年NVIDIA Turing架構:追光十二年,RTX全新品牌誕生
Volta這一代沒有什麼主流遊戲卡問世,但這也沒影響NVIDIA的顯卡布局,GTX 10系列顯卡時代恰逢礦卡市場再次火爆,導致GTX 1060等顯卡完全不愁銷路,2017到2018年上半年的時候NVIDIA及AMD都不擔心互相搶市場了,光是賣礦卡就大賺特賺了,所以GTX 10系列的Pascal顯卡升級換代週期長達2年多,發佈2年之後不光沒有退市,還沒有降價,簡直是顯卡市場上的奇蹟。
不過2018年下半年了,礦卡崩了,NVIDIA及顯卡廠商即便有礦卡庫存問題,還是要推新架構,8月底的德國科隆遊戲展上NVIDIA正式發佈了Turing圖靈架構,當然這次其實是遊戲展之前的SIGRAPH大會上現發佈了面向工作站的Quadro RTX 8000/6000系列專業卡。
對於圖靈顯卡,我們已經很熟悉了,這一代顯卡最大的變化首先是全新的品牌命名,從GTX變成了RTX,而RTX代表就是實時光線追蹤技術,因為這是圖靈顯卡技術升級最多的地方,NVIDIA CEO黃仁勳在發佈會熱情表態圖靈是他們12年來GPU架構變化最大的一次,原因就是RTX,通過專用的RT Core核心,NVIDIA實現了遊戲中可用的實時光線追蹤渲染。
除了RTX之外,圖靈顯卡也支持Volta的Tensor Core,可以用於AI加速,NVIDIA之前也提供了多種顯卡可用的AI玩法,比如DLSS抗鋸齒技術,不過相比RTX光追技術,AI加速在遊戲中應用太少,不夠吸引人。
在SM單元架構中,圖靈這一代又有所不同了,不同於Pascal架構中的GP102/GP104核心,更像是Volta架構的GV100大核心,因為每組SM單元又變成了64個CUDA核心,其中RTX 2080 Ti使用的TU102核心一共分為6組GPC單元,每組GPC單元又擁有12個SM單元,一共是72個SM單元,但RTX 2080 Ti也只用到其中的68個而已,算下來68×64=4352個CUDA流處理器。
至於RTX 2080顯卡使用的TU104核心,完整版的TU104核心依然是6組GPC單元,不過每組GPC改為8個SM單元,一共是6×8=48個,而RTX 2080的GPU核心是TU104-400,只用上了46組,還有預留有2組空缺的,46×64=2944個,規模要比RTX 2080 Ti小多了。
支持RTX光追是圖靈顯卡的特色,不過RTX光追除了遊戲數量的問題之外,還有一個問題就是它對性能的要求還是太高了,所以在圖靈顯卡這一代中NVIDIA的市場策略也不同,支持RTX技術的顯卡主要是RTX Titan、RTX 2080 Ti、RTX 2080、RTX 2070及RTX 2060,而不支持RTX的則變成了GTX 16系列,包括GTX 1660 Ti、GTX 1660及剛剛發佈的GTX 1650顯卡。
RTX 20系列顯卡的規格
GTX 16系列顯卡的規格
總結:五代GPU性能大幅提升,能效更高,但價格也更高
從2012年的Kepler顯卡到今天為止,NVIDIA的顯卡已經推出了五代架構,如果算上每代中的大核心與遊戲核心,那就是至少10款了,這些顯卡的製程工藝也從28nm一路升級到16nm、12nm。在遊戲性能上,根據超能網的顯卡天梯榜,如今的RTX 2080 Ti顯卡的性能是GTX 480顯卡的7倍左右,而GPU的晶體管數量也從30億增長到了210億,與性能增幅基本同步。
如果考慮到性能、功耗,那麼多年來NVIDIA顯卡的能效增長還是很明顯的,畢竟大核心的TDP功耗多年來一直維持在250-300W之間,但性能已經增長了6-7倍。
此外,前面我們沒有詳細提及歷代顯卡的價格,但是這個趨勢也很明顯了,GTX 400到GTX 700階段中,高端顯卡的售價都是3999元,但是這幾年來價格已經水水漲船高,NVIDIA這邊尤其明顯,Titan顯卡從最初7999元的價格一路漲到了2萬元,而主流市場上的旗艦顯卡價格也漲到了6000元以上,RTX 20這一代漲價更多,RTX 2080 Ti售價直奔9999元,這是以往Titan顯卡的級別了。
閱讀更多 SH看科技 的文章