深度學習GPU選購指南:哪一款顯示卡配得上我的煉丹爐?
眾所周知,在處理深度學習和神經網路任務時,最好使用GPU而不是CPU來處理,因為在神經網路方面,即使是比較低階的GPU,效能也會勝過CPU。
深度學習是一個對運算有大量需求的領域,從某種程度上來說,GPU的選擇將從根本上決定深度學習的體驗。
但問題來了,如何選購合適的GPU也是件頭痛燒腦的事。
怎麼避免踩雷,如何做出性價比高的選擇?
曾經拿到史丹佛、UCL、CMU、NYU、UW 博士offer、目前在華盛頓大學讀博的知名評測部落客Tim Dettmers就針對深度學習領域需要怎樣的GPU ,結合自身經驗撰寫了萬字長文,最後給了DL領域的推薦GPU。
Tim Dettmers此人的研究方向是表徵學習、硬體優化的深度學習,他自己創建的網站在深度學習和電腦硬體領域也是小有名氣。
Tim Dettmers此文推薦的GPU全部來自N廠,他顯然也認為,搞機器學習,AMD目前還不配擁有姓名。
原文連結小編也貼在下面啦。
#原文連結:https://timdettmers.com/2023/01/16/which-gpu-for-deep-learning /#GPU_Deep_Learning_Performance_per_Dollar
RTX40和30系的優缺點
與英偉達圖靈架構RTX 20系列相比,新的英偉達安培架構RTX 30系列具有更多優勢,如稀疏網路訓練和推理。其他功能,如新的資料類型,應更多地被視為一種易用化功能,因為它們提供了與圖靈架構相同的效能提升,但不需要任何額外的程式要求。
Ada RTX 40系列甚至有更多的進步,例如上面介紹的張量記憶體加速器(TMA)和8位元浮點運算(FP8)。與RTX 30相比,RTX 40系列也有類似的電源和溫度問題。 RTX 40的電源連接器電纜融化的問題可以透過正確連接電源電纜而輕鬆避免。
稀疏的網路訓練
安培允許在密集的速度下進行細粒度結構的自動稀疏矩陣乘法。這是如何做到的?以一個權重矩陣為例,把它切成4個元素的碎片。現在想像這4個元素中的2個元素為零。圖1顯示了這種情況的樣子。
圖1:Ampere架構GPU中的稀疏矩陣乘法功能所支援的結構
當你將這個稀疏權重矩陣與一些密集輸入相乘時,安培的稀疏矩陣張量核心功能會自動將稀疏矩陣壓縮為密集表示,其大小為圖2所示的一半。
在壓縮之後,密集壓縮的矩陣瓦片被送入張量核心,張量核心計算的矩陣乘法是通常大小的兩倍。這有效地產生了2倍的速度,因為在共享記憶體的矩陣乘法過程中,頻寬要求減半。
圖2:在進行矩陣乘法之前,稀疏矩陣被壓縮為密集表示。
我在研究中致力於稀疏網路訓練,我還寫了一篇關於稀疏訓練的部落格文章。對我的工作的一個批評是:"你減少了網路所需的FLOPS,但並沒有產生速度的提升,因為GPU不能進行快速的稀疏矩陣乘法"。
隨著Tensor Cores的稀疏矩陣乘法功能的增加,我的演算法或其他稀疏訓練演算法,現在實際上在訓練期間提供了高達2倍的速度。
所開發的稀疏訓練演算法有三個階段:(1)確定每層的重要性。 (2) 刪除最不重要的權重。 (3) 提升與每層的重要性成比例的新權重。
雖然這項功能仍處於實驗階段,而且訓練稀疏網路還不普遍,但在你的GPU上擁有這一功能意味著你已經為稀疏訓練的未來做好了準備。
低精度計算
在我的工作中,我之前已經表明,新的資料類型可以提高低精度反向傳播期間的穩定性。
#圖4:低精度深度學習8位元資料型別。深度學習訓練得益於高度專業化的資料型態
目前,如果你想用16位元浮點數(FP16)進行穩定的反向傳播,最大的問題是普通FP16資料型態只支援[-65,504, 65,504]範圍內的數字。如果你的梯度滑過這個範圍,你的坡度就會爆炸成NaN值。
為了防止在FP16訓練中出現這種情況,我們通常會進行損失縮放,即在反向傳播之前將損失乘以一個小數字,以防止這種梯度爆炸。
Brain Float 16格式(BF16)對指數使用了更多的比特,這樣可能的數字範圍與FP32相同,BF16的精度較低,也就是有效數字,但梯度精度對學習來說並不那麼重要。
所以BF16所做的是,你不再需要做任何損失縮放,也不需要擔心梯度會迅速爆炸。因此,我們應該看到,透過使用BF16格式,訓練的穩定性有所提高,因為精確度略有損失。
這對你來說意味著什麼。使用BF16精度,訓練可能比使用FP16精度更穩定,同時提供相同的速度提升。使用TF32精度,你可以得到接近FP32的穩定性,同時提供接近FP16的速度提升。
好的是,要使用這些資料類型,你只需用TF32取代FP32,用BF16取代FP16--不需要修改程式碼。
不過總的來說,這些新的資料類型可以被視為懶惰的資料類型,因為你可以透過一些額外的程式設計來努力(適當的損失縮放、初始化、規範化、使用Apex)來獲得舊資料類型的所有好處。
因此,這些資料類型並沒有提供速度,而是改善了訓練中低精度的使用便利性。
風扇設計和GPU溫度
雖然RTX 30系列的新風扇設計在冷卻GPU方面表現非常好,但非創始GPU的不同風扇設計可能會出現更多問題。
如果你的GPU發熱超過80C,它就會自我節流,減慢其運算速度/功率。解決這個問題的方法是使用PCIe擴展器,在GPU之間創造空間。
用PCIe擴展器分散GPU對散熱非常有效,華盛頓大學的其他博士生和我都使用這種設置,並且取得了巨大的成功。它看起來並不漂亮,但它能讓你的GPU保持涼爽!
下面這套系統已經運作了4年,完全沒有問題。如果你沒有足夠的空間在PCIe插槽安裝所有的GPU,也可以這麼用。
圖5: 帶有PCIE擴充口的4顯示卡系統,看起來一團亂,但散熱效率很高。
優雅地解決功耗限制問題
#在你的GPU上設定一個功率限制是可能的。因此,你將能夠以程式設計方式將RTX 3090的功率限制設定為300W,而不是其標準的350W。在4個GPU系統中,這相當於節省了200W,這可能剛好足以用1600W PSU建立一個4x RTX 3090系統的可行性。
這也有助於維持GPU的冷卻。因此,設定功率限制可以同時解決4x RTX 3080或4x RTX 3090設定的兩個主要問題,冷卻和電源。對於4倍的設置,你仍然需要高效散熱風扇的 GPU,但這解決了電源的問題。
#圖6:降低功率限制有輕微的冷卻效果。將RTX 2080 Ti的功率限制降低50-60W,溫度略有下降,風扇運轉更加安靜
你可能會問,「這不會降低GPU的速度嗎? 」是的,確實會降,但問題是降了多少。
我對圖5所示的4x RTX 2080 Ti系統在不同功率限制下進行了基準測試。我對推理過程中BERT Large的500個小批次的時間進行了基準測試(不包括softmax層)。選擇BERT Large推理,對GPU的壓力最大。
#圖7:在RTX 2080 Ti上,在給定的功率限制下測得的速度下降
我們可以看到,設定功率限制並不嚴重影響效能。將功率限制在50W,性能僅下降7%。
RTX 4090接頭起火問題
有誤解,認為RTX 4090電源線起火是因為被彎折過度了。實際上只有0.1%的用戶是這個原因,主要問題是電纜沒有正確插入。
因此,如果你遵循以下安裝說明,使用RTX 4090是完全安全的。
1. 如果你使用舊的電纜或舊的GPU,確保觸點沒有碎片/灰塵。
2.使用電源連接器,並將其插入插座,直到你聽到咔嚓一聲--這是最重要的部分。
3. 從左到右扭動電源線來測試是否合適。電纜不應該移動。
4.目視檢查與插座的接觸情況,電纜和插座之間無間隙。
H100和RTX40中的8位元浮點支援
對8位元浮點(FP8)的支援是RTX 40系列和H100 GPU的一個巨大優勢。
有了8位元輸入,它允許你以兩倍的速度載入矩陣乘法的數據,你可以在快取中儲存兩倍的矩陣元素,而在Ada和Hopper架構中,快取是非常大的,現在有了FP8張量核心,你可以為RTX 4090獲得0.66 PFLOPS的運算量。
這比2007年全世界最快的超級電腦的全部算力還要高。 4倍於FP8計算的RTX 4090,可與2010年全球最快的超級電腦相媲美。
可以看到,最好的8位元基準未能提供良好的零點效能。我開發的方法LLM.int8()可以進行Int8矩陣乘法,結果與16位元基線相同。
但是Int8已經被RTX 30 / A100 / Ampere這一代GPU所支持,為什麼FP8在RTX 40中又是一個大升級呢? FP8資料類型比Int8資料類型穩定得多,而且很容易在層規範或非線性函數中使用,這在整型資料類型中是很難做到的。
這將使它在訓練和推理中的使用變得非常簡單明了。我認為這將使FP8的訓練和推理在幾個月後變得相對普遍。
下面你可以看到這篇論文中關於Float vs Integer資料類型的一個相關主要結果。我們可以看到,逐個比特,FP4資料類型比Int4資料類型保留了更多的信息,從而提高了4個任務的平均LLM零點準確性。
GPU深度學習效能排行
#先上一張圖來看GPU的原始效能排行,看看誰最能打。
我們可以看到H100 GPU的8位元效能與針對16位元效能最佳化的舊卡有巨大差距。
上圖顯示的是GPU的原始相對效能,例如對於8位元推理,RTX 4090的效能大約是 H100 SMX 的 0.33 倍。
換句話說,與RTX 4090相比,H100 SMX的8位推理速度快三倍。
對於此數據,他沒有為舊GPU建模8位元計算。
因為8位元推理和訓練在Ada/Hopper GPU上更有效,而張量記憶體加速器(TMA) 節省了大量暫存器,這些暫存器在8 位元矩陣乘法中非常精確。
Ada/Hopper 也有FP8 支持,這使得特別是8 位訓練更加有效,在Hopper/Ada上,8位訓練性能很可能是16位訓練性能的3-4倍。
對於舊GPU,舊GPU的Int8推理效能則接近16位元推理效能。
每一美元能買到多少算力
那麼問題來了,GPU性能強可是我買不起啊......
針對預算不充足的小夥伴,接下來的圖表是他根據各個GPU的價格和性能統計的每美元性能排名(Performance per Dollar),側面反映了GPU性價比。
選擇完成深度學習任務且符合預算的GPU,可分為以下步驟:
- #首先確定你需要多大的顯存(至少12GB用於影像生成,至少24GB用於處理Transformer);
- 針對選8位或16位(8-bit or 16-bit),建議是能上16位就上,8位在處理複雜編碼任務時還是會有困難;
- 根據上圖的指標,找出具有最高相對效能/成本的GPU。
我們可以看到,RTX4070Ti 對於8位元和16位元推理的成本效益最高,而RTX3080對於16位元訓練的成本效益最高。
雖然這些GPU最具成本效益,但他們的記憶體也是個短板,10GB和12GB的記憶體可能無法滿足所有需求。
但對於剛入坑深度學習的新手來說可能是理想GPU。
其中一些GPU非常適合Kaggle競賽,在Kaggle比賽中取得好成績,工作方法比模型大小更重要,因此許多較小的 GPU非常適合。
Kaggle號稱是全球最大的資料科學家匯集的平台,高手雲集,同時對萌新也很友善。
如果用作學術研究和伺服器運營的最佳GPU似乎是 A6000 Ada GPU。
同時H100 SXM的性價比也很高,記憶體大效能強。
個人經驗來說,如果我要為公司/學術實驗室建立一個小型集群,我推薦66-80%的A6000 GPU 和20-33%的 H100 SXM GPU。
綜合推薦
說了這麼多,終於到了GPU安麗環節。
Tim Dettmers專門製作了一個「GPU選購流程圖」,預算充足就可以上更高配置,預算不足請參考性價比之選。
這裡先強調一點:無論你選哪一款 GPU,首先要確保它的記憶體能滿足你的需求。為此,你要問自己幾個問題:
我要拿GPU做什麼?是拿來參加 Kaggle 比賽、學深度學習、做CV/NLP研究還是玩小專題?
在預算充足的情況下,可以查看上面的基準測試並選擇適合自己的最佳GPU。
還可以透過在vast.ai或Lambda Cloud中運行您的問題一段時間來估算所需的GPU內存,以便了解它是否能滿足您的需求。
如果只是偶爾需要一個GPU(每隔幾天持續幾個小時)並且不需要下載和處理大型資料集,那麼vast.ai或Lambda Cloud也能很好地工作。
但是,如果一個月每天都使用GPU且使用頻率很高(每天12小時),雲端GPU通常不是一個好的選擇。
以上是深度學習GPU選購指南:哪一款顯示卡配得上我的煉丹爐?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

硬體加速GPU有必要開嗎?隨著科技的不斷發展與進步,GPU(GraphicsProcessingUnit)作為電腦圖形處理的核心元件,扮演著至關重要的角色。然而,有些用戶或許對於是否需要開啟硬體加速功能持有疑問。本文將探討硬體加速GPU的必要性,以及開啟硬體加速對電腦效能和使用體驗的影響。首先,我們需要了解硬體加速GPU的工作原理。 GPU是一種專門用

潛在空間嵌入(LatentSpaceEmbedding)是將高維度資料對應到低維度空間的過程。在機器學習和深度學習領域中,潛在空間嵌入通常是透過神經網路模型將高維輸入資料映射為一組低維向量表示,這組向量通常被稱為「潛在向量」或「潛在編碼」。潛在空間嵌入的目的是捕捉資料中的重要特徵,並將其表示為更簡潔和可理解的形式。透過潛在空間嵌入,我們可以在低維空間中對資料進行視覺化、分類、聚類等操作,從而更好地理解和利用資料。潛在空間嵌入在許多領域中都有廣泛的應用,如影像生成、特徵提取、降維等。潛在空間嵌入的主要

最近推出的 Beelink GTi 14 的突出特點之一是迷你 PC 下方有一個隱藏的 PCIe x8 插槽。該公司在發佈時表示,這將使外部顯示卡更容易連接到系統。 Beelink有n

寫在前面今天我們探討下深度學習技術如何改善在複雜環境中基於視覺的SLAM(同時定位與地圖建構)表現。透過將深度特徵提取和深度匹配方法相結合,這裡介紹了一種多功能的混合視覺SLAM系統,旨在提高在諸如低光條件、動態光照、弱紋理區域和嚴重抖動等挑戰性場景中的適應性。我們的系統支援多種模式,包括拓展單目、立體、單目-慣性以及立體-慣性配置。除此之外,也分析如何將視覺SLAM與深度學習方法結合,以啟發其他研究。透過在公共資料集和自採樣資料上的廣泛實驗,展示了SL-SLAM在定位精度和追蹤魯棒性方面優

AMD 兌現了 24 年 3 月的最初承諾,將於今年第二季推出 FSR 3.1。 3.1 版本的真正與眾不同之處在於幀生成方面與升級方面的解耦。這使得 Nvidia 和 Intel GPU 擁有者可以應用 FSR 3。

自2006年深度學習概念被提出以來,20年快過去了,深度學習作為人工智慧領域的一場革命,已經催生了許多具有影響力的演算法。那麼,你所認為深度學習的top10演算法有哪些呢?以下是我心目中深度學習的頂尖演算法,它們在創新、應用價值和影響力方面都佔有重要地位。 1.深度神經網路(DNN)背景:深度神經網路(DNN)也叫多層感知機,是最普遍的深度學習演算法,發明之初由於算力瓶頸而飽受質疑,直到近些年算力、數據的爆發才迎來突破。 DNN是一種神經網路模型,它包含多個隱藏層。在該模型中,每一層將輸入傳遞給下一層,並

在當今科技日新月異的浪潮中,人工智慧(ArtificialIntelligence,AI)、機器學習(MachineLearning,ML)與深度學習(DeepLearning,DL)如同璀璨星辰,引領著資訊科技的新浪潮。這三個詞彙經常出現在各種前沿討論和實際應用中,但對於許多初涉此領域的探索者來說,它們的具體含義及相互之間的內在聯繫可能仍籠罩著一層神秘面紗。那讓我們先來看看這張圖。可以看出,深度學習、機器學習和人工智慧之間存在著緊密的關聯和遞進關係。深度學習是機器學習的一個特定領域,而機器學習

最近,CNMO注意到,榮耀X7b5G正式在海外市場發表。此款機型許多配置與中國市場上的榮耀暢玩50Plus接近,但在影像系統以及部分設計上做了改變。榮耀X7b5G搭載聯發科的天璣700處理器。天璣700採用台積電7nm製程打造,8核心CPU設計,由2個A76大核心+6個A55小核心組成。其中,A76核心頻率高達2.2GHz,A55核心頻率為2.0GHz。 GPU方面,天璣700內建Mali-G57MC2,頻率高達950MHz。該處理器經過最佳化,具備出色的性能表現和較低的能耗,能夠為榮耀X7b5G帶
