您的位置:首頁>數碼>正文

選購深度學習 GPU,僅僅有性價比排名還不夠!

與“傳統” AI 演算法相比, 深度學習(DL)的計算性能要求, 可以說完全在另一個量級上。

而 GPU 的選擇, 會在根本上決定你的深度學習體驗。

那麼, 對於一名 DL 開發者, 應該怎麼選擇合適的 GPU 呢?這篇文章將深入討論這個問題, 聊聊有無必要入手英特爾輔助處理器 Xeon Phi, 並將各主流顯卡的性能、性價比製成一目了然的對比圖, 供大家參考。

先來談談選擇 GPU 對研究深度學習的意義。 更快的 GPU, 能幫助新人更快地積累實踐經驗、更快地掌握技術要領, 並把這些應用於新的任務。 沒有快速的回饋, 從錯誤中學習要花費太高的時間成本, 學習深度學習便很可能變成一個令人反胃、進而望而生畏的經歷。

是否需要多卡?

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

但很快我就發現, 讓神經網路在多卡上高效地並行處理,

其實是一件挺不容易的事。 尤其是對於更密集的神經網路, 性能的提升可以用一句“不過如此”來形容。 通過資料並行化, 小型神經網路倒可以很高效地並行處理, 但大型的就不行了。 比如 Kaggle 競賽“Partly Sunny with a Chance of Hashtags”, 我用深度學習方法拿下了第二名, 多卡就基本沒有加速效果。

這之後, 我繼續探索如何在多卡環境玩深度學習。

我開發了一個全新的 8 bit 壓縮技術, 其模型並行化比起 32 bit 方法要高效得多, 尤其是密集或全連接層。 但我同時發現, 並行化可以讓你極度失望——我幼稚地針對一系列問題優化了平行算法, 結果發現, 即便有優化的特製代碼, 多 GPU 的並行化仍然效果一般, 尤其考慮到投入的大量精力。

在搞並行化之前,

你必須要非常瞭解你的硬體, 以及它與深度學習演算法的相互支援程度, 來估計是否能從並行化獲益。

這是我的 PC。 你看到的是三塊泰坦以及 InfiniBand 橋接卡。 但這個配置適合深度學習嗎?

從那時起, 對 GPU 並行的支持越來越常見, 但離普及還差得遠, 更不要提高效地運行。

到目前為止, 唯一一個能在多卡、多機環境實現高效演算法的深度學習框架, 是 CNTK。 它利用了微軟特製的具有 1 bit 量化(高效)和 block momentum(非常高效)的並行化演算法。

如果在 96 卡 GPU 集群上運行 CNTK, 線性速度預計可達到 90 到 95 倍。 PyTorch 或許會是另一個能高效地支援多機並行化的框架, 但暫時還沒到位。 如果你在一台設備上搞並行化, 你的選擇基本就是 CNTK、Torch 或者 PyTorch。 這些框架有不錯的加速表現(3.6-3.8 倍), 對於一機四卡(最多)有預定義的演算法。 其他支持並行化的庫和框架也存在, 但它們要麼很慢(比如 TensorFlow, 只有兩到三倍的加速);要麼對於在多卡環境很難用(比如 Theano);再要麼兩個缺點都有。

如果並行化對你很重要, 我推薦你用 Pytorch 或 CNTK。

多卡, 但不搞並行

多卡的另一個優勢是,

即便你不對演算法做並行化, 還可以同時跑多個演算法、實驗——每個演算法在在一個 GPU 上單獨運行。 你不會獲得任何加速, 但同時使用不同演算法或參數, 你會得到更多關於效果表現的資訊。 如若你的主要目標是儘快積累深度學習經驗, 這是非常有用處的。 對於需要對一個新演算法的不同版本做實驗的研究人員, 這也相當有用。

這是多卡在心理上的價值。 處理一個任務與獲得結果回饋之間的時間越短, 大腦把相關記憶碎片組織起來、建立起該任務知識圖的效果就越好。 如果資料集不大, 你在兩塊 GPU 上用這些資料同時訓練兩個卷積網路, 你會很快就會知道“一切順利”的感覺有多好。 你會更快地發現交叉驗證誤差, 並做合理解釋。你能發現一些線索,讓你知道需要添加、移除或調整哪些參數或層。

總的來講,你可以說對於幾乎所有任務,一塊 GPU 基本就夠了。但用多卡來加速深度學習模型,正在變得越來越重要。如果你的目標是快速入門深度學習,多塊便宜的顯卡也是不錯的。就我個人而言,我更傾向選擇多塊弱一點的 GPU,而不是一塊核彈,對於研究實驗也是如此。

應該選哪家的加速器——英偉達 GPU,AMD GPU,還是英特爾 Xeon Phi?

英偉達的標準演算法庫,使得在 CUDA 中建立第一批深度學習庫非常簡單。但對於 AMD OpenCL,這樣的強大標準庫並不存在。現實是,現在 A 卡並沒有好用的深度學習庫——所以一般人只能選 N 卡。即便將來有了 OpenCL 庫,我仍會接著用 N 卡。原因很簡單:GPU 通用計算,或者說 GPGPU 的社群基本上是圍繞著 CUDA 轉的,而沒有多少人鑽研 OpenCL。因此,在 CUDA 社區,你可以立刻獲得好的開源方案和代碼建議。

另外,對於深度學習,即便這項技術及其產業尚在繈褓之中,英偉達可謂是全面出擊。老黃的投入並沒有白費。那些現在才投入資金、精力,想要趕上深度學習風口的公司,由於起步晚,離英偉達的距離有老大一截。當前,使用任何除 NVIDIA-CUDA 之外的軟硬體組合玩深度學習,簡直是故意跟自己過不去。

至於英特爾 Xeon Phi,官方宣傳是你能用標準的 C 語言代碼,並輕鬆把代碼轉化為加速的 Xeon Phi 代碼。該功能聽著不錯——你也許會想著可以借助海量的 C 語言資源。但實際情況是,只有非常少數的 C 語言代碼有支援,而且大部分能用的 C 代碼會非常非常的慢。因此,它其實比較雞肋。

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

我無法運行單位測試,因為 Xeon Phi MKL 和 Python Numpy 不相容;我不得不重構大部分的代碼,因為 Xeon Phi 編譯器無法對範本做恰當的 reduction,比如說對 switch statement;我不得不修改 C 介面,因為 Xeon Phi 編譯器不支持一些 C++11 功能。

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

直到我的代碼終於成功執行,但所有東西速度都很慢。有一些問題,搞不清是 bug 還是執行緒調度程式的原因,總之如果張量大小接連發生改變,性能就會大幅降低。舉個例子,如果你有大小不同的全連接層或 dropout 層,Xeon Phi 比 CPU 還要慢。我在獨立矩陣乘法上重現了這個問題,並發給英特爾,但沒有回音。

所以,如果你真想搞深度學習,離 Xeon Phi 越遠越好。

預算有限,怎麼挑 GPU?

想到為深度學習挑選 GPU,你腦子裡冒出來的第一個問題大概是:最重要的性能參數是什麼?Cuda 核心數目?頻率?顯存大小?

都不是。

對深度學習性能影響最大的參數是顯存頻寬。

簡單來講,GPU 為顯存頻寬而優化,為此犧牲了顯存讀取時間,即延遲。而 CPU 恰恰與此相反——如果只涉及少量記憶體,它能非常快速地做計算,比如個位數之間的乘法(3*6*9)。但是對於大量記憶體之上的運作,比如矩陣乘法(A*B*C),CPU 是非常慢的。由於高顯存頻寬,GPU 就很擅長處理這類問題。當然,CPU 與 GPU 之間有的是微妙細緻的區別,這只是非常重要的一個。

因此,如果你想要買一個玩深度學習快的 GPU,首先要看顯存頻寬。

從顯存頻寬評估 GPU

近幾年 CPU、GPU 的頻寬對比

同一代架構內,GPU 的頻寬可以直接比較。比如 Pascal GTX 1080 vs. GTX 1070。單獨看顯存頻寬就可以直接判斷它們在深度學習上的性能差距:GTX 1080 (320GB/s) 比 GTX 1070 (256 GB/s) 頻寬快 25%,實際情況大約如是。

但不同架構之間,比如 Pascal GTX 1080 vs. Maxwell GTX Titan X,頻寬並不能直接比較。這是由於不同的製造工藝對顯存頻寬的使用情況不同。這使得 GPU 之間的對比會稍嫌棘手。但即便如此,僅僅看頻寬還是能大致估出 GPU 的深度學習速度。

另一個需要考慮的因素,是與 cuDNN 的相容性。並不是所有 GPU 架構都提供支援。幾乎所有的深度學習庫都借助 cuDNN 進行卷積運算,這會把 GPU 的選項限制到 Kepler 開普勒或之後的架構,即 GTX 600 系列或更新。另外,Kepler GPU 大多很慢。因此,你應該選擇 GTX 900 或 1000 系的 GPU 獲得理想性能。

為了對每塊顯卡在深度學習上的性能差異,給大家一個大致估計,我創建了一個簡單的橫條圖。讀這張圖的姿勢很簡單。比如說,一個 GTX 980 的速度大約是 0.35 個 Titan X Pascal;或者,一個 Titan X Pascal 幾乎比 GTX 980 快三倍。

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

另外需要注意的是,對 GPU 性能利用不足的小型神經網路,會讓性能更強的 GPU 在對比中吃虧。比如說,在 GTX 1080 Ti 上跑一個小型 LSTM(128 隱層; batch size > 64),並不會比在 GTX 1070 上快很多。得到下圖中的數位,你需要跑更大的神經網路,比如 1024 個隱層的 LSTM(batch size > 64)。

GPU 粗略性能對比

性價比分析

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

性價比對比

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

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

這幅修正過的 GPU 性價比橫條圖,把其他 PC 硬體的成本也納入考慮——把可相容 4 GPU 的高端 PC 平臺的成本,定為 $1500。該情況下,如果你想要買許多 GPU,不出意料的,更高端的 GPU 會佔優勢,因為 PC 平臺+ 顯卡的整體性價比更高。

但其實,這還是有所偏頗的。不管四個 GTX 1080 Ti 性價比有多高,對普通人而言,這並沒有意義——因為買不起。因此,開發者真正感興趣的應是有限預算裡的性價比。針對你的預算,最佳系統選項是什麼?你還需要考慮一些其它問題:你計畫讓這個 GPU 服役多久?幾年後,你是要升級 GPU 還是升級整機?將來是否希望出手舊 GPU,回收一些成本,再買個新的?

如果你能平衡多方面的考慮,最後的結論應該與下面的建議介意。

GPU 推薦

通常,我會推薦 GTX 1080 Ti, GTX 1080 或 GTX 1070。如果你的預算足夠買 GTX 1080 Ti,就不用猶豫了。GTX 1070 便宜一點,但仍然比上代 GTX Titan X (Maxwell) 要快。相比 GTX 980 Ti,所有這些卡都應該優先考慮,因為更大的顯存:11GB、8GB 而不是 6GB。8GB 顯存聽上去或許不多,但對許多工是綽綽有餘的。對於 Kaggle 競賽裡的大多數圖像資料集、deep style 和自然語言理解任務,你基本不會遇到問題。

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

在性價比方面,10 系顯卡是相當不錯的。GTX 1050 Ti, GTX 1060, GTX 1070, GTX 1080 和 GTX 1080 Ti 都排在前列。GTX 1060 和 GTX 1050 Ti 面向初學者,GTX 1070、GTX 1080 是適合初創公司的多面手,對部分學術研究和產業界也可。GTX 1080 Ti 則是全能高端選項。

我通常不推薦新推出的 Titan Xp,相比其性能,它定價過高,不如選 GTX 1080 Ti。但對於擺弄大型資料集或視頻資料的電腦視覺研究人員,Titan Xp 仍然有市場。在這些領域,每一 GB 顯存都有價值,而 Titan Xp 比 GTX 1080 Ti 多了 1GB。有了這兩者,我不會推薦 Titan X (Pascal) 。

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

如果你預算有限,偏偏又需要 12GB 的記憶體,可以考慮買個二手的 GTX Titan X (Maxwell) 。

但是,對於大多數研究人員,最好的選項仍然是 GTX 1080 Ti。泰坦的額外 1GB 在大多數情況下沒什麼影響。

對我個人而言,會選擇多個 GTX 1070 或 GTX 1080 來做研究。我寧願多運行幾個慢一點的試驗,而不僅僅是運行一個更快的。在 NLP,記憶體要求並沒有電腦視覺那麼高,單只 GTX 1070/GTX 1080 對我來說就夠了。我需要處理的任務、如何進行試驗,決定了對我而言的最佳選擇,不管是 GTX 1070 還是 GTX 1080。

對於預算緊張的開發者而言,選擇餘地非常有限。租 AWS 上的 GPU 實體價格已經太高,還是買自己的 GPU 更划算。我不推薦 GTX 970,不僅慢,二手的價格也不夠實惠,而且它還存在顯存啟動問題。我的建議是加點錢上 GTX 1060,更快、顯存更大而且沒有毛病。GTX 1060 超出你的預算的話,我建議 4GB 版 GTX 1050 Ti。4GB 顯存確實限制比較大,但如果對模型做些修改,仍可以得到還可以的性能表現。對於大多數 Kaggle 競賽而言,GTX 1050 Ti 是合適的,在少部分比賽可能會影響你的競爭力。

如果你只是私下玩玩深度學習,沒打算認真鑽研,GTX 1050 Ti 是一個合適的選擇。

結論

有了本文中的所有資訊,你大概已經能平衡顯存大小、頻寬、價格等多方面因素,來做出合理的購買決策。現在,我的建議是若預算充足,就上 GTX 1080 Ti, GTX 1080 或 GTX 1070。剛剛上手深度學習、預算有限的話,選 GTX 1060。預算實在有限,那麼 GTX 1050 Ti。電腦視覺研究人員可能會需要 Titan Xp。

via Tim Dettmers,雷鋒網編譯

“TensorFlow & 神經網路演算法高級應用班”開課啦!

從初級到高級,理論+實戰,一站式深度瞭解 TensorFlow!

本課程面向深度學習開發者,講授如何利用 TensorFlow 解決圖像識別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎實戰技巧開始,一步步教授學員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,並最終掌握一整套基於 TensorFlow 做深度學習開發的專業技能。

兩名授課老師佟達、白髮川身為 ThoughtWorks 的資深技術專家,具有豐富的大資料平臺搭建、深度學習系統開發專案經驗。

時間:每週二、四晚 20:00-21:00

開課時長:總學時 20 小時,分 10 周完成,每週2次,每次 1 小時

線上授課地址:http://www.leiphone.com/special/custom/mooc04.html

並做合理解釋。你能發現一些線索,讓你知道需要添加、移除或調整哪些參數或層。

總的來講,你可以說對於幾乎所有任務,一塊 GPU 基本就夠了。但用多卡來加速深度學習模型,正在變得越來越重要。如果你的目標是快速入門深度學習,多塊便宜的顯卡也是不錯的。就我個人而言,我更傾向選擇多塊弱一點的 GPU,而不是一塊核彈,對於研究實驗也是如此。

應該選哪家的加速器——英偉達 GPU,AMD GPU,還是英特爾 Xeon Phi?

英偉達的標準演算法庫,使得在 CUDA 中建立第一批深度學習庫非常簡單。但對於 AMD OpenCL,這樣的強大標準庫並不存在。現實是,現在 A 卡並沒有好用的深度學習庫——所以一般人只能選 N 卡。即便將來有了 OpenCL 庫,我仍會接著用 N 卡。原因很簡單:GPU 通用計算,或者說 GPGPU 的社群基本上是圍繞著 CUDA 轉的,而沒有多少人鑽研 OpenCL。因此,在 CUDA 社區,你可以立刻獲得好的開源方案和代碼建議。

另外,對於深度學習,即便這項技術及其產業尚在繈褓之中,英偉達可謂是全面出擊。老黃的投入並沒有白費。那些現在才投入資金、精力,想要趕上深度學習風口的公司,由於起步晚,離英偉達的距離有老大一截。當前,使用任何除 NVIDIA-CUDA 之外的軟硬體組合玩深度學習,簡直是故意跟自己過不去。

至於英特爾 Xeon Phi,官方宣傳是你能用標準的 C 語言代碼,並輕鬆把代碼轉化為加速的 Xeon Phi 代碼。該功能聽著不錯——你也許會想著可以借助海量的 C 語言資源。但實際情況是,只有非常少數的 C 語言代碼有支援,而且大部分能用的 C 代碼會非常非常的慢。因此,它其實比較雞肋。

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

我無法運行單位測試,因為 Xeon Phi MKL 和 Python Numpy 不相容;我不得不重構大部分的代碼,因為 Xeon Phi 編譯器無法對範本做恰當的 reduction,比如說對 switch statement;我不得不修改 C 介面,因為 Xeon Phi 編譯器不支持一些 C++11 功能。

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

直到我的代碼終於成功執行,但所有東西速度都很慢。有一些問題,搞不清是 bug 還是執行緒調度程式的原因,總之如果張量大小接連發生改變,性能就會大幅降低。舉個例子,如果你有大小不同的全連接層或 dropout 層,Xeon Phi 比 CPU 還要慢。我在獨立矩陣乘法上重現了這個問題,並發給英特爾,但沒有回音。

所以,如果你真想搞深度學習,離 Xeon Phi 越遠越好。

預算有限,怎麼挑 GPU?

想到為深度學習挑選 GPU,你腦子裡冒出來的第一個問題大概是:最重要的性能參數是什麼?Cuda 核心數目?頻率?顯存大小?

都不是。

對深度學習性能影響最大的參數是顯存頻寬。

簡單來講,GPU 為顯存頻寬而優化,為此犧牲了顯存讀取時間,即延遲。而 CPU 恰恰與此相反——如果只涉及少量記憶體,它能非常快速地做計算,比如個位數之間的乘法(3*6*9)。但是對於大量記憶體之上的運作,比如矩陣乘法(A*B*C),CPU 是非常慢的。由於高顯存頻寬,GPU 就很擅長處理這類問題。當然,CPU 與 GPU 之間有的是微妙細緻的區別,這只是非常重要的一個。

因此,如果你想要買一個玩深度學習快的 GPU,首先要看顯存頻寬。

從顯存頻寬評估 GPU

近幾年 CPU、GPU 的頻寬對比

同一代架構內,GPU 的頻寬可以直接比較。比如 Pascal GTX 1080 vs. GTX 1070。單獨看顯存頻寬就可以直接判斷它們在深度學習上的性能差距:GTX 1080 (320GB/s) 比 GTX 1070 (256 GB/s) 頻寬快 25%,實際情況大約如是。

但不同架構之間,比如 Pascal GTX 1080 vs. Maxwell GTX Titan X,頻寬並不能直接比較。這是由於不同的製造工藝對顯存頻寬的使用情況不同。這使得 GPU 之間的對比會稍嫌棘手。但即便如此,僅僅看頻寬還是能大致估出 GPU 的深度學習速度。

另一個需要考慮的因素,是與 cuDNN 的相容性。並不是所有 GPU 架構都提供支援。幾乎所有的深度學習庫都借助 cuDNN 進行卷積運算,這會把 GPU 的選項限制到 Kepler 開普勒或之後的架構,即 GTX 600 系列或更新。另外,Kepler GPU 大多很慢。因此,你應該選擇 GTX 900 或 1000 系的 GPU 獲得理想性能。

為了對每塊顯卡在深度學習上的性能差異,給大家一個大致估計,我創建了一個簡單的橫條圖。讀這張圖的姿勢很簡單。比如說,一個 GTX 980 的速度大約是 0.35 個 Titan X Pascal;或者,一個 Titan X Pascal 幾乎比 GTX 980 快三倍。

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

另外需要注意的是,對 GPU 性能利用不足的小型神經網路,會讓性能更強的 GPU 在對比中吃虧。比如說,在 GTX 1080 Ti 上跑一個小型 LSTM(128 隱層; batch size > 64),並不會比在 GTX 1070 上快很多。得到下圖中的數位,你需要跑更大的神經網路,比如 1024 個隱層的 LSTM(batch size > 64)。

GPU 粗略性能對比

性價比分析

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

性價比對比

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

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

這幅修正過的 GPU 性價比橫條圖,把其他 PC 硬體的成本也納入考慮——把可相容 4 GPU 的高端 PC 平臺的成本,定為 $1500。該情況下,如果你想要買許多 GPU,不出意料的,更高端的 GPU 會佔優勢,因為 PC 平臺+ 顯卡的整體性價比更高。

但其實,這還是有所偏頗的。不管四個 GTX 1080 Ti 性價比有多高,對普通人而言,這並沒有意義——因為買不起。因此,開發者真正感興趣的應是有限預算裡的性價比。針對你的預算,最佳系統選項是什麼?你還需要考慮一些其它問題:你計畫讓這個 GPU 服役多久?幾年後,你是要升級 GPU 還是升級整機?將來是否希望出手舊 GPU,回收一些成本,再買個新的?

如果你能平衡多方面的考慮,最後的結論應該與下面的建議介意。

GPU 推薦

通常,我會推薦 GTX 1080 Ti, GTX 1080 或 GTX 1070。如果你的預算足夠買 GTX 1080 Ti,就不用猶豫了。GTX 1070 便宜一點,但仍然比上代 GTX Titan X (Maxwell) 要快。相比 GTX 980 Ti,所有這些卡都應該優先考慮,因為更大的顯存:11GB、8GB 而不是 6GB。8GB 顯存聽上去或許不多,但對許多工是綽綽有餘的。對於 Kaggle 競賽裡的大多數圖像資料集、deep style 和自然語言理解任務,你基本不會遇到問題。

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

在性價比方面,10 系顯卡是相當不錯的。GTX 1050 Ti, GTX 1060, GTX 1070, GTX 1080 和 GTX 1080 Ti 都排在前列。GTX 1060 和 GTX 1050 Ti 面向初學者,GTX 1070、GTX 1080 是適合初創公司的多面手,對部分學術研究和產業界也可。GTX 1080 Ti 則是全能高端選項。

我通常不推薦新推出的 Titan Xp,相比其性能,它定價過高,不如選 GTX 1080 Ti。但對於擺弄大型資料集或視頻資料的電腦視覺研究人員,Titan Xp 仍然有市場。在這些領域,每一 GB 顯存都有價值,而 Titan Xp 比 GTX 1080 Ti 多了 1GB。有了這兩者,我不會推薦 Titan X (Pascal) 。

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

如果你預算有限,偏偏又需要 12GB 的記憶體,可以考慮買個二手的 GTX Titan X (Maxwell) 。

但是,對於大多數研究人員,最好的選項仍然是 GTX 1080 Ti。泰坦的額外 1GB 在大多數情況下沒什麼影響。

對我個人而言,會選擇多個 GTX 1070 或 GTX 1080 來做研究。我寧願多運行幾個慢一點的試驗,而不僅僅是運行一個更快的。在 NLP,記憶體要求並沒有電腦視覺那麼高,單只 GTX 1070/GTX 1080 對我來說就夠了。我需要處理的任務、如何進行試驗,決定了對我而言的最佳選擇,不管是 GTX 1070 還是 GTX 1080。

對於預算緊張的開發者而言,選擇餘地非常有限。租 AWS 上的 GPU 實體價格已經太高,還是買自己的 GPU 更划算。我不推薦 GTX 970,不僅慢,二手的價格也不夠實惠,而且它還存在顯存啟動問題。我的建議是加點錢上 GTX 1060,更快、顯存更大而且沒有毛病。GTX 1060 超出你的預算的話,我建議 4GB 版 GTX 1050 Ti。4GB 顯存確實限制比較大,但如果對模型做些修改,仍可以得到還可以的性能表現。對於大多數 Kaggle 競賽而言,GTX 1050 Ti 是合適的,在少部分比賽可能會影響你的競爭力。

如果你只是私下玩玩深度學習,沒打算認真鑽研,GTX 1050 Ti 是一個合適的選擇。

結論

有了本文中的所有資訊,你大概已經能平衡顯存大小、頻寬、價格等多方面因素,來做出合理的購買決策。現在,我的建議是若預算充足,就上 GTX 1080 Ti, GTX 1080 或 GTX 1070。剛剛上手深度學習、預算有限的話,選 GTX 1060。預算實在有限,那麼 GTX 1050 Ti。電腦視覺研究人員可能會需要 Titan Xp。

via Tim Dettmers,雷鋒網編譯

“TensorFlow & 神經網路演算法高級應用班”開課啦!

從初級到高級,理論+實戰,一站式深度瞭解 TensorFlow!

本課程面向深度學習開發者,講授如何利用 TensorFlow 解決圖像識別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎實戰技巧開始,一步步教授學員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,並最終掌握一整套基於 TensorFlow 做深度學習開發的專業技能。

兩名授課老師佟達、白髮川身為 ThoughtWorks 的資深技術專家,具有豐富的大資料平臺搭建、深度學習系統開發專案經驗。

時間:每週二、四晚 20:00-21:00

開課時長:總學時 20 小時,分 10 周完成,每週2次,每次 1 小時

線上授課地址:http://www.leiphone.com/special/custom/mooc04.html

Next Article
喜欢就按个赞吧!!!
点击关闭提示