金?品?服?務?器
專注于中國特種計算機應用解決方案

联系电话 联系电话
联系电话 联系电话 4008-189-189
首頁    

首頁 - 新聞資訊 - 行業新聞 - 深度學習中如何選擇一款合適的GPU卡

深度學習中如何選擇一款合適的GPU卡

时间:2022-08-16 16:33:19

      深度学习是一个计算需求强烈的领域,GPU的选择将从根本上决定你的深度学习研究过程体验。在没有GPU的情况下,等待一个实验完成往往需要很长时间,可能是运行一天,几天,几个月或更长的时间。因此,选择一个好的,合适的GPU,研究人员可以快速开始迭代深度学习网络,几个月的实验可以在几天之内跑完,几天的实验可以在几个小时之内跑完。因此,在购买GPU时,正确的选择至关重要。那么应该如何选择适合的GPU呢?今天我们将深入探讨这个问题,并会给出一些合适的建议,帮助你做出适合的选择。

      拥有高速GPU是开始学习深度学习的一个非常重要的方面,因为这可以帮助你快速获得实践经验,这是搭建专业知识的关键,有足够的时间将深度学习应用于解决新问题。如果没有这种快速的反馈,就需要花费太多的时间从错误中学习。因此,今天就谈谈如何选择一款合适的GPU来进行深度学习的研究。


首先給出一些總體的建議

非常好的GPU整體(小幅度):Titan Xp

綜合性價比高,但略貴:GTX 1080 Ti,GTX 1070,GTX 1080

性價比還不錯且便宜:GTX 1060(6GB)

当使用数据集> 250GB:GTX Titan X(Maxwell) ,NVIDIA Titan X Pascal或NVIDIA Titan Xp

沒有足夠的錢:GTX 1060(6GB)

幾乎沒有錢:GTX 1050 Ti(4GB)

做Kaggle比賽:GTX 1060(6GB)适用于任何“正常”比赛,或GTX 1080 Ti用于“深度学习竞赛”

計算機視覺研究員:NVIDIA Titan Xp;不要买现在新出的Titan X(Pascal或Maxwell)

一名研究員人員:GTX 1080 Ti。在某些情况下,如自然语言处理,一个GTX 1070或GTX 1080已经足够了-检查你现在模型的内存需求。

搭建一個GPU集群:這個優點複雜,另做探討。

剛開始進行深度學習研究:从GTX 1060(6GB)开始。根据你下一步兴趣(入门,Kaggle比赛,研究,应用深度学习)等等,在进行选择。目前,GTX 1060更合适。

想嘗試下深度學習,但沒有過多要求:GTX 1050 ti(4或2GB)

应该选择什么样的GPU?NVIDIA GPU,AMD GPU或Intel Xeon Phi?


NVIDIA的标准库使得基于CUDA来建立第一个深度学习库变得非常容易,而AMD的OpenCL则没有这样强大的标准库。现在,AMD卡没有像这样好的深度学习库,所以就只有NVIDIA。即使未来有一些OpenCL库可能也可用,但我也会坚持使用NVIDIA,因为GPU计算能力或GPGPU社区非常强大,可以持续促进CUDA的发展,而OpenCL则相对有限。因此,在CUDA社区中,很容易获得不错的开源解決方案和可靠的建议。

此外,即使深度學習剛剛起步,NVIDIA仍然在持續深入的發展。這個選擇得到了回報。而其他公司現在把錢和精力放在深度學習上,由于起步較晚,現在還是相對落後。目前,除NVIDIA-CUDA之外,其他很多軟硬件結合的深度學習方案都會遇到或多或少的問題。

至于英特尔的Xeon Phi处理方案,官方广告宣称编程者可以使用标准的C代码进行开发,并很容易将代码轻松转换为经过加速的Xeon Phi代码。这个特性听起来很有趣,因为我们可以依靠丰富的C代码资源。但是,实际上只有很小部分的C代码是被支持的,所以这个特性目前并不是很有用,而且能够运行的大部分C代码都很慢。


給定預算下如何選擇較快的GPU

在選擇GPU時,首先要考慮的第一個GPU性能問題是什麽呢:是否爲cuda核心?時鍾速度多大?內存大小多少?

这些都不是,对于深度学习性能而言,最重要的特征是内存带宽(memory bandwidth)。

简而言之:GPU针对内存带宽进行了优化,但同时牺牲了内存访问时间(延迟)。CPU的设计恰恰相反:如果涉及少量内存(例如几个数字相乘(3 * 6 * 9)),CPU可以快速计算,但是对于大量内存(如矩阵乘法(A * B * C)则很慢。由于内存带宽的限制,当涉及大量内存的问题时,GPU快速计算的优势往往会受到限制。当然,GPU和CPU之间还有更复杂的区别,关于为何GPU如此适用于处理深度学习问题,另做探讨。

所以如果你想購買一個快速的GPU,首先要關注的是GPU的帶寬(bandwidth)。


通過內存帶寬評估GPU的性能


隨著時間的變化,CPUGPU的帶寬比較:帶寬是GPUCPU更快的主要原因之一。

帶寬可以直接在芯片的體系結構上進行比較,例如像GTX 1080GTX 1070這樣的Pascal卡,其性能可以直接通過單獨查看內存帶寬進行比較。例如,GTX 1080320GB / s)比GTX 1070256 GB / s)快25%(320/256)。然而,不同的結構,例如像GTX 1080GTX Titan X之類的PascalMaxwell不能直接比較,因爲不同制造工藝(以納米爲單位),導致不同的架構對于如何利用給定的內存帶寬的方式不同。這使得一切都有點棘手,但僅僅基于整體帶寬就能讓我們很好地評價GPU的速度到底有多快。爲了確定在一個給定的條件下,一款GPU能多快,可以查看這個維基百科頁面,以GB / s爲單位查看帶寬。  

另一个需要考虑的重要因素是,并不是所有的架构都與cuDNN兼容。由于幾乎所有深度學習庫都使用cuDNN進行卷積運算,這就限制GPU的選擇只能是Kepler GPU或更高的版本,即GTX 600系列或更高版本。最重要的是,Kepler GPU一般都很慢。所以這意味著應該選擇GTX 9001000系列的GPU,以獲得更好的性能。

爲了粗略地估計一下這些卡在深度學習任務上的表現,我構建了一個簡單的GPU等值圖。如何閱讀這個?例如,一個GTX 9800.35 Titan X Pascal一樣快,或者換句話說,Titan X Pascal幾乎是GTX 980的三倍。

請注意,我自己並沒有所有的這些卡,我並沒有在所有這些卡上運行然後得到深度學習的benchemarks。比較的結果通過卡片規格以及一些可得到的計算benchmarks(一些用于加密貨幣挖掘的情況,這一性能在深度學習相關的計算能力上是可比較的)得出的。所以這些結果粗略的估計。實際的數字可能會有所不同,但通常錯誤應該是比較小的,卡的順序應該是正確的。另外請注意,那些不足以充分利用GPU性能的小型網絡會讓GPU的性能看上去不好。例如,GTX 1080 Ti上的小型LSTM128個隱藏單元;批量大小> 64)不會比在GTX 1070上運行速度快很多。爲了獲得圖下表中顯示的性能差異,需要運行更大的網絡,比如具有1024個隱單元的LSTM(批量大小> 64)。

 

GPU之間粗略的性能比較。此比較建立于充分利用GPU性能情況下。

性價比分析

基于上面繪制的性能比較圖,除以它們對應的價格,得到下圖的基于成本的排名,越長代表性價比越高,該圖某種程度上反映了不同卡之間的性價比差異。


成本效益對比圖。請注意,這個數字在很多方面都有偏差,例如它沒有考慮到內存。

但请注意,这种对GPU排名的衡量标准考虑并不全面。首先,没有考虑GPU的内存大小。从上面的图看,GTX 1050 Ti性价比高,但当实际应用中你说需要的内存超过了1050 Ti所能提供的内存时,也不能用。类似地,使用4个小的GPU比仅使用1个大得GPU要复杂的多,因此小型GPU也有很多不足之处。此外,不能通过购买16 GTX 1050 Ti来获得4 GTX 1080 Ti的性能,因为还需要购买3台额外的昂贵的电脑。如果考虑这一点,即GPU的内存大小,得到下图所示性價比分析图。

綜合考慮其他硬件的價格(比如搭載GPU的電腦價格),對GPU的性價比進行標准化。在這裏,比較了一台完整的機器,包含4個GPU,配置價值約1500美元的其他高端硬件(CPU,主板等)條件下。

因此,在这种情况下,如果您想要购买更多的GPU,毫无疑问,内存越大的GPU性价比越高,因为相同内存需求条件下,不需要买更多的机器。但是,这种对GPU选择方法仍然存在缺陷。如果你预算金额有限,没有办法无法负担4 GTX 1080 Ti机器的价格,这种对比就毫无意义。因此,实际情况是,基于你有限的预算下,你可以购买到的哪种系统性能是好的?同时,你还必须处理其他问题,例如:每天使用此GPU的时间有多长?想在几年内升级GPU或整个计算机?想在未来多长一段时间内卖掉当前的GPU,并购买新的更好的GPU?等等

所以你可以看到,做出正確的選擇並不容易。但是,如果你對所有這些問題平衡的看待,就會得出類似于以下的這些結論。


一般的GPU選擇建議

一般来说,我会推荐GTX 1080 Ti,GTX 1080或GTX 1070.他们都是优秀的显卡,如果你有钱,应该购买GTX 1080 Ti。GTX 1070比普通的GTX Titan X(Maxwell)便宜一些。GTX 1080的性价比比GTX 1070低一些,但是自GTX 1080 Ti推出以来,价格大幅下滑,现在GTX 1080的性价比已经能够與GTX 1070比拟。所有这三款显卡应该比GTX 980 Ti要好,因为它们具有11GB和8GB(而不是6GB)的内存。

8GB的内存可能看起来有点小,但是对于许多任务来说这已经足够了。例如对于Kaggle比赛,大多数图像数据,deep style和自然语言理解任务,这些你可能会遇到几个问题。

对于入门级的人来或是偶尔想用GPU来参加类似Kaggle比赛的人,GTX 1060是一个不错的选择。我不推荐内存只有3GB的GTX 1060 variant产品,因为6G的内存就已经很有限了。但是,对于许多应用来说,6GB就足够了。GTX 1060比普通的Titan X慢,但與GTX 980具有可比的性价比。

就综合性价比而言,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,对于以上应用都合适。

不推荐NVIDIA Titan Xp,因为它的性价比太贵了。可以用GTX 1080 Ti代替。然而,NVIDIA Titan Xp在计算机视觉研究领域中仍然有一定的使用,用于处理大数据集或视频数据。在这些领域中,按照每GB的内存数量计算,NVIDIA Titan Xp只比GTX 1080 Ti多1GB,但在这种情况下也具有一定的优势。不推荐NVIDIA Titan X(Pascal),因为NVIDIA Titan Xp速度更快,但价格几乎相同。但由于市场上这些GPU的稀缺性,如果你找不到NVIDIA Titan Xp,也可以购买Titan X(Pascal)。

如果你已经有了GTX Titan X(Maxwell)GPU,那么升级到NVIDIA Titan X(Pascal)或NVIDIA Titan Xp就没有必要了。

如果你缺钱,但是你需要12GB内存来开展你的研究,那么GTX Titan X(Maxwell)也是一个很好的选择。

对于大多数研究人员来说,GTX 1080 Ti已经完全够用了。大多数研究和大多数应用,GTX 1080 Ti的内存完全够用。

在NLP中,内存限制并不像计算机视觉领域那么严格,所以GTX 1070 / GTX 1080也是不错的选择。通常是,需要解决什么样的任务以及如何进行试验,决定了需要选择哪一款GPU,无论是GTX 1070还是GTX 1080。当你选择GPU时,应该按照类似的方式推理。考虑一下你在做什么任务,如何运行你的实验,然后尝试找到适合这些要求的GPU。

对于预算有限的人来说,选择条件则更加有限。亚马逊网络服务上的GPU相当昂贵和缓慢,如果只有少量的资金,也是一个不错的选择。我不推荐GTX 970,因为它很慢,即使在某些限制条件下也是相当昂贵的(在eBay上150美元),并且存在與卡启动相关的内存问题。相反,建议花更多一点的钱购买更快,有更大的内存,没有内存问题的GTX 1060。如果实在买不起GTX 1060,我建议选择配备4GB内存的GTX 1050 Ti。4GB内存可能有限,但至少可以开展进行你的研究,只是需要你对模型进行一些调整,也可以得到良好的性能。

GTX 1050 Ti一般来说也是一个不错的选择,如果你只是想尝试一下深度学习,而没有其他更多的需求。


結論

有了这篇文章中提供的所有信息,你应该能够考虑选择哪一种合适的GPU,综合考虑所需的内存大小,带宽(GB/s)大小和GPU的价格,这一思路在未来很久也适用。最后,如果有足够的资金,建议购买GTX 1080 Ti,GTX 1070或者GTX 1080。如果刚刚开始研究深度学习,或者资金有限,可以购买GTX 1060。如果资金实在有限,可以购买GTX 1050 ti;如果想要从事计算机视觉研究,可以购买Titan Xp。