設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

深度學(xué)習(xí) GPU 選購(gòu)指南:哪款顯卡配得上我的煉丹爐

新智元 2023/1/17 20:32:09 責(zé)編:夢(mèng)澤

最近,曾拿到斯坦福、UCL、CMU、NYU 博士 offer、目前在華盛頓大學(xué)讀博的知名測(cè)評(píng)博主 Tim Dettmers 在自己的網(wǎng)站又上線了深度學(xué)習(xí)領(lǐng)域的 GPU 深度測(cè)評(píng),到底誰(shuí)才是性能和性價(jià)比之王?

眾所周知,在處理深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)任務(wù)時(shí),最好使用 GPU 而不是 CPU 來(lái)處理,因?yàn)樵谏窠?jīng)網(wǎng)絡(luò)方面,即使是一個(gè)比較低端的 GPU,性能也會(huì)勝過(guò) CPU。

深度學(xué)習(xí)是一個(gè)對(duì)計(jì)算有著大量需求的領(lǐng)域,從一定程度上來(lái)說(shuō),GPU 的選擇將從根本上決定深度學(xué)習(xí)的體驗(yàn)。

但問(wèn)題來(lái)了,如何選購(gòu)合適的 GPU 也是件頭疼燒腦的事。

怎么避免踩雷,如何做出性價(jià)比高的選擇?

曾經(jīng)拿到過(guò)斯坦福、UCL、CMU、NYU、UW 博士 offer、目前在華盛頓大學(xué)讀博的知名評(píng)測(cè)博主 Tim Dettmers 就針對(duì)深度學(xué)習(xí)領(lǐng)域需要怎樣的 GPU,結(jié)合自身經(jīng)驗(yàn)撰寫(xiě)了萬(wàn)字長(zhǎng)文,最后給出了 DL 領(lǐng)域的推薦 GPU。

Tim Dettmers 此人的研究方向是表征學(xué)習(xí)、硬件優(yōu)化的深度學(xué)習(xí),他自己創(chuàng)建的網(wǎng)站在深度學(xué)習(xí)和計(jì)算機(jī)硬件領(lǐng)域也是小有名氣。

Tim Dettmers 此文推薦的 GPU 全部來(lái)自 N 廠,他顯然也認(rèn)為,搞機(jī)器學(xué)習(xí),AMD 目前還不配擁有姓名。

原文鏈接小編也貼在下面啦。

https://timdettmers.com/2023/01/16/which-gpu-for-deep-learning/#GPU_Deep_Learning_Performance_per_Dollar

RTX40 和 30 系的優(yōu)缺點(diǎn)

與英偉達(dá)圖靈架構(gòu) RTX 20 系列相比,新的英偉達(dá)安培架構(gòu) RTX 30 系列具有更多優(yōu)勢(shì),如稀疏網(wǎng)絡(luò)訓(xùn)練和推理。其他功能,如新的數(shù)據(jù)類型,應(yīng)更多地被看作是一種易用化功能,因?yàn)樗鼈兲峁┝伺c圖靈架構(gòu)相同的性能提升,但不需要任何額外的編程要求。

Ada RTX 40 系列甚至有更多的進(jìn)步,比如上面介紹的張量?jī)?nèi)存加速器(TMA)和 8 位浮點(diǎn)運(yùn)算(FP8)。與 RTX 30 相比,RTX 40 系列也有類似的電源和溫度問(wèn)題。RTX 40 的電源連接器電纜融化的問(wèn)題可以通過(guò)正確連接電源電纜而輕松避免。

稀疏的網(wǎng)絡(luò)訓(xùn)練

安培允許在密集的速度下進(jìn)行細(xì)粒度結(jié)構(gòu)的自動(dòng)稀疏矩陣乘法。這是如何做到的?以一個(gè)權(quán)重矩陣為例,把它切成 4 個(gè)元素的碎片?,F(xiàn)在想象這 4 個(gè)元素中的 2 個(gè)元素為零。圖 1 顯示了這種情況的樣子。

圖 1:Ampere 架構(gòu) GPU 中的稀疏矩陣乘法功能所支持的結(jié)構(gòu)

當(dāng)你將這個(gè)稀疏權(quán)重矩陣與一些密集輸入相乘時(shí),安培的稀疏矩陣張量核心功能會(huì)自動(dòng)將稀疏矩陣壓縮為密集表示,其大小為圖 2 所示的一半。

在壓縮之后,密集壓縮的矩陣瓦片被送入張量核心,張量核心計(jì)算的矩陣乘法是通常大小的兩倍。這有效地產(chǎn)生了 2 倍的速度,因?yàn)樵诠蚕韮?nèi)存的矩陣乘法過(guò)程中,帶寬要求減半。

圖 2:在進(jìn)行矩陣乘法之前,稀疏矩陣被壓縮為密集表示。

我在研究中致力于稀疏網(wǎng)絡(luò)訓(xùn)練,我還寫(xiě)了一篇關(guān)于稀疏訓(xùn)練的博文。對(duì)我的工作的一個(gè)批評(píng)是:"你減少了網(wǎng)絡(luò)所需的 FLOPS,但并沒(méi)有產(chǎn)生速度的提升,因?yàn)?GPU 不能進(jìn)行快速的稀疏矩陣乘法"。

隨著 Tensor Cores 的稀疏矩陣乘法功能的增加,我的算法或其他稀疏訓(xùn)練算法,現(xiàn)在實(shí)際上在訓(xùn)練期間提供了高達(dá) 2 倍的速度。

開(kāi)發(fā)的稀疏訓(xùn)練算法有三個(gè)階段:(1)確定每層的重要性。(2) 刪除最不重要的權(quán)重。(3) 提升與每層的重要性成比例的新權(quán)重。

雖然這一功能仍處于實(shí)驗(yàn)階段,而且訓(xùn)練稀疏網(wǎng)絡(luò)還不普遍,但在你的 GPU 上擁有這一功能意味著你已經(jīng)為稀疏訓(xùn)練的未來(lái)做好了準(zhǔn)備。

低精度計(jì)算

在我的工作中,我之前已經(jīng)表明,新的數(shù)據(jù)類型可以提高低精度反向傳播期間的穩(wěn)定性。

圖 4:低精度深度學(xué)習(xí) 8 位數(shù)據(jù)類型。深度學(xué)習(xí)訓(xùn)練得益于高度專業(yè)化的數(shù)據(jù)類型

目前,如果你想用 16 位浮點(diǎn)數(shù)(FP16)進(jìn)行穩(wěn)定的反向傳播,最大的問(wèn)題是普通 FP16 數(shù)據(jù)類型只支持 [-65,504, 65,504] 范圍內(nèi)的數(shù)字。如果你的梯度滑過(guò)這個(gè)范圍,你的梯度就會(huì)爆炸成 NaN 值。

為了防止在 FP16 訓(xùn)練中出現(xiàn)這種情況,我們通常會(huì)進(jìn)行損失縮放,即在反向傳播之前將損失乘以一個(gè)小數(shù)字,以防止這種梯度爆炸。

Brain Float 16 格式(BF16)對(duì)指數(shù)使用了更多的比特,這樣可能的數(shù)字范圍與 FP32 相同,BF16 的精度較低,也就是有效數(shù)字,但梯度精度對(duì)學(xué)習(xí)來(lái)說(shuō)并不那么重要。

所以 BF16 所做的是,你不再需要做任何損失縮放,也不需要擔(dān)心梯度會(huì)迅速爆炸。因此,我們應(yīng)該看到,通過(guò)使用 BF16 格式,訓(xùn)練的穩(wěn)定性有所提高,因?yàn)榫嚷杂袚p失。

這對(duì)你意味著什么。使用 BF16 精度,訓(xùn)練可能比使用 FP16 精度更穩(wěn)定,同時(shí)提供相同的速度提升。使用 TF32 精度,你可以得到接近 FP32 的穩(wěn)定性,同時(shí)提供接近 FP16 的速度提升。

好的是,要使用這些數(shù)據(jù)類型,你只需用 TF32 取代 FP32,用 BF16 取代 FP16--不需要修改代碼。

不過(guò)總的來(lái)說(shuō),這些新的數(shù)據(jù)類型可以被看作是懶惰的數(shù)據(jù)類型,因?yàn)槟憧梢酝ㄟ^(guò)一些額外的編程努力(適當(dāng)?shù)膿p失縮放、初始化、規(guī)范化、使用 Apex)來(lái)獲得舊數(shù)據(jù)類型的所有好處。

因此,這些數(shù)據(jù)類型并沒(méi)有提供速度,而是改善了訓(xùn)練中低精度的使用便利性。

風(fēng)扇設(shè)計(jì)和 GPU 溫度

雖然 RTX 30 系列的新風(fēng)扇設(shè)計(jì)在冷卻 GPU 方面表現(xiàn)非常好,但非創(chuàng)始版 GPU 的不同風(fēng)扇設(shè)計(jì)可能會(huì)出現(xiàn)更多問(wèn)題。

如果你的 GPU 發(fā)熱超過(guò) 80C,它就會(huì)自我節(jié)流,減慢其計(jì)算速度 / 功率。解決這個(gè)問(wèn)題的辦法是使用 PCIe 擴(kuò)展器,在 GPU 之間創(chuàng)造空間。

用 PCIe 擴(kuò)展器分散 GPU 對(duì)散熱非常有效,華盛頓大學(xué)的其他博士生和我都使用這種設(shè)置,并取得了巨大的成功。它看起來(lái)并不漂亮,但它能使你的 GPU 保持涼爽!

下面這套系統(tǒng)已經(jīng)運(yùn)行了 4 年,完全沒(méi)有問(wèn)題。如果你沒(méi)有足夠的空間在 PCIe 插槽中安裝所有的 GPU,也可以這么用。

圖 5: 帶 PCIE 擴(kuò)展口的 4 顯卡系統(tǒng),看起來(lái)一團(tuán)亂,但散熱效率很高。

優(yōu)雅地解決功耗限制問(wèn)題

在你的 GPU 上設(shè)置一個(gè)功率限制是可能的。因此,你將能夠以編程方式將 RTX 3090 的功率限制設(shè)置為 300W,而不是其標(biāo)準(zhǔn)的 350W。在 4 個(gè) GPU 系統(tǒng)中,這相當(dāng)于節(jié)省了 200W,這可能剛好足夠用 1600W PSU 建立一個(gè) 4x RTX 3090 系統(tǒng)的可行性。

這還有助于保持 GPU 的冷卻。因此,設(shè)置功率限制可以同時(shí)解決 4x RTX 3080 或 4x RTX 3090 設(shè)置的兩個(gè)主要問(wèn)題,冷卻和電源。對(duì)于 4 倍的設(shè)置,你仍然需要高效散熱風(fēng)扇的 GPU,但這解決了電源的問(wèn)題。

圖 6:降低功率限制有輕微的冷卻效果。將 RTX 2080 Ti 的功率限制降低 50-60W,溫度略有下降,風(fēng)扇運(yùn)行更加安靜

你可能會(huì)問(wèn),「這不會(huì)降低 GPU 的速度嗎?」 是的,確實(shí)會(huì)降,但問(wèn)題是降了多少。

我對(duì)圖 5 所示的 4x RTX 2080 Ti 系統(tǒng)在不同功率限制下進(jìn)行了基準(zhǔn)測(cè)試。我對(duì)推理過(guò)程中 BERT Large 的 500 個(gè)小批次的時(shí)間進(jìn)行了基準(zhǔn)測(cè)試(不包括 softmax 層)。選擇 BERT Large 推理,對(duì) GPU 的壓力最大。

圖 7:在 RTX 2080 Ti 上,在給定的功率限制下測(cè)得的速度下降

我們可以看到,設(shè)置功率限制并不嚴(yán)重影響性能。將功率限制在 50W,性能僅下降 7%。

RTX 4090 接頭起火問(wèn)題

有一種誤解,認(rèn)為 RTX 4090 電源線起火是因?yàn)楸粡澱圻^(guò)度了。實(shí)際上只有 0.1% 的用戶是這個(gè)原因,主要問(wèn)題是電纜沒(méi)有正確插入。

因此,如果你遵循以下安裝說(shuō)明,使用 RTX 4090 是完全安全的。

1. 如果你使用舊的電纜或舊的 GPU,確保觸點(diǎn)沒(méi)有碎片 / 灰塵。

2.使用電源連接器,并將其插入插座,直到你聽(tīng)到咔嚓一聲--這是最重要的部分。

3. 通過(guò)從左到右扭動(dòng)電源線來(lái)測(cè)試是否合適。電纜不應(yīng)該移動(dòng)。

4.目視檢查與插座的接觸情況,電纜和插座之間無(wú)間隙。

H100 和 RTX40 中的 8 位浮點(diǎn)支持

對(duì) 8 位浮點(diǎn)(FP8)的支持是 RTX 40 系列和 H100 GPU 的一個(gè)巨大優(yōu)勢(shì)。

有了 8 位輸入,它允許你以兩倍的速度加載矩陣乘法的數(shù)據(jù),你可以在緩存中存儲(chǔ)兩倍的矩陣元素,而在 Ada 和 Hopper 架構(gòu)中,緩存是非常大的,現(xiàn)在有了 FP8 張量核心,你可以為 RTX 4090 獲得 0.66 PFLOPS 的計(jì)算量。

這比 2007 年世界上最快的超級(jí)計(jì)算機(jī)的全部算力還要高。4 倍于 FP8 計(jì)算的 RTX 4090,可與 2010 年世界上最快的超級(jí)計(jì)算機(jī)相媲美。

可以看到,最好的 8 位基線未能提供良好的零點(diǎn)性能。我開(kāi)發(fā)的方法 LLM.int8 () 可以進(jìn)行 Int8 矩陣乘法,結(jié)果與 16 位基線相同。

但是 Int8 已經(jīng)被 RTX 30 / A100 / Ampere 這一代 GPU 所支持,為什么 FP8 在 RTX 40 中又是一個(gè)大升級(jí)呢?FP8 數(shù)據(jù)類型比 Int8 數(shù)據(jù)類型要穩(wěn)定得多,而且很容易在層規(guī)范或非線性函數(shù)中使用,這在整型數(shù)據(jù)類型中是很難做到的。

這將使它在訓(xùn)練和推理中的使用變得非常簡(jiǎn)單明了。我認(rèn)為這將使 FP8 的訓(xùn)練和推理在幾個(gè)月后變得相對(duì)普遍。

下面你可以看到這篇論文中關(guān)于 Float vs Integer 數(shù)據(jù)類型的一個(gè)相關(guān)主要結(jié)果。我們可以看到,逐個(gè)比特,F(xiàn)P4 數(shù)據(jù)類型比 Int4 數(shù)據(jù)類型保留了更多的信息,從而提高了 4 個(gè)任務(wù)的平均 LLM 零點(diǎn)準(zhǔn)確性。

GPU 深度學(xué)習(xí)性能排行

先上一張圖來(lái)看 GPU 的原始性能排行,看看誰(shuí)最能打。

我們可以看到 H100 GPU 的 8 位性能與針對(duì) 16 位性能優(yōu)化的舊卡存在巨大差距。

上圖顯示的是 GPU 的原始相對(duì)性能,比如對(duì)于 8 位推理,RTX 4090 的性能大約是 H100 SMX 的 0.33 倍。

換句話說(shuō),與 RTX 4090 相比,H100 SMX 的 8 位推理速度快三倍。

對(duì)于此數(shù)據(jù),他沒(méi)有為舊 GPU 建模 8 位計(jì)算。

因?yàn)?8 位推理和訓(xùn)練在 Ada / Hopper GPU 上更有效,而張量?jī)?nèi)存加速器 (TMA) 節(jié)省了大量寄存器,這些寄存器在 8 位矩陣乘法中非常精確。

Ada / Hopper 也有 FP8 支持,這使得特別是 8 位訓(xùn)練更加有效,在 Hopper / Ada 上,8 位訓(xùn)練性能很可能是 16 位訓(xùn)練性能的 3-4 倍。

對(duì)于舊 GPU,舊 GPU 的 Int8 推理性能則接近 16 位推理性能。

每一美元能買到多少算力

那么問(wèn)題來(lái)了,GPU 性能強(qiáng)可是我買不起啊......

針對(duì)預(yù)算不充足的小伙伴,接下來(lái)的圖表是他根據(jù)各個(gè) GPU 的價(jià)格和性能統(tǒng)計(jì)的每美元性能排名(Performance per Dollar),側(cè)面反映了 GPU 性價(jià)比。

選擇一個(gè)完成深度學(xué)習(xí)任務(wù)并且符合預(yù)算的 GPU,可分為以下幾個(gè)步驟:

  • 首先確定你需要多大的 GPU 內(nèi)存(至少 12GB 用于圖像生成,至少 24GB 用于處理變壓器);

  • 針對(duì)選 8 位還是 16 位(8-bit or 16-bit),建議是能上 16 位就上,8 位在處理復(fù)雜編碼任務(wù)時(shí)還是會(huì)有困難;

  • 根據(jù)上圖中的指標(biāo),找到具有最高相對(duì)性能 / 成本的 GPU。

我們可以看到,RTX4070Ti 對(duì)于 8 位和 16 位推理的成本效益最高,而 RTX3080 對(duì)于 16 位訓(xùn)練的成本效益最高。

雖然這些 GPU 最具成本效益,但他們的內(nèi)存也是個(gè)短板,10GB 和 12GB 的內(nèi)存可能無(wú)法滿足所有需求。

但對(duì)于剛?cè)肟由疃葘W(xué)習(xí)的新手來(lái)說(shuō)可能是理想 GPU。

其中一些 GPU 非常適合 Kaggle 競(jìng)賽,在 Kaggle 比賽中取得好成績(jī),工作方法比模型大小更重要,因此許多較小的 GPU 非常適合。

Kaggle 號(hào)稱是全球最大的數(shù)據(jù)科學(xué)家匯聚的平臺(tái),高手云集,同時(shí)對(duì)萌新也很友好。

如果用作學(xué)術(shù)研究和服務(wù)器運(yùn)營(yíng)的最佳 GPU 似乎是 A6000 Ada GPU。

同時(shí) H100 SXM 的性價(jià)比也很高,內(nèi)存大性能強(qiáng)。

個(gè)人經(jīng)驗(yàn)來(lái)說(shuō),如果我要為公司 / 學(xué)術(shù)實(shí)驗(yàn)室構(gòu)建一個(gè)小型集群,我推薦 66-80% 的 A6000 GPU 和 20-33% 的 H100 SXM GPU。

綜合推薦

說(shuō)了這么多,終于到了 GPU 安利環(huán)節(jié)。

Tim Dettmers 專門(mén)制作了一個(gè)「GPU 選購(gòu)流程圖」,預(yù)算充足就可以上更高配置,預(yù)算不足請(qǐng)參考性價(jià)比之選。

這里首先強(qiáng)調(diào)一點(diǎn):無(wú)論你選哪款 GPU,首先要確保它的內(nèi)存能滿足你的需求。為此,你要問(wèn)自己幾個(gè)問(wèn)題:

我要拿 GPU 做什么?是拿來(lái)參加 Kaggle 比賽、學(xué)深度學(xué)習(xí)、做 CV / NLP 研究還是玩小項(xiàng)目?

預(yù)算充足的情況下,可以查看上面的基準(zhǔn)測(cè)試并選擇適合自己的最佳 GPU。

還可以通過(guò)在 vast.ai 或 Lambda Cloud 中運(yùn)行您的問(wèn)題一段時(shí)間來(lái)估算所需的 GPU 內(nèi)存,以便了解它是否能滿足你的需求。

如果只是偶爾需要一個(gè) GPU(每隔幾天持續(xù)幾個(gè)小時(shí))并且不需要下載和處理大型數(shù)據(jù)集,那么 vast.ai 或 Lambda Cloud 也能很好地工作。

但是,如果一個(gè)月每天都使用 GPU 且使用頻率很高(每天 12 小時(shí)),云 GPU 通常不是一個(gè)好的選擇。

參考資料:

  • https://timdettmers.com/2023/01/16/which-gpu-for-deep-learning/#more-6

  • https://timdettmers.com/

本文來(lái)自微信公眾號(hào):新智元 (ID:AI_era),編輯:Joey David

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:深度學(xué)習(xí)

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知