丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給三川
發(fā)送

0

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!

本文作者: 三川 2017-05-12 18:28
導(dǎo)語:搞深度學(xué)習(xí)究竟要不要多卡并行?

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!

與“傳統(tǒng)” AI 算法相比,深度學(xué)習(xí)(DL)的計(jì)算性能要求,可以說完全在另一個(gè)量級(jí)上。

而 GPU 的選擇,會(huì)在根本上決定你的深度學(xué)習(xí)體驗(yàn)。那么,對(duì)于一名 DL 開發(fā)者,應(yīng)該怎么選擇合適的 GPU 呢?這篇文章將深入討論這個(gè)問題,聊聊有無必要入手英特爾協(xié)處理器 Xeon Phi,并將各主流顯卡的性能、性價(jià)比制成一目了然的對(duì)比圖,供大家參考。

先來談?wù)勥x擇 GPU 對(duì)研究深度學(xué)習(xí)的意義。更快的 GPU,能幫助新人更快地積累實(shí)踐經(jīng)驗(yàn)、更快地掌握技術(shù)要領(lǐng),并把這些應(yīng)用于新的任務(wù)。沒有快速的反饋,從錯(cuò)誤中學(xué)習(xí)要花費(fèi)太高的時(shí)間成本,學(xué)習(xí)深度學(xué)習(xí)便很可能變成一個(gè)令人反胃、進(jìn)而望而生畏的經(jīng)歷。

是否需要多卡?

出于最初的激動(dòng),我走上了多卡交火的不歸路——用 40Gbit/s 的 InfiniBand 橋接器連接,我搭建了一個(gè)迷你 GPU “集群”,萬分激動(dòng)地試驗(yàn)多卡是否能有更好的表現(xiàn)。

但很快我就發(fā)現(xiàn),讓神經(jīng)網(wǎng)絡(luò)在多卡上高效地并行處理,其實(shí)是一件挺不容易的事。尤其是對(duì)于更密集的神經(jīng)網(wǎng)絡(luò),性能的提升可以用一句“不過如此”來形容。通過數(shù)據(jù)并行化,小型神經(jīng)網(wǎng)絡(luò)倒可以很高效地并行處理,但大型的就不行了。比如 Kaggle 競賽“Partly Sunny with a Chance of Hashtags”,我用深度學(xué)習(xí)方法拿下了第二名,多卡就基本沒有加速效果。

這之后,我繼續(xù)探索如何在多卡環(huán)境玩深度學(xué)習(xí)。

我開發(fā)了一個(gè)全新的 8 bit 壓縮技術(shù),其模型并行化比起 32 bit 方法要高效得多,尤其是密集或全連接層。但我同時(shí)發(fā)現(xiàn),并行化可以讓你極度失望——我幼稚地針對(duì)一系列問題優(yōu)化了并行算法,結(jié)果發(fā)現(xiàn),即便有優(yōu)化的特制代碼,多 GPU 的并行化仍然效果一般,尤其考慮到投入的大量精力。

在搞并行化之前,你必須要非常了解你的硬件,以及它與深度學(xué)習(xí)算法的相互支持程度,來估計(jì)是否能從并行化獲益。

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!


這是我的 PC。你看到的是三塊泰坦以及 InfiniBand 橋接卡。但這個(gè)配置適合深度學(xué)習(xí)嗎?

從那時(shí)起,對(duì) GPU 并行的支持越來越常見,但離普及還差得遠(yuǎn),更不要提高效地運(yùn)行。到目前為止,唯一一個(gè)能在多卡、多機(jī)環(huán)境實(shí)現(xiàn)高效算法的深度學(xué)習(xí)框架,是 CNTK。它利用了微軟特制的具有 1 bit 量化(高效)和 block momentum(非常高效)的并行化算法。

如果在 96 卡 GPU 集群上運(yùn)行 CNTK,線性速度預(yù)計(jì)可達(dá)到 90 到 95 倍。PyTorch 或許會(huì)是另一個(gè)能高效地支持多機(jī)并行化的框架,但暫時(shí)還沒到位。如果你在一臺(tái)設(shè)備上搞并行化,你的選擇基本就是 CNTK、Torch 或者 PyTorch。這些框架有不錯(cuò)的加速表現(xiàn)(3.6-3.8 倍),對(duì)于一機(jī)四卡(最多)有預(yù)定義的算法。其他支持并行化的庫和框架也存在,但它們要么很慢(比如 TensorFlow,只有兩到三倍的加速);要么對(duì)于在多卡環(huán)境很難用(比如 Theano);再要么兩個(gè)缺點(diǎn)都有。

如果并行化對(duì)你很重要,我推薦你用 Pytorch 或 CNTK。

多卡,但不搞并行

多卡的另一個(gè)優(yōu)勢是,即便你不對(duì)算法做并行化,還可以同時(shí)跑多個(gè)算法、實(shí)驗(yàn)——每個(gè)算法在在一個(gè) GPU 上單獨(dú)運(yùn)行。你不會(huì)獲得任何加速,但同時(shí)使用不同算法或參數(shù),你會(huì)得到更多關(guān)于效果表現(xiàn)的信息。如若你的主要目標(biāo)是盡快積累深度學(xué)習(xí)經(jīng)驗(yàn),這是非常有用處的。對(duì)于需要對(duì)一個(gè)新算法的不同版本做實(shí)驗(yàn)的研究人員,這也相當(dāng)有用。

這是多卡在心理上的價(jià)值。處理一個(gè)任務(wù)與獲得結(jié)果反饋之間的時(shí)間越短,大腦把相關(guān)記憶碎片組織起來、建立起該任務(wù)知識(shí)圖的效果就越好。如果數(shù)據(jù)集不大,你在兩塊 GPU 上用這些數(shù)據(jù)同時(shí)訓(xùn)練兩個(gè)卷積網(wǎng)絡(luò),你會(huì)很快就會(huì)知道“一切順利”的感覺有多好。你會(huì)更快地發(fā)現(xiàn)交叉驗(yàn)證誤差,并做合理解釋。你能發(fā)現(xiàn)一些線索,讓你知道需要添加、移除或調(diào)整哪些參數(shù)或?qū)印?/p>

總的來講,你可以說對(duì)于幾乎所有任務(wù),一塊 GPU 基本就夠了。但用多卡來加速深度學(xué)習(xí)模型,正在變得越來越重要。如果你的目標(biāo)是快速入門深度學(xué)習(xí),多塊便宜的顯卡也是不錯(cuò)的。就我個(gè)人而言,我更傾向選擇多塊弱一點(diǎn)的 GPU,而不是一塊核彈,對(duì)于研究實(shí)驗(yàn)也是如此。

應(yīng)該選哪家的加速器——英偉達(dá) GPU,AMD GPU,還是英特爾 Xeon Phi?

英偉達(dá)的標(biāo)準(zhǔn)算法庫,使得在 CUDA 中建立第一批深度學(xué)習(xí)庫非常簡單。但對(duì)于 AMD OpenCL,這樣的強(qiáng)大標(biāo)準(zhǔn)庫并不存在?,F(xiàn)實(shí)是,現(xiàn)在 A 卡并沒有好用的深度學(xué)習(xí)庫——所以一般人只能選 N 卡。即便將來有了 OpenCL 庫,我仍會(huì)接著用 N 卡。原因很簡單:GPU 通用計(jì)算,或者說 GPGPU 的社群基本上是圍繞著 CUDA 轉(zhuǎn)的,而沒有多少人鉆研 OpenCL。因此,在 CUDA 社區(qū),你可以立刻獲得好的開源方案和代碼建議。

另外,對(duì)于深度學(xué)習(xí),即便這項(xiàng)技術(shù)及其產(chǎn)業(yè)尚在襁褓之中,英偉達(dá)可謂是全面出擊。老黃的投入并沒有白費(fèi)。那些現(xiàn)在才投入資金、精力,想要趕上深度學(xué)習(xí)風(fēng)口的公司,由于起步晚,離英偉達(dá)的距離有老大一截。當(dāng)前,使用任何除 NVIDIA-CUDA 之外的軟硬件組合玩深度學(xué)習(xí),簡直是故意跟自己過不去。

至于英特爾 Xeon Phi,官方宣傳是你能用標(biāo)準(zhǔn)的 C 語言代碼,并輕松把代碼轉(zhuǎn)化為加速的 Xeon Phi 代碼。該功能聽著不錯(cuò)——你也許會(huì)想著可以借助海量的 C 語言資源。但實(shí)際情況是,只有非常少數(shù)的 C 語言代碼有支持,而且大部分能用的 C 代碼會(huì)非常非常的慢。因此,它其實(shí)比較雞肋。

我曾在一個(gè) Xeon Phi 集群工作站搞研究,這期間的經(jīng)歷不忍回想,一把辛酸淚:

我無法運(yùn)行單位測試,因?yàn)?Xeon Phi MKL 和 Python Numpy 不兼容;我不得不重構(gòu)大部分的代碼,因?yàn)?Xeon Phi 編譯器無法對(duì)模板做恰當(dāng)?shù)?reduction,比如說對(duì) switch statement;我不得不修改 C 界面,因?yàn)?Xeon Phi 編譯器不支持一些 C++11 功能。

所有這些迫使我在心酸沮喪中重寫代碼,并且沒有單位測試。這過程極度漫長,堪稱地獄般的經(jīng)歷。

直到我的代碼終于成功執(zhí)行,但所有東西速度都很慢。有一些問題,搞不清是 bug 還是線程調(diào)度程序的原因,總之如果張量大小接連發(fā)生改變,性能就會(huì)大幅降低。舉個(gè)例子,如果你有大小不同的全連接層或 dropout 層,Xeon Phi 比 CPU 還要慢。我在獨(dú)立矩陣乘法上重現(xiàn)了這個(gè)問題,并發(fā)給英特爾,但沒有回音。

所以,如果你真想搞深度學(xué)習(xí),離 Xeon Phi 越遠(yuǎn)越好。

預(yù)算有限,怎么挑 GPU?

想到為深度學(xué)習(xí)挑選 GPU,你腦子里冒出來的第一個(gè)問題大概是:最重要的性能參數(shù)是什么?Cuda 核心數(shù)目?頻率?顯存大???

都不是。

對(duì)深度學(xué)習(xí)性能影響最大的參數(shù)是顯存帶寬。

簡單來講,GPU 為顯存帶寬而優(yōu)化,為此犧牲了顯存讀取時(shí)間,即延遲。而 CPU 恰恰與此相反——如果只涉及少量內(nèi)存,它能非??焖俚刈鲇?jì)算,比如個(gè)位數(shù)之間的乘法(3*6*9)。但是對(duì)于大量內(nèi)存之上的運(yùn)作,比如矩陣乘法(A*B*C),CPU 是非常慢的。由于高顯存帶寬,GPU 就很擅長處理這類問題。當(dāng)然,CPU 與 GPU 之間有的是微妙細(xì)致的區(qū)別,這只是非常重要的一個(gè)。

因此,如果你想要買一個(gè)玩深度學(xué)習(xí)快的 GPU,首先要看顯存帶寬。

從顯存帶寬評(píng)估 GPU




玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!

近幾年 CPU、GPU 的帶寬對(duì)比

同一代架構(gòu)內(nèi),GPU 的帶寬可以直接比較。比如 Pascal GTX 1080 vs. GTX 1070。單獨(dú)看顯存帶寬就可以直接判斷它們?cè)谏疃葘W(xué)習(xí)上的性能差距:GTX 1080 (320GB/s) 比 GTX 1070 (256 GB/s) 帶寬快 25%,實(shí)際情況大約如是。

但不同架構(gòu)之間,比如 Pascal GTX 1080 vs. Maxwell GTX Titan X,帶寬并不能直接比較。這是由于不同的制造工藝對(duì)顯存帶寬的使用情況不同。這使得 GPU 之間的對(duì)比會(huì)稍嫌棘手。但即便如此,僅僅看帶寬還是能大致估出 GPU 的深度學(xué)習(xí)速度。

另一個(gè)需要考慮的因素,是與 cuDNN 的兼容性。并不是所有 GPU 架構(gòu)都提供支持。幾乎所有的深度學(xué)習(xí)庫都借助 cuDNN 進(jìn)行卷積運(yùn)算,這會(huì)把 GPU 的選項(xiàng)限制到 Kepler 開普勒或之后的架構(gòu),即 GTX 600 系列或更新。另外,Kepler GPU 大多很慢。因此,你應(yīng)該選擇 GTX 900 或 1000 系的 GPU 獲得理想性能。

為了對(duì)每塊顯卡在深度學(xué)習(xí)上的性能差異,給大家一個(gè)大致估計(jì),我創(chuàng)建了一個(gè)簡單的條形圖。讀這張圖的姿勢很簡單。比如說,一個(gè) GTX 980 的速度大約是 0.35 個(gè) Titan X Pascal;或者,一個(gè) Titan X Pascal 幾乎比 GTX 980 快三倍。

雷鋒網(wǎng)提醒,我自己并沒有所有這些顯卡,我也并沒有在每張顯卡上做深度學(xué)習(xí)跑分評(píng)測。這些性能對(duì)比,是從顯卡參數(shù)以及計(jì)算評(píng)測(與深度學(xué)習(xí)同一級(jí)別的計(jì)算任務(wù),比如密碼挖掘)中獲得。因此,這些只是大略估計(jì)。真實(shí)數(shù)字會(huì)有一點(diǎn)變化,但誤差應(yīng)該是極小的,并不會(huì)影響排序。

另外需要注意的是,對(duì) GPU 性能利用不足的小型神經(jīng)網(wǎng)絡(luò),會(huì)讓性能更強(qiáng)的 GPU 在對(duì)比中吃虧。比如說,在 GTX 1080 Ti 上跑一個(gè)小型 LSTM(128 隱層; batch size > 64),并不會(huì)比在 GTX 1070 上快很多。得到下圖中的數(shù)字,你需要跑更大的神經(jīng)網(wǎng)絡(luò),比如 1024 個(gè)隱層的 LSTM(batch size > 64)。

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!


GPU 粗略性能對(duì)比

性價(jià)比分析

如果我們把上圖中的顯卡性能除以價(jià)格,就得到了每張卡的性價(jià)比指數(shù),便是下圖。它在一定程度上反映出我們的裝機(jī)推薦。

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!


性價(jià)比對(duì)比

新卡的價(jià)格來自美亞,舊卡來自 eBay。雷鋒網(wǎng)提醒,該圖的數(shù)字在很多方面都有些些微偏頗。首先,它沒有考慮顯存大小。通常情況下,你需要比 GTX 1050 Ti 更大的顯存來玩深度學(xué)習(xí)。因此,榜上靠前的部分顯卡雖然性價(jià)比很高,但是并不實(shí)用。

同樣的,用四個(gè)小 GPU 比用一個(gè)大 GPU 要困難得多,因此小 GPU 出于劣勢。另外,買 16 個(gè) GTX 1050 Ti 不可能得到四個(gè) GTX 1080 Ti 的性能,你還需要另外買 3 個(gè) PC。如果我們把這一點(diǎn)也考慮進(jìn)去,上圖看上去應(yīng)該是這樣的:

這幅修正過的 GPU 性價(jià)比條形圖,把其他 PC 硬件的成本也納入考慮——把可兼容 4 GPU 的高端 PC 平臺(tái)的成本,定為 $1500。該情況下,如果你想要買許多 GPU,不出意料的,更高端的 GPU 會(huì)占優(yōu)勢,因?yàn)?PC 平臺(tái)+ 顯卡的整體性價(jià)比更高。

但其實(shí),這還是有所偏頗的。不管四個(gè) GTX 1080 Ti 性價(jià)比有多高,對(duì)普通人而言,這并沒有意義——因?yàn)橘I不起。因此,開發(fā)者真正感興趣的應(yīng)是有限預(yù)算里的性價(jià)比。針對(duì)你的預(yù)算,最佳系統(tǒng)選項(xiàng)是什么?你還需要考慮一些其它問題:你計(jì)劃讓這個(gè) GPU 服役多久?幾年后,你是要升級(jí) GPU 還是升級(jí)整機(jī)?將來是否希望出手舊 GPU,回收一些成本,再買個(gè)新的?

如果你能平衡多方面的考慮,最后的結(jié)論應(yīng)該與下面的建議介意。

GPU 推薦

通常,我會(huì)推薦 GTX 1080 Ti, GTX 1080 或 GTX 1070。如果你的預(yù)算足夠買 GTX 1080 Ti,就不用猶豫了。GTX 1070 便宜一點(diǎn),但仍然比上代 GTX Titan X (Maxwell) 要快。相比 GTX 980 Ti,所有這些卡都應(yīng)該優(yōu)先考慮,因?yàn)楦蟮娘@存:11GB、8GB  而不是 6GB。8GB 顯存聽上去或許不多,但對(duì)許多任務(wù)是綽綽有余的。對(duì)于 Kaggle 競賽里的大多數(shù)圖像數(shù)據(jù)集、deep style 和自然語言理解任務(wù),你基本不會(huì)遇到問題。

如果你是第一次嘗試深度學(xué)習(xí),只是偶爾參加 Kaggle 競賽,GTX 1060 是最好的入門 GPU。但我不會(huì)推薦 3GB 顯存的 GTX 1060。

在性價(jià)比方面,10 系顯卡是相當(dāng)不錯(cuò)的。GTX 1050 Ti, GTX 1060, GTX 1070, GTX 1080 和 GTX 1080 Ti 都排在前列。GTX 1060 和 GTX 1050 Ti 面向初學(xué)者,GTX 1070、GTX 1080 是適合初創(chuàng)公司的多面手,對(duì)部分學(xué)術(shù)研究和產(chǎn)業(yè)界也可。GTX 1080 Ti 則是全能高端選項(xiàng)。

我通常不推薦新推出的 Titan Xp,相比其性能,它定價(jià)過高,不如選 GTX 1080 Ti。但對(duì)于擺弄大型數(shù)據(jù)集或視頻數(shù)據(jù)的計(jì)算機(jī)視覺研究人員,Titan Xp 仍然有市場。在這些領(lǐng)域,每一 GB 顯存都有價(jià)值,而 Titan Xp 比 GTX 1080 Ti 多了 1GB。有了這兩者,我不會(huì)推薦 Titan X (Pascal) 。

如果你已經(jīng)有了 GTX Titan X (Maxwell),想要升級(jí)到 Titan Xp。我的建議是:把錢存著買下一代,不值。

如果你預(yù)算有限,偏偏又需要 12GB 的內(nèi)存,可以考慮買個(gè)二手的 GTX Titan X (Maxwell) 。

但是,對(duì)于大多數(shù)研究人員,最好的選項(xiàng)仍然是 GTX 1080 Ti。泰坦的額外 1GB 在大多數(shù)情況下沒什么影響。

對(duì)我個(gè)人而言,會(huì)選擇多個(gè) GTX 1070 或 GTX 1080 來做研究。我寧愿多運(yùn)行幾個(gè)慢一點(diǎn)的試驗(yàn),而不僅僅是運(yùn)行一個(gè)更快的。在 NLP,內(nèi)存要求并沒有計(jì)算機(jī)視覺那么高,單只 GTX 1070/GTX 1080 對(duì)我來說就夠了。我需要處理的任務(wù)、如何進(jìn)行試驗(yàn),決定了對(duì)我而言的最佳選擇,不管是 GTX 1070 還是 GTX 1080。

對(duì)于預(yù)算緊張的開發(fā)者而言,選擇余地非常有限。租 AWS 上的 GPU 實(shí)體價(jià)格已經(jīng)太高,還是買自己的 GPU 更劃算。我不推薦 GTX 970,不僅慢,二手的價(jià)格也不夠?qū)嵒?,而且它還存在顯存啟動(dòng)問題。我的建議是加點(diǎn)錢上 GTX 1060,更快、顯存更大而且沒有毛病。GTX 1060 超出你的預(yù)算的話,我建議 4GB 版 GTX 1050 Ti。4GB 顯存確實(shí)限制比較大,但如果對(duì)模型做些修改,仍可以得到還可以的性能表現(xiàn)。對(duì)于大多數(shù) Kaggle 競賽而言,GTX 1050 Ti 是合適的,在少部分比賽可能會(huì)影響你的競爭力。

如果你只是私下玩玩深度學(xué)習(xí),沒打算認(rèn)真鉆研,GTX 1050 Ti 是一個(gè)合適的選擇。

結(jié)論

有了本文中的所有信息,你大概已經(jīng)能平衡顯存大小、帶寬、價(jià)格等多方面因素,來做出合理的購買決策?,F(xiàn)在,我的建議是若預(yù)算充足,就上 GTX 1080 Ti, GTX 1080 或 GTX 1070。剛剛上手深度學(xué)習(xí)、預(yù)算有限的話,選 GTX 1060。預(yù)算實(shí)在有限,那么 GTX 1050 Ti。計(jì)算機(jī)視覺研究人員可能會(huì)需要 Titan Xp。

via Tim Dettmers,雷鋒網(wǎng)編譯

 “TensorFlow & 神經(jīng)網(wǎng)絡(luò)算法高級(jí)應(yīng)用班”開課啦!

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!


從初級(jí)到高級(jí),理論+實(shí)戰(zhàn),一站式深度了解 TensorFlow!

本課程面向深度學(xué)習(xí)開發(fā)者,講授如何利用 TensorFlow 解決圖像識(shí)別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎(chǔ)實(shí)戰(zhàn)技巧開始,一步步教授學(xué)員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,并最終掌握一整套基于 TensorFlow 做深度學(xué)習(xí)開發(fā)的專業(yè)技能。

兩名授課老師佟達(dá)、白發(fā)川身為 ThoughtWorks 的資深技術(shù)專家,具有豐富的大數(shù)據(jù)平臺(tái)搭建、深度學(xué)習(xí)系統(tǒng)開發(fā)項(xiàng)目經(jīng)驗(yàn)。

時(shí)間:每周二、四晚 20:00-21:00

開課時(shí)長:總學(xué)時(shí) 20 小時(shí),分 10 周完成,每周2次,每次 1 小時(shí)

線上授課地址:http://www.ozgbdpf.cn/special/custom/mooc04.html 

相關(guān)文章:

一篇文章為你詳解什么是 GPU 加速

2小時(shí)、5大AI 新品、英偉達(dá)股價(jià)暴漲17%,GTC大會(huì)上黃仁勛都講了些啥?(內(nèi)附PPT) | GTC 2017

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

玩深度學(xué)習(xí)選哪塊英偉達(dá) GPU?有性價(jià)比排名還不夠!

分享:
相關(guān)文章

用愛救世界
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說