国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

做深度學習這么多年還不會挑GPU?這兒有份選購全攻略

JohnLui / 1760人閱讀

摘要:深度學習是一個對算力要求很高的領域。這一早期優勢與英偉達強大的社區支持相結合,迅速增加了社區的規模。對他們的深度學習軟件投入很少,因此不能指望英偉達和之間的軟件差距將在未來縮小。

深度學習是一個對算力要求很高的領域。GPU的選擇將從根本上決定你的深度學習體驗。

一個好的GPU可以讓你快速獲得實踐經驗,而這些經驗是正是建立專業知識的關鍵。如果沒有這種快速的反饋,你會花費過多時間,從錯誤中吸取教訓。

那么,現在問題來了。

如果你想購買新的GPU,應該關注哪些指標呢?GPU RAM,內核,還是Tensor Core?

各種廠商五花八門。英偉達,英特爾,還是谷歌?我又應該選擇哪家的產品?

本文將深入研究這些問題,并將為你提供建議,幫助你做出適合的選擇。

本文結構如下:

首先,我會討論擁有多個GPU的用處,然后討論所有相關的硬件選項,如英偉達和AMD GPU,Intel Xeon Phis,Google TPU和初創公司的硬件。然后我會討論哪些GPU規格指標是深度學習性能的良好指標。最后,我會總結GPU的選購建議。

只想閱讀最終采購建議的同學可以直接跳到文末。

多個GPU能讓我的訓練更快嗎?

我的核心觀點是,卷積和循環網絡很容易并行化,特別是當你只使用一臺計算機或4個GPU時。然而,包括Google的Transformer在內的全連接網絡并不能簡單并行,并且需要專門的算法才能很好地運行。

圖1:主計算機中的設置:你可以看到三個GPU和一個InfiniBand網卡。這是一個很好的深度學習配置嗎?

像TensorFlow和PyTorch這樣的現代庫非常適合并行化循環和卷積網絡。以卷積為例,2/3/4 塊GPU的期望加速大約分別是1.9x / 2.8x / 3.5x。對于循環網絡,序列長度是最重要的參數,在常見的NLP問題中,對應的加速比與卷積網絡相似或稍差。

然而,全連接網絡(包括Transformer)通常具有較差的數據并行性能,并且需要更高級的算法來加速網絡的這些部分。如果你在多個GPU上運行Transformer,你應該也嘗試在單個GPU上運行,并比較查看是否真的有加速。

在不考慮并行性的情況下使用多個GPU

除了并行運算,擁有多個GPU能帶來的更顯著幫助是,讓你可以在每個GPU上多帶帶運行多個算法或實驗。

高效的超參數搜索是多個GPU的最常見用途。雖然你沒有獲得加速,但你可以獲得有關不同超參數設置或不同網絡架構的性能的更快信息。這對新手來說也非常有用,因為你可以快速獲得訓練不熟悉的深度學習架構的見解和經驗。

以這種方式使用多個GPU通常比通過數據并行在多個GPU上運行單個網絡更有用。購買多個GPU時,請記住這一點:當你購買多個GPU時,用于提高并行性的指標(如PCIe通道數量)并不重要。

另外,請注意,單個GPU應該足以滿足幾乎所有任務的要求。單GPU的體驗范圍與4個 GPU的體驗不會差太多。的區別是,你可以在給定時間內使用多個GPU運行更多實驗。

你該如何選擇:英偉達 vs AMD vs 英特爾 vs 谷歌 vs 亞馬遜 vs 微軟 vs 初創公司

英偉達:領導者

英偉達的標準庫使得在CUDA中建立第一個深度學習庫非常容易,而AMD的OpenCL沒有這樣強大的標準庫。這一早期優勢與英偉達強大的社區支持相結合,迅速增加了CUDA社區的規模。這意味著只要你使用英偉達 GPU,如果出現問題,你將很容易找到支持;如果你自己編寫CUDA,你會找到支持和建議;并且你會發現大多數深度學習庫都對英偉達 GPU提供較佳支持。在過去的幾個月里,英偉達仍將更多的資源投入到軟件中。例如,Apex庫支持在PyTorch中實現穩定的16位梯度,還包括融合快速優化器,如FusedAdam。總的來說,軟件是英偉達 GPU非常強大的一步。

另一方面,英偉達現在有一項政策,即只允許Tesla GPU在數據中心使用CUDA,而不允許GTX或RTX卡。目前外界尚不清楚“數據中心”的嚴格定義,但這意味著,由于擔心法律問題,組織和大學將被迫購買價格昂貴且性價比低的Tesla GPU。然而,Tesla卡與GTX和RTX卡相比沒有真正的優勢,成本卻高達10倍。

英偉達可以在沒有任何重大阻力的情況下做到這一點,正表明了他們壟斷的力量——他們可以隨心所欲地做,我們必須接受這些條款。如果你選擇了英偉達 GPU在社區和支持方面的主要優勢,你也需要同時接受隨時可能出現的各種限制。

AMD:功能強大但缺乏支持

HIP通過ROCm將英偉達和AMD GPU統一為一種通用編程語言,在編譯成GPU組件之前編譯成相應的GPU語言。如果我們將所有GPU代碼都放在HIP中,這將是一個重要的里程碑,但這很困難,其中就包含了移植TensorFlow和PyTorch代碼庫。 TensorFlow和PyTorch對AMD GPU有一些支持,所有主要網絡都可以在AMD GPU上運行,但如果你想開發新網絡,可能會遺漏一些細節,這可能會阻止你實現你需要的東西。 ROCm社區也不是太大,因此很難直接解決問題。 AMD對他們的深度學習軟件投入很少,因此不能指望英偉達和AMD之間的軟件差距將在未來縮小。

目前,AMD GPU的性能還可以。它們現在具有16位計算能力,這是一個重要的里程碑,但英偉達 GPU的Tensor核心為Transformer和卷積網絡提供了更高的計算性能(不過對于詞級循環網絡而言,沒有提高那么多)。

總的來說,我認為對于那些只希望GPU能夠順利運行的普通用戶,我不太推薦AMD GPU。更有經驗的用戶應該可以減少問題,并且通過支持AMD GPU和ROCm / HIP開發人員,他們有助于打擊英偉達的壟斷地位,因為這將使每個人長期受益。如果你是GPU開發人員并希望為GPU計算做出重要貢獻,那么AMD GPU可能是長期發揮良好影響力的較佳方式。對于其他所有人來說,英偉達 GPU可能是更安全的選擇。

英特爾:努力追趕

以我的親身經歷而言,我對英特爾Xeon Phis非常失望,我不認為它們是英偉達或AMD顯卡的真正競爭對手,因此我只簡單描述一下:如果你決定使用Xeon Phi,你可能會遇到以下問題:很差的技術支持,代碼運行得比CPU還慢,編寫優化代碼困難,沒有完全支持C ++ 11特性,不支持某些重要的GPU設計模式,難以兼容依賴BLAS例程的其他庫(NumPy和SciPy)等等。

除了Xeon Phi之外,我非常期待英特爾的Nervana神經網絡處理器(NNP),因為它的規格對GPU開發人員而言非常強大,并且它將允許新的算法,這可能重新定義神經網絡的使用方式,但這一項目已經無休止地延遲,有傳言稱大部分研發都打了水漂。NNP計劃于2019年第三季度/第四季度開始。如果你想等待那么長時間,請記住,從AMD和英特爾自己的Xeon Phi可以看出,好的硬件并非一切。可能直到2020年或2021年,NNP才有能力與GPU或TPU競爭

谷歌:強大,廉價的按需處理

Google TPU已發展成為一種非常成熟的基于云的產品,具有成本效益。理解TPU的最簡單方法是將其視為打包在一起的多個專用GPU——而且只為了一個目的:進行快速矩陣乘法。如果我們看一下Tensor-Core-enabled V100與TPU v2的性能指標,我們發現兩個系統在運行ResNet50模型時的性能幾乎相同。

但是,Google TPU更具成本效益。由于TPU具有復雜的并行化基礎架構,如果你使用多于1個云TPU(相當于4個GPU),TPU將比GPU具有更大的速度優勢。

盡管仍在試驗中,但PyTorch現在也支持TPU了,這將有助于加強TPU社區和生態系統。

TPU仍然存在一些各種各樣的問題,例如,2018年2月的一份報告稱,當使用LSTM時TPUv2沒有收斂。我至今沒有找到該問題已經解決的報道。

另一方面,在TPU上訓練大型Transformer取得了巨大成功。GPT-2,BERT和機器翻譯模型可以在TPU上非常有效地進行訓練。根據我的估計,TPU比GPU快約56%,并且由于它們與云GPU相比價格較低,因此它們是大型Transformer項目的絕佳選擇。

然而,在TPU上訓練大型模型的一個問題可能是累積成本。TPU具有高性能,最適合在訓練階段使用。在原型設計階段,你應該關閉云端來降低成本。因此,較佳選擇是,在你的個人GPU上進行原型設計,然后在TPU訓練最終模型。

總而言之,目前TPU似乎最適合用于訓練卷積網絡或大型Transformer,并且應該結合其他計算資源共同使用,而不是作為主要的深度學習資源。

亞馬遜AWS和微軟Azure:可靠但昂貴

來自Amazon AWS和微軟Azure的GPU實例非常具有吸引力,因為你可以根據需要輕松擴展和縮小實例。這對于趕paper或者更大的一次性項目非常有用。然而,與TPU類似,成本會隨實例數增長而迅速累加。目前,GPU云實例太昂貴而無法多帶帶使用,我建議在云中啟動最終訓練工作之前,使用一些專用的廉價GPU進行原型設計。

初創公司:具有革命性的硬件概念但缺乏軟件

有一系列初創公司旨在生產下一代深度學習硬件。這些公司通常擁有出色的理論設計,然后被谷歌、英特爾或其他公司收購,以獲得完成設計和生產芯片所需的資金。下一代芯片的開發成本十分昂貴(約10億美元)。一旦這個階段完成,軟件就成了主要問題。目前,還沒有初創公司能夠生產出適用于當前深度學習硬件的軟件。需要開發一個完整的軟件套件才能具有競爭力,這一點從AMD與英偉達的例子中可以清楚地看出:AMD擁有出色的硬件,但只有90%的軟件——這還不足以與英偉達競爭。

目前,沒有任何公司能夠完成所有的硬件和軟件步驟。英特爾NNP可能是最接近的,但目前來看,我們不能指望在2020年或2021年之前出現有競爭力的產品。所以目前我們需要繼續使用GPU和TPU。

因此,你就先別指望初創公司的新硬件了。

一個優秀的GPU應該擁有什么性能?

訓練深度學習模型時,GPU性能中最重要的特性到底是什么?是CUDA Core嗎?還是時鐘頻率?或是RAM大小?

GPU的選擇實在令人困惑:16位計算能力,Tensor Core,沒有Tensor Core的16位GPU,多代GPU仍然可行(Turning,Volta,Maxwell)。

所幸我們仍然有一些可靠的性能指標,我們可以使用這些指標作為經驗法則。這里有一些針對不同深度學習架構的優先級指南:

卷積網絡和Transformer:Tensor Core> FLOP>存儲器帶寬> 16位計算能力

循環網絡:存儲器帶寬> 16位計算能力>Tensor Core> FLOP

解釋如下:如果我想使用卷積網絡,我應該首先優先考慮具有Tensor Core的GPU,然后是高FLOP指數,然后是高內存帶寬,然后是具有16位計算能力的GPU 。在確定優先級時,你也需要根據模型大小選擇具有足夠內存的GPU。

為什么優先級是這樣的呢?

GPU可以快速實現兩個最重要的張量操作:矩陣乘法和卷積。

考慮矩陣乘法A * B = C。將A,B的存儲器復制到芯片上比計算A * B更昂貴。這意味著,如果你想使用LSTM和其他經常進行大量小矩陣乘法的循環網絡,則內存帶寬是GPU最重要的特性。矩陣乘法越小,內存帶寬就越重要。

相反,卷積受計算速度的約束。因此,GPU上的TFLOP是ResNets和其他卷積架構性能的較佳指標。Tensor Core可以明顯增加FLOP。

圖2:GPU和TPU的標準化性能數據。越高越好。RTX卡假定16位計算。RNN編號指的是長度小于100的短序列的biLSTM性能。使用PyTorch 1.0.1和CUDA 10完成基準測試。

性價比分析

GPU的性價比可能是選擇GPU的最重要標準。本文的性能分析如下:

1.對于Transformer,我對Transformer-XL和BERT進行了基準測試。

2.對于詞級和字符級RNN,我對較先進的biLSTM模型進行了基準測試。

3.(1)和(2)中的基準測試是針對Titan Xp,Titan RTX和RTX 2080 Ti進行的。對于其他卡,我線性地縮放了性能差異。

4.我使用現有的CNN基準。

5.我使用亞馬遜和eBay的平均成本作為GPU的參考成本。

圖3:卷積網絡(CNN),循環網絡(RNN)和Transformer的標準化性能/成本。越高越好。RTX 2060的成本效率是Tesla V100的5倍以上。RNN編號指的是長度小于100的短序列的biLSTM性能。使用PyTorch 1.0.1和CUDA 10完成基準測試。

從這些數據中,我們看到RTX 2060比RTX 2070,RTX 2080或RTX 2080 Ti更具性價比。為什么會這樣呢?使用Tensor Core進行16位計算的能力遠遠超過擁有更多Tensor Core核心的更大的硬件。使用RTX 2060,你可以以較低的價格獲得這些功能。

然而,這種分析存在一些應該考慮的偏差:

1.這種分析強烈傾向于較小的顯卡。較小而經濟高效的GPU可能沒有足夠的內存來運行你真正感興趣的模型!

2.GTX 10xx卡標價過高:目前,由于游戲玩家不喜歡RTX卡,GTX 10XX卡似乎加價格被哄抬過高。

3.單GPU偏置:一臺具有4個低成本卡(4x RTX 2080 Ti)的計算機比具有較高成本/效率卡(8x RTX 2060)的2臺計算機更具性價比。

警告:多GPU RTX發熱問題

如果你使用多個彼此相鄰的GPU,那么RTX 2080 Ti和其他具有標準雙風扇的RTX GPU就存在問題了——尤其是一臺計算機中的多個RTX 2080 Ti。多個RTX 2080和RTX 2070也會受到影響。

RTX卡上的風扇是由英偉達開發的一種新設計,用于改善運行單GPU的游戲玩家的體驗(靜音,低發熱)。但是,如果你使用具有此開放式雙風扇設計的多個GPU,那么這種設計非常糟糕。如果你想使用多個彼此相鄰的RTX卡(直接在下一個PCIe插槽中),那么你應該獲得具有“鼓風式”單風扇設計的版本。對于RTX 2080 Ti卡尤其如此。華碩和PNY目前市場上有RTX 2080 Ti型號,帶有鼓風式風扇。如果你使用兩個RTX 2070,你可以使用任何風扇,但是,我仍愿意選擇使用一個鼓風式風扇,以便在彼此旁邊運行2個以上的RTX 2070。

所需內存大小和16位訓練

GPU上的內存對于某些應用程序(如計算機視覺,機器翻譯和某些其他NLP應用程序)至關重要,你可能認為RTX 2070具有性價比,但其內存太小,只有8 GB。但請注意,通過16位訓練,你幾乎可以擁有16 GB的內存。任何標準型號都可以被輕松放入RTX 2070。

RTX 2080和RTX 2080 Ti也是如此。但請注意,在大多數軟件框架中,16位運算并非默認選項,因為某些框架以32位存儲權重以執行更較精確的梯度下降。一個好的經驗法則是,使用16位計算往往可以節省50%的內存。因此,16位8GB內存的大小與12 GB 32位內存大致相當。

GPU推薦

目前,我的主要建議是購買RTX 2070 GPU并使用16位訓練。我永遠不會建議購買XP Titan,Titan V,任何Quadro顯卡或任何Founders Edition GPU。但是,有一些特定的GPU也有它們的用武之處:

1.如果要額外內存的話,我建議使用RTX 2080 Ti。如果你真的需要大量的內存,RTX Titan是較好的選擇——但要確保你真的需要那么多內存!

2.如果想要額外的性能,我建議使用RTX 2080 Ti。

3.如果你缺錢,我會推薦eBay上的任何便宜的GTX 10XX卡(取決于你需要多少內存)或RTX 2060。如果太貴,可以看看Colab。

https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d)

4.如果你只想入門深度學習,GTX 1060(6GB)是一個很好的選擇。

5.如果你已經擁有GTX 1070或更高版本,請再等等。除非你使用大型Transformer,否則升級是不值得的。

6.如果你想快速學習深度學習,建議使用多個GTX 1060(6GB)。

云端深度學習

AWS / Azure上的GPU實例和Google Cloud中的TPU都是深度學習的可行選擇。雖然TPU稍微便宜一點,但它缺乏云GPU的多功能性和靈活性。

TPU可能是訓練物體識別或Transformer模型的推薦武器。對于其他工作負載,云GPU是更安全的選擇——云實例的好處是你可以隨時在GPU和TPU之間切換,甚至可以同時使用兩者。

但是,請注意這樣做的代價:如果你一直使用AWS / Azure完成工作,那么你將無法學到如何在個人GPU上工作的技能,并且你也無法獲得使用TPU的技能。如果你一直使用個人GPU,則無法學會通過云擴展到更多GPU / TPU的技能。

如果你使用TPU,當你需要完整功能時,你可能就只能使用TensorFlow了。學習云GPU / TPU工作流的代價是很高,如果你正在面臨TPU、云GPU和個人GPU的選擇,你應該意識到這個代價。

另一個問題是,何時使用云服務?如果你試圖學習深度學習,或者你需要搭建原型,那么個人GPU可能是較好的選擇,因為云實例可能很昂貴。

但是,一旦你找到了良好的深度網絡配置,并且你只想使用數據并行性訓練模型,那么使用云實例是一種可靠的方法。小型GPU足以進行原型設計,而人們可以依靠云計算的強大功能來擴展到更大的實驗。

如果你的資金不足,云計算實例也可能是一個很好的解決方案:在CPU上進行原型設計,然后在GPU / TPU實例上實驗,以便快速進行訓練。這不是較好的工作流程,因為在CPU上做原型設計十分痛苦,但它可以是一個具有高性價比的替代方案。

結論

總的來說,在GPU選取上,我推薦以下三個策略:

1.堅持使用GTX 1070或更好的GPU

2.購買RTX GPU

3.使用某種GPU進行原型設計,然后在TPU或云GPU上進行并行訓練。

更多建議

較佳GPU:RTX 2070?

最差GPU:任何Tesla卡、任何Quadro卡、任何初創公司的卡; Titan RTX,Titan V,Titan XP

高性價比但價格昂貴:RTX 2070

高性價比且價格便宜:RTX 2060,GTX 1060(6GB)

有點小錢:GTX 1060(6GB)

沒錢:GTX 1050 Ti(4GB)或者:CPU(原型)+ AWS / TPU(訓練);或者Colab。

參加Kaggle:RTX 2070。如果你沒有足夠的錢,可以從eBay購買GTX 1060(6GB)或GTX Titan(Pascal)進行原型設計,然后使用AWS進行最終訓練。使用fastai庫。

計算機視覺或機器翻譯研究員:GTX 2080 Ti(采用鼓風機設計)。如果你訓練非常大的網絡,請使用RTX Titans。

NLP研究員:16位的RTX 2080 Ti。

想認真學習深度學習:從RTX 2070開始。在6-9個月后購買更多RTX 2070。根據你接下來選擇的領域(創業,Kaggle,研究,應用深度學習),賣掉你的GPU,并在大約兩年后購買更合適的東西。

只想玩一玩試深度學習:GTX 1050 Ti(4或2GB)。這通常適合你的標準桌面,不需要新的PSU。如果裝得下的話,不要購買新電腦!

相關報道:

http://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/

聲明:本文版權歸原作者所有,文章收集于網絡,為傳播信息而發,如有侵權,請聯系小編及時處理,謝謝!

歡迎加入本站公開興趣群

商業智能與數據分析群

興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識

QQ群:81035754

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/4866.html

相關文章

  • 從硬件配置、軟件安裝到基準測試,1700美元深度學習機器構建指南

    摘要:受到其他同行在上討論更好經驗的激勵,我決定買一個專用的深度學習盒子放在家里。下面是我的選擇從選擇配件到基準測試。即便是深度學習的較佳選擇,同樣也很重要。安裝大多數深度學習框架是首先基于系統開發,然后逐漸擴展到支持其他操作系統。 在用了十年的 MacBook Airs 和云服務以后,我現在要搭建一個(筆記本)桌面了幾年時間里我都在用越來越薄的 MacBooks 來搭載一個瘦客戶端(thin c...

    pkwenda 評論0 收藏0
  • 用不到1000美元攢一臺深度學習用的超快的電腦

    摘要:但是如果你和我是一樣的人,你想自己攢一臺奇快無比的深度學習的電腦。可能對深度學習最重要的指標就是顯卡的顯存大小。性能不錯,不過夠貴,都要美元以上,哪怕是舊一點的版本。電源我花了美元買了一個的電源。也可以安裝,這是一個不同的深度學習框架。 是的,你可以在一個39美元的樹莓派板子上運行TensorFlow,你也可以在用一個裝配了GPU的亞馬遜EC2的節點上跑TensorFlow,價格是每小時1美...

    trigkit4 評論0 收藏0
  • 技術人攻略訪談三十五|小猴機器人:征途路上,星辰大海

    摘要:導語本期訪談對象小猴機器人,清華人工智能專業博士在讀。或許因為成長于廣袤的內蒙,小猴身上帶著大山和草原一般的灑脫與樂觀,在他鐘愛的無人車上,印上了一個美好的我們的征途是星辰大海。技術人攻略除了規則挖掘,人工智能遇到的難題還 showImg(https://segmentfault.com/img/bVc1yA); 文:Gracia,攝影:周振邦 (本文為原創內容,部分或全文轉載均需經作...

    siberiawolf 評論0 收藏0
  • 你必須得知道的人工智能領域的大師與大事

    摘要:沒有過年,年后在年后的年打敗了圍棋高手李世石,這下人工智能引起了全世界的關注。隨后的十多年,人工智能轉入第一次低潮,而也在他生日時,因海事喪生,遺憾未能見到神經網絡后期的復興。算力的進步再次加速了人工智能的快速發展。 showImg(https://segmentfault.com/img/remote/1460000019409315); 小西:小迪小迪,我發現人工智能發展史上很多事...

    LeoHsiun 評論0 收藏0

發表評論

0條評論

JohnLui

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<