博客專欄

EEPW首頁 > 博客 > RTX 40時代,給深度學(xué)習(xí)買的顯卡居然能保值9年?仔細(xì)一算繃不住了(2)

RTX 40時代,給深度學(xué)習(xí)買的顯卡居然能保值9年?仔細(xì)一算繃不住了(2)

發(fā)布人:機器之心 時間:2023-01-17 來源:工程師 發(fā)布文章

RTX 40 系列的優(yōu)劣


與英偉達 Turing RTX 20 系列相比,新的 Ampere RTX 30 系列具有額外的優(yōu)勢,例如稀疏網(wǎng)絡(luò)訓(xùn)練和推理能力。其他功能,如新數(shù)據(jù)類型,應(yīng)該更多地被視為一種易于使用的功能,因為它們提供與 Turing 相同的性能提升,但不需要任何額外的編程。


Ada RTX 40 系列還有更進一步的改進,例如上面介紹的張量內(nèi)存加速器 (TMA) 和 8 位浮點數(shù) (FP8)。與 RTX 30 相比,40 系也存在類似的功率和溫度問題。通過正確連接電源線,可以避免 RTX 40 中電源連接器電纜熔化的問題。


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


Ampere 允許以密集的速度進行細(xì)粒度結(jié)構(gòu)自動稀疏矩陣乘法。這是如何運作的?取一個權(quán)重矩陣并將其分成 4 個元素的片段?,F(xiàn)在想象這 4 個中的 2 個元素為零。如下圖所示:



圖片

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


當(dāng)你將此稀疏權(quán)重矩陣與一些密集輸入相乘時,Ampere 中的稀疏矩陣張量核心功能會自動將稀疏矩陣壓縮為大小一半的密集表示,如下圖所示。壓縮后密集壓縮矩陣塊被送入張量核心,該核心計算兩倍于通常大小的矩陣乘法。這有效地產(chǎn)生了 2 倍加速,因為從共享內(nèi)存進行矩陣乘法期間的帶寬要求減半。


圖片

圖 2:稀疏矩陣在執(zhí)行矩陣乘法之前被壓縮為密集表示。


低精度計算


在我的工作中,我之前已經(jīng)證明新數(shù)據(jù)類型可以提高低精度在反向傳播過程中的穩(wěn)定性 (https://arxiv.org/abs/1511.04561)。


圖片

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


但使用 BF16 精度,訓(xùn)練可能比使用 FP16 精度更穩(wěn)定,同時提供相同的加速。使用 TF32 精度,你可以獲得接近 FP32 的穩(wěn)定性,同時提供接近 FP16 的加速。另外要使用這些數(shù)據(jù)類型,只需要將 FP32 替換為 TF32,將 FP16 替換為 BF16—— 無需更改代碼!


風(fēng)扇設(shè)計的問題


雖然目前 GPU 的設(shè)計充分考慮了散熱,但如果將多個 GPU 彼此相鄰堆疊,過熱情況仍可能發(fā)生。一個解決方案是使用 PCIe 擴展器在 GPU 之間創(chuàng)造空間。


圖片

圖 5:帶有 PCIe 擴展器的 4 塊 GPU。


電源設(shè)計和插槽問題


RTX 3090 和 RTX 4090 是 3 插槽 GPU,因此無法在采用英偉達默認(rèn)風(fēng)扇設(shè)計的 4x 設(shè)置中使用它。這自然有其道理,因為它以超過 350W TDP 運行,并且在多 GPU 雙插槽設(shè)置中很難冷卻。RTX 3080 僅在 320W TDP 時稍好一些,冷卻 4x RTX 3080 配置也將非常困難。


在 4x RTX 3090 或 4x RTX 4090 機箱中也很難為 4x 350W = 1400W 或 4x 450W = 1800W 系統(tǒng)供電。1600W 的電源 (PSU) 很容易買到,但只有 200W 為 CPU 和主板供電可能太緊張了。組件的最大功率只有在組件被充分利用的情況下才會使用,而在深度學(xué)習(xí)中,CPU 通常只是處于弱負(fù)載狀態(tài)。因此,1600W PSU 可能與 4x RTX 3080 配合得很好,但對于 4x RTX 3090 ,最好尋找高瓦數(shù) PSU (+1700W)。


請務(wù)必注意并非所有插座都支持 1600W 以上的 PSU,尤其是在美國。如果你買到服務(wù)器級 PSU,請注意外形尺寸 —— 確保它適合你的機箱。


你也可以在 GPU 上設(shè)置功率限制,以編程方式將 RTX 3090 的功率限制設(shè)置為 300W,而不是其標(biāo)準(zhǔn)的 350W。在 4x GPU 系統(tǒng)中,這節(jié)省了 200W,這可能足以構(gòu)建具有 1600W PSU 的 4x RTX 3090 系統(tǒng)。它還有助于使 GPU 保持低溫。因此,設(shè)置功率限制可以同時解決 4x RTX 3080 或 4x RTX 3090 設(shè)置、冷卻和功率的兩個主要問題。對于 4x 配置,仍然需要有效的大風(fēng)扇 GPU(標(biāo)準(zhǔn)設(shè)計可能足以滿足此要求),但這至少解決了供電問題。



圖片

圖 6:降低功率限制具有輕微的冷卻效果。


你肯定會問,「這不會降低 GPU 的速度嗎?」是的,但問題在于降低了多少。我在不同的功率限制下對圖 5 所示的 4x RTX 2080 Ti 系統(tǒng)進行了基準(zhǔn)測試。在推理期間對 BERT Large 的 500 個小 batch 的時間進行了基準(zhǔn)測試(不包括 softmax 層)。我選擇 BERT Large inference,因為根據(jù)我的經(jīng)驗,這是對 GPU 壓力最大的深度學(xué)習(xí)模型。因此,我預(yù)計功率限制對該模型的影響最大。因此,此處報告的減速可能接近你可以預(yù)期的最大減速。結(jié)果如下圖所示:



圖片

圖 7:在 RTX 2080 Ti 上給定功率限制下測得的減速。所采取的測量是推理期間 500 個 BERT Large mini-batches 的平均處理時間(不包括 softmax 層)。


可見,設(shè)置功率限制不會嚴(yán)重影響性能。將功率限制為降 50W 足以帶動 4x RTX 3090,性能僅降低 7%。


H100 和 RTX 40 中的 8 位浮點數(shù)支持


支持 8 位浮點數(shù) (FP8) 是 RTX 40 系列和 H100 GPU 的巨大優(yōu)勢。使用 8 位輸入,它可以讓你以兩倍的速度加載矩陣乘法的數(shù)據(jù),在緩存中存儲兩倍的矩陣元素,現(xiàn)在使用 FP8 張量核心,你可以用一塊 RTX 4090 獲得 0.66  PFLOPS 的算力,這比 2007 年世界上最快的超級計算機的 FLOPS 還要多。


使用 8 位精度的主要問題是:transformer 在訓(xùn)練過程中使用如此少的位會變得非常不穩(wěn)定和易崩潰,或者在推理過程中產(chǎn)生無意義的結(jié)果。


圖片


但 RTX 30 / A100 / Ampere 一代 GPU 已經(jīng)支持 Int8,為什么 RTX 40 中的 FP8 又是一次大升級?FP8 數(shù)據(jù)類型比 Int8 數(shù)據(jù)類型穩(wěn)定得多,并且很容易在層范數(shù)或非線性函數(shù)等函數(shù)中使用它,而這些函數(shù)很難用整數(shù)(Integer)數(shù)據(jù)類型來實現(xiàn)。這將使在訓(xùn)練和推理中使用它變得非常簡單,我認(rèn)為 FP8 訓(xùn)練和推理會在幾個月內(nèi)變得逐漸流行起來。


圖片


針對不同數(shù)據(jù)類型的 Pythia 大語言模型的 4-bit 推理擴展比例。可以看到與 Int4 數(shù)據(jù)類型相比,逐位的 4 位浮點數(shù)據(jù)類型具有更好的 zeroshot 精度。


GPU 純性能排名


下圖是所有 GPU 的原始相關(guān)性能圖表。我們看到 H100 GPU 的 8 位性能與針對 16 位性能優(yōu)化的舊卡相比存在巨大優(yōu)勢。


圖片


這里展示的是 GPU 的原始相對性能。例如,對于 8 位推理,RTX 4090 的性能大約是 H100 SMX 的 0.33 倍。換句話說,與 RTX 4090 相比,H100 SMX 的 8 位推理速度****倍。


對于此數(shù)據(jù),我沒有為舊 GPU 建模 8 位計算速度,這樣做的原因是 8 位推理和訓(xùn)練在 Ada/Hopper GPU 上更有效,因為張量內(nèi)存加速器 (TMA) 節(jié)省了大量寄存器,這些寄存器在 8 位矩陣乘法中非常精確。Ada/Hopper 也有 FP8 支持,這使得特別是 8 位訓(xùn)練更加有效。我沒有為 8 位訓(xùn)練建模數(shù)字,因為這需要知道 Hopper/Ada GPU 上 L1 和 L2 緩存的延遲,它們是未知的,我無法訪問此類 GPU。


在 Hopper/Ada 上,8 位訓(xùn)練性能很可能是 16 位訓(xùn)練性能的 3-4 倍,如果緩存像傳聞的那樣快的話。對于舊 GPU,它們的 Int8 推理性能接近 16 位推理性能。


深度學(xué)習(xí) GPU 性價比


下面是按 8 位推理性能排序的所有 GPU 性價比圖表。選擇適合的 GPU 時需要:


1. 確定你需要的 GPU 內(nèi)存(例如至少 12 GB 用于圖像生成,至少 24 GB 用于處理 transformer)2. 雖然 8 位推理和訓(xùn)練是實驗性的,但將在 6 個月內(nèi)成為標(biāo)準(zhǔn)。在此期間,你可能需要做一些額外的困難編碼才能使用 8 位。對于你來說這是可接受的嗎?如果不是,請只看 16 位性能。3. 使用 (2) 中確定的指標(biāo),找到具有所需內(nèi)存量的相對性能 / 美元最高的 GPU。


可以看到,RTX 4070 Ti 對于 8 位和 16 位推理的成本效益最高,而 RTX 3080 對于 16 位訓(xùn)練的成本效益仍然最高。雖然這些 GPU 性價比看來挺高,但不一定推薦使用它們,因為它們沒有足夠的內(nèi)存用于許多用例,但它可能是你開始深度學(xué)習(xí)之旅的理想 GPU。其中一些 GPU 非常適合 Kaggle 競賽。在數(shù)據(jù)競賽中,人們通??梢砸蕾囕^小的模型,想要取得好成績,工作方法比模型大小更重要。


用于學(xué)術(shù)和啟動服務(wù)器的最佳 GPU 似乎是 A6000 Ada GPU(注意不要與 A6000 Turing 混淆)。H100 SXM 的性價比也很高,內(nèi)存大,性能非常強。如果我要為公司 / 學(xué)術(shù)實驗室構(gòu)建一個小型集群,我會使用 66-80% 的 A6000 GPU 和 20-33% 的 H100 SXM GPU。如果我在買 L40 GPU 時能獲得折扣價,我也會選擇它們而不是 A6000,因此請關(guān)注這些 GPU 的報價。


圖片

這里顯示的是每美元 GPU 的相對性能,按臺式計算機的成本和每塊 GPU 的亞馬遜和 eBay 平均價格歸一化。例如,與 RTX 3090 GPU 相比,配備 RTX 4070 Ti 卡的臺式計算機每美元產(chǎn)生的 8 位推理性能高出約 2 倍。


GPU 推薦


我創(chuàng)建了一個推薦流程圖。這個圖表在 80% 的情況下可以幫助到你,但也可能也不完全使用,因為有些選項太過昂貴了。如果是這樣,你可以試著看一下上面的基準(zhǔn),并選擇性價比最高的 GPU,仍然能滿足你的日常使用。


具體來說,你可以通過在 vast.ai 或 Lambda Cloud 中運行你的問題來估計所需的 GPU 內(nèi)存。如果你只是需要一個不常用的 GPU(每隔幾天用那么幾個小時),而且不需要下載和處理大型數(shù)據(jù)集就可以開始工作,那么 vast.ai 或 Lambda 云可能也很好用。但如果你會連續(xù)幾個月使用 GPU,并且每天都有很高的使用率(如每天 12 小時),云 GPU 通常不是一個好的選擇。


圖片

Ada/Hopper GPU 的推薦表。按照是 / 否問題的答案,可以找到最適合你的 GPU。使用上面的成本 / 性能圖表來進行選擇吧。


我直接等 RTX 50 系? 


為了理解跳過這一代而購買下一代 GPU 是否有意義,我們有必要談一談未來的 GPU 改進會是什么樣子。


過去,通過縮小晶體管的尺寸可以提高處理器的速度,而這種狀態(tài)即將終結(jié)。例如,雖然縮小 SRAM 曾經(jīng)可以提高其速度,但目前對 SRAM 的改進并沒有再提高其性能,甚至可能是「負(fù)面改進」。雖然張量核心等邏輯變得更小,但這并不一定能使 GPU 更快,因為矩陣乘法的主要問題是將內(nèi)存送到張量核心,這是由 SRAM 和 GPU RAM 的速度和大小決定的。


如果我們將內(nèi)存模塊堆疊成高帶寬模塊(HBM3+),GPU RAM 的速度仍然會提高,但對于消費者應(yīng)用來說,這些模塊的制造成本太高。提高 GPU 原始速度的主要方法是使用更多的功率和更多的冷卻,正如我們在 RTX 30 和 40 系列中看到的那樣。但這種情況不能再持續(xù)下去了。


諸如 AMD CPU 所使用的芯片是另一種改進方式。AMD 通過開發(fā) CPU 芯粒擊敗了英特爾。芯粒是指用高速片上網(wǎng)絡(luò)融合在一起的小芯片,你可以把它們看作是兩個物理層面非常接近的 GPU,也可以看作是一個單一的大 GPU。它們的制造成本較低,但要組合成一個大的芯片卻比較困難。因此,你需要專有技術(shù)和芯粒之間的快速連接。


AMD 在芯粒設(shè)計方面有很多經(jīng)驗,其下一代 GPU 將采用芯片組設(shè)計,而英偉達目前沒有公開的此類設(shè)計計劃。這可能意味著,與英偉達的 GPU 相比,下一代的 AMD GPU 在成本或性能方面可能表現(xiàn)更好。


然而,目前 GPU 的主要性能提升屬于專業(yè)邏輯。例如,張量存儲器加速器(TMA)單元節(jié)省了寶貴的寄存器,這些寄存器現(xiàn)在被釋放出來以進行更多的計算。這對 8 位計算尤為重要。


總體來說,低位精度是幾年內(nèi)的另一個直接的發(fā)展方向。在接下來的幾個月里,我們將看到 8 位推理和訓(xùn)練的廣泛采用,以及在明年看到 4 位推理的普及。目前,4 位的訓(xùn)練技術(shù)并不存在,但看起來很有希望,我預(yù)計在 1-2 年內(nèi)將訓(xùn)練出第一個具有競爭性預(yù)測性能的高性能 FP4 大型語言模型(LLM)。


目前,將訓(xùn)練精度提高到 2 位估計是不可能的,但這是一個比進一步縮小晶體管更容易的問題。因此,硬件方面的進展主要取決于軟件和算法,這些軟件和算法使我們有可能使用硬件提供的專門功能。


我們可能仍將能夠改進算法 + 硬件的組合,直到 2032 年,那之后將遇到 GPU 提升的終點(類似智能手機)。2032 年之后的性能提升浪潮將來自更好的網(wǎng)絡(luò)算法和大規(guī)模硬件。目前還不能確定消費級 GPU 是否會與此相關(guān)。或許,你需要 RTX 9090 來運行 Super HyperStableDiffusion Ultra Plus 9000 Extra 或 OpenChatGPT 5.0,但也可能有一些公司會提供高質(zhì)量的 API,比 RTX 9090 的電費更便宜,讓你希望用筆記本 + API 來生成圖像和其他任務(wù)。


最后,我認(rèn)為買 8 位精度的 GPU 將是未來九年內(nèi)一項非??煽康耐顿Y。4 位和 2 位的改進可能很小,而像排序核心這樣的其他功能只有在稀疏矩陣乘法能夠得到很好利用時才會變得相關(guān)。我們可能會在 2-3 年內(nèi)看到一些其他的進步,這些進步會在 4 年后的下一個 GPU 中出現(xiàn),但是如果我們繼續(xù)依賴矩陣乘法,我們就會耗盡精力。


參考內(nèi)容:

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


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 芯片

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉