從2016年AlphaGo登場以來崇呵,基于深度學(xué)習(xí)的人工智能浪潮坷澡,催生出能夠以假亂真的實(shí)時(shí)人臉轉(zhuǎn)換豆挽,準(zhǔn)確率接近百分百的語言翻譯育谬、文字識(shí)別、語音識(shí)別技術(shù)帮哈。人類正式跨入第三次人工智能浪潮膛檀。
GPU作為人工智能時(shí)代的專業(yè)武器,發(fā)揮了越來越重要的作用娘侍。
因?yàn)槊總€(gè)算法模型背后咖刃,都是百億到千億級(jí)的參數(shù),這些海量的參數(shù)又可以形成指數(shù)倍的組合憾筏。要想達(dá)到最優(yōu)的效果嚎杨,需要從這些參數(shù)組合中,大海撈針般地找到一組最合適的參數(shù)氧腰。
算法的作用只是設(shè)計(jì)高效的參數(shù)搜索規(guī)則枫浙,而再神奇的算法,也需要執(zhí)行古拴,GPU是真正根據(jù)這些規(guī)則算出來最優(yōu)參數(shù)的幕后大功臣箩帚。
可以說,正是因?yàn)镚PU性能的快速提升黄痪,才有了現(xiàn)在的人工智能技術(shù)的突飛猛進(jìn)和大規(guī)模應(yīng)用紧帕。
對(duì)于人工智能專業(yè)或者相關(guān)從業(yè)者,不僅要專注于算法和編程能力的提升桅打,更要了解GPU的前世今生是嗜,能選取合適的GPU來實(shí)現(xiàn)自己的人工智能模型愈案。
下面,用一篇文章來說透GPU相關(guān)的知識(shí)和選擇GPU的方法鹅搪。
一站绪、什么是GPU?
在計(jì)算機(jī)領(lǐng)域涩嚣,我們一般會(huì)聽到CPU和GPU兩個(gè)名詞崇众,CPU處理器精度更高,就像一位穩(wěn)坐指揮臺(tái)的指揮官航厚,負(fù)責(zé)處理著我們的輸入指令顷歌,并發(fā)號(hào)施令,指揮著電腦內(nèi)的硬件和軟件程序干活幔睬。
但是CPU不支持并行運(yùn)算眯漩,涉及到圖形、畫面處理等工作麻顶,自己也能干赦抖,但是干的并不專業(yè)。
這個(gè)時(shí)候就要請(qǐng)出專業(yè)的人才——GPU來干了辅肾。他天然支持并行運(yùn)算队萤,被重點(diǎn)應(yīng)用于圖像處理、游戲畫面處理等領(lǐng)域矫钓,因?yàn)檫^去一直是用來加載游戲要尔、視頻等高清畫面的,所以大家就給他起了個(gè)通俗易懂的名字:顯卡新娜。
也就是說CPU側(cè)重于對(duì)系統(tǒng)的調(diào)度赵辕,是電腦的核心,GPU注重于大規(guī)模并行計(jì)算概龄,是電腦里的計(jì)算專家还惠。
CPU對(duì)于一般的文字、運(yùn)行軟件來說足夠用私杜。所以對(duì)于一般人來說蚕键,選電腦的時(shí)候,處理器都是一個(gè)比較重要的挑選標(biāo)準(zhǔn)衰粹。
而深度學(xué)習(xí)本質(zhì)上是向量的并行運(yùn)算锣光,這和處理圖像等有著相似的特點(diǎn),所以寄猩,對(duì)于做深度學(xué)習(xí)來說嫉晶,顯卡的用途就發(fā)揮出來了骑疆。
當(dāng)然田篇,這里只是在說大型復(fù)雜的模型訓(xùn)練過程中才會(huì)體現(xiàn)出兩者的差別替废,對(duì)于簡單的機(jī)器(深度)學(xué)習(xí)案例,例如minist手寫數(shù)據(jù)識(shí)別泊柬、鳶尾花分類椎镣、波士頓房價(jià)預(yù)測等這種小的,CPU和GPU是完全看不出差別的兽赁。
所以状答,千萬別把入門深度學(xué)習(xí)當(dāng)作找父母要錢買一臺(tái)好電腦的理由。
順帶提一句刀崖。谷歌還推出了專門用于深度學(xué)習(xí)訓(xùn)練的TPU(Tensor Processing Unit, 張量處理器)惊科,相對(duì)于GPU來說運(yùn)算處理速度更快,價(jià)格更便宜亮钦,現(xiàn)在已經(jīng)用于谷歌的云計(jì)算平臺(tái)馆截,后續(xù)也可以關(guān)注,但是目前還不是深度學(xué)習(xí)界的主流蜂莉。
二蜡娶、當(dāng)今顯卡哪家強(qiáng)?
在當(dāng)今顯卡界映穗,有兩家公司占據(jù)絕對(duì)主導(dǎo)地位:英偉達(dá)(俗稱N卡)和AMD(俗稱A卡)窖张,如果非要評(píng)選一位老大,那必須是英偉達(dá)公司(英偉達(dá)的市場份額大約在83%左右蚁滋,而AMD僅僅17%左右)宿接。
英偉達(dá)的創(chuàng)始人黃仁勛有個(gè)最大的特點(diǎn)就是喜歡在廚房里發(fā)布顯卡。
N卡因?yàn)槭袌稣加新矢呤嗯猓殖隽艘环N主要負(fù)責(zé)處理器的并行運(yùn)算的cuDNN架構(gòu)澄阳,所以主流的深度學(xué)習(xí)框架比如TensorFlow對(duì)他的支持也比較好,因此踏拜,提到做深度學(xué)習(xí)的GPU碎赢,對(duì)于初學(xué)者來說,英偉達(dá)是首選速梗,他也是我們主要的介紹對(duì)象肮塞。
英偉達(dá)旗下的顯卡產(chǎn)品大致有三大系列:GeForce、Quadro與Tesla姻锁。這三大系列產(chǎn)品功能側(cè)重有所不同枕赵,價(jià)格差距也很大,GeForce性價(jià)比最高位隶,主要用于游戲畫面處理拷窜;Quadro性價(jià)比居中,主要用于作圖,Tesla主要用于搭建GPU服務(wù)器篮昧。
因?yàn)镚eForce系列性價(jià)比相對(duì)較高赋荆,也是大家用來跑深度學(xué)習(xí)程序的首選。
GeForce系列前綴一共有4種懊昨,性能由高到低排列為:GTX > GTS > GT > GF窄潭。常見的一般就是GTX和GT,GTS和GF顯卡一般較老酵颁,已經(jīng)不多見了嫉你。
在GTX系列下,還有泰坦子系列躏惋,也就是GTX****Ti幽污。這個(gè)系列屬于GeForce系列中的豪華版,性能方面代表了當(dāng)時(shí)代單芯顯卡的最高水平簿姨。在深度學(xué)習(xí)中應(yīng)用也最廣油挥。我們熟悉的GTX1080Ti、GTX3080Ti都出自這個(gè)系列款熬。
在GTX系列下深寥,還有泰坦子系列,也就是GTX****Ti贤牛。這個(gè)系列屬于GeForce系列中的豪華版惋鹅,性能方面代表了當(dāng)時(shí)代單芯顯卡的最高水平。在深度學(xué)習(xí)中應(yīng)用也最廣殉簸。我們熟悉的GTX1080Ti闰集、GTX3080Ti都出自這個(gè)系列。
字母后邊的數(shù)字代表顯卡的型號(hào)般卑,其中前兩位數(shù)字代表產(chǎn)品是第幾代武鲁,10之后就是每次進(jìn)10了,比如GTX1080蝠检、GTX2080等等沐鼠。之后的兩位數(shù)字代表它的小版本,一般來說同代顯卡這個(gè)數(shù)字越大性能就越強(qiáng)叹谁。
例如GTX3080Ti就是一塊第30代游戲級(jí)顯卡饲梭,就是比GTX3060Ti性能更強(qiáng)。
除了泰坦的加強(qiáng)版Ti系列外焰檩,還有憔涉,SE(閹割版),M(移動(dòng)版)析苫,MX(移動(dòng)加強(qiáng)版)兜叨,同型號(hào)的顯卡性能比較:Ti>無后綴>SE>MX>M穿扳。(10代顯卡之后,m和mx的命名方式也幾乎絕版)
當(dāng)然国旷,原廠生產(chǎn)的GTX泰坦系列顯卡通常被稱為公版顯卡纵揍,除了原廠生產(chǎn)的GTX系列顯卡之外,我們還可以看到國內(nèi)的廠商購買英偉達(dá)的芯片設(shè)計(jì)專利议街,自行設(shè)計(jì)PCB、散熱方案并生產(chǎn)的顯卡璧榄,這種顯卡成為非公版特漩。
一般來說,非公版顯卡會(huì)在公版顯卡的基礎(chǔ)上做一些改造骨杂,甚至增加一些實(shí)用功能涂身,甚至比公版更好用。這就類似于把谷歌的安卓做了自己的定制化改造搓蚪。缺點(diǎn)就是各家廠商生產(chǎn)的顯卡質(zhì)量層次不齊蛤售,有的價(jià)格甚至比公版還貴。但是妒潭,如果公版顯卡太搶手悴能,非公版顯卡也是一個(gè)很好的替代項(xiàng)。
另一種我們深度學(xué)習(xí)可能會(huì)用到的就是Quadro系列雳灾,這個(gè)系列一般用P***來表示漠酿,比如P400、P1000等谎亩。這個(gè)系列相同配置價(jià)格要比GF系列貴些炒嘲,常常被公司買來部署云計(jì)算服務(wù)器,如果線上租用顯卡匈庭,也可能會(huì)選到這個(gè)系列夫凸。
AMD的顯卡的命名方式就不贅述了。其實(shí)要是單純想看顯卡性能阱持,也沒有必要看那些夭拌,網(wǎng)上有一個(gè)叫“顯卡天梯圖”的,可以一目了然比較不同品牌衷咽,不同系列啼止、不同信號(hào)的顯卡性能,天梯圖越靠上的位置兵罢,顯卡性能越強(qiáng)献烦。附上最新的天梯圖,持續(xù)更新卖词。
(來源:秋刀魚半藏(原帖地址))
當(dāng)然巩那,顯卡還有個(gè)參數(shù)就是顯存吏夯,跟內(nèi)存是一個(gè)道理,顯存越大即横,可以緩存的內(nèi)容就越多噪生。對(duì)于非常吃顯存的圖像類深度學(xué)習(xí)程序來說,顯存太小的顯卡批處理就不能調(diào)太大东囚,否則會(huì)程序會(huì)報(bào)錯(cuò)跺嗽。
三、如何能用上顯卡
方案一:自己買顯卡外接到電腦
為了用高級(jí)一些的顯卡再買一臺(tái)配置好顯卡的電腦顯然不現(xiàn)實(shí)页藻,可以直接買顯卡外接桨嫁。
這種方式的優(yōu)點(diǎn)是比較自由,自己的東西想怎么用就怎么用份帐,缺點(diǎn)是貴璃吧,最新的GTX3080Ti出廠價(jià)差不多就上萬人民幣了,隨著比特幣挖礦的興起废境,現(xiàn)在屬于加價(jià)也難求一卡畜挨,而且購買顯卡需要具備一定的動(dòng)手能力才能玩的轉(zhuǎn),因?yàn)樾枰I來自己接在電腦上噩凹。(不過隨著目前很多廠商推出了外置顯卡擴(kuò)展塢巴元,顯卡也逐步會(huì)做到可以像U盤一樣即插即用了)
所以這種方式只適用于對(duì)顯卡有重度需求的土豪,以及重度游戲愛好者驮宴,或者要從事深度學(xué)習(xí)領(lǐng)域的研究务冕,如果只是拿來跑簡單的深度學(xué)習(xí)程序用來入門,我相信大概率會(huì)是:“買前生產(chǎn)力幻赚,買后玩游戲”或者是“買前生產(chǎn)力禀忆,買后壓箱底”。
如果確實(shí)有需要落恼,那么可以根據(jù)自己錢包的承受能力和使用場景選擇價(jià)格合適的顯卡箩退。
方案二:蹭公司(學(xué)校)的顯卡
對(duì)于學(xué)生來說,如果你能進(jìn)入學(xué)校里的人工智能實(shí)驗(yàn)室打工佳谦,一般實(shí)驗(yàn)室里會(huì)標(biāo)配幾個(gè)顯卡集群用于大家跑程序(如果一個(gè)人工智能實(shí)驗(yàn)室里沒有這么一個(gè)深度學(xué)習(xí)集群戴涝,那基本可以確定這個(gè)實(shí)驗(yàn)室是用人工智能這個(gè)名字哄人的)。同樣钻蔑,很多大公司也會(huì)配有專業(yè)的內(nèi)部集群啥刻,可以借著實(shí)習(xí)等方式去蹭算力。
這種方式的優(yōu)點(diǎn)是免費(fèi)咪笑,但是缺點(diǎn)是既然學(xué)校和公司給你提供了這么好的硬件環(huán)境可帽,那必然是需要你產(chǎn)出相應(yīng)的成果的,肯定不能由著自己的想法隨便玩窗怒。
所謂命運(yùn)贈(zèng)送的禮物,早已在暗中標(biāo)好了價(jià)格映跟。
方案三:自己租用顯卡蓄拣,你的下一臺(tái)顯卡,何必是自己的
如果確實(shí)沒有薅公司和學(xué)習(xí)羊毛的條件努隙,那么就只能自己租顯卡了球恤。
這種方式的優(yōu)點(diǎn)是隨用隨續(xù)費(fèi),而且給自己一種緊迫感荸镊,寫代碼的效率更高咽斧,畢竟在這里時(shí)間就是金錢,而且還可以按照項(xiàng)目的需要選擇合適的配置躬存,比較靈活张惹。
計(jì)費(fèi)方式可以采用按時(shí)計(jì)費(fèi)、按月計(jì)費(fèi)和按年計(jì)費(fèi)优构。大概看了一下,對(duì)于3080Ti的顯卡來說雁竞,如果按時(shí)計(jì)費(fèi)的話市場價(jià)差不多2~3元每小時(shí)钦椭,雖然不便宜,但是相比于自己買顯卡還是劃算太多碑诉。
當(dāng)然彪腔,也有免費(fèi)的羊毛可以薅,最出名的就是谷歌的Colab了进栽,但是因?yàn)槭菄猸h(huán)境德挣,經(jīng)常斷線很煩人。之后我也會(huì)出一期詳細(xì)的教程快毛,對(duì)于初學(xué)者來說可以湊合使用格嗅。
對(duì)于付費(fèi)云計(jì)算平臺(tái)的選擇,一般要參考這么幾個(gè)因素:價(jià)格唠帝、能否可以自己隨意安裝包屯掖,當(dāng)前的包是否齊全、是否可以上傳自己的數(shù)據(jù)集襟衰、是否可以隨時(shí)啟用停用贴铜、遠(yuǎn)程連接的方式。