深度學習是一個計算要求非常高的領域,你對 GPU 的選擇將從根本上決定你的深度學習體驗。但是,如果你想購買一塊新 GPU,主要看哪些特性呢?GPU 內存、內核、張量核?如何做出有成本效益的選擇?這篇文章將深入研究這些問題,消除常見的誤解,讓你對如何考慮 GPU 有一個直觀的理解,並提供建議,幫助你做出正確的選擇。
前排提醒:本文字數約為 15000,閱讀時間較長,可收藏後慢慢閱讀。
嫌長不看,先放結論
總體最好的 GPU:RTX 3080 和 RTX 3090。
(個人)避免使用的 GPU:任何 Tesla 卡;任何 Quadro 卡;任何 Founders Edition 卡;Titan RTX、Titan V、Titan XP。
頗具成本效益而價格高昂:RTX 3080。
頗具成本效益而價格較便宜:RTX 3070、RTX 2060 Super。
我錢不多:購買二手卡,RTX 2070(400)、RTX2060(400)、RTX2060(300)、GTX 1070(220)、GTX1070Ti(220)、GTX1070Ti(230)、GTX 1650 Super(190)、GTX980Ti(6GB190)、GTX980Ti(6GB150)。
我幾乎沒錢:有許多創業公司在推廣他們的云:使用免費的雲積分,並在不同公司的賬戶之間來回切換,直到能買得起一塊 GPU。
我做 Kaggle:RTX 3070。
我是一名有競爭力的計算機視覺、預訓練或機器翻譯研究人員:4x RTX 3090。務必要等到有了良好的冷卻和足夠的電力後(我將更新這篇博文)
我是一名 NLP 研究人員:如果你不從事機器翻譯、語言建模或任何類型的預訓練工作,那麼 RTX 3080 就足夠了而且頗具成本效益。
我剛開始接觸深入學習,而且我很認真:從一塊 RTX 3070 開始。如果你在 6 到 9 個月後仍然很認真,賣掉你的 RTX 3070,併購買 4x RTX 3080。根據你下一步選擇的領域(初創公司、Kaggle、研究、深度學習應用),賣掉你的 GPU,三年後再買更合適的(下一代 RTX 40s GPU)。
我想嘗試深度學習,但沒當真:RTX 2060 Super 就很好,但可能需要使用新電源。如果你的主板有一個 PCIe x16 插槽,並且有一個大約 300W 的電源,那麼 GTX 1050 Ti 是一個很好的選擇,因為它不需要任何其他計算機組件就可以在你的台式計算機上工作了。
用於模型並行化的、少於 128 個 GPU 的 GPU 集群:如果你可以為你的集群購買 RTX GPU:66% 的 8x RTX 3080 和 33% 的 8x RTX 3090(要確保能有效地冷卻)。如果解決不了 RTX 3090 的冷卻問題,那麼可以購買 33% 的 RTX 6000 GPU 或 8x Tesla A100。如果不能購買 RTX GPU,那麼我可能會選擇 8x A100 Supermicro 節點或 8x RTX 6000 節點。
用於模型並行化的、128 個 GPU 的 GPU 集群:考慮下 8x Tesla A100 設置。如果你使用超過 512 個 GPU,那麼你應該考慮配置一個 DGX A100 SuperPOD 系統,以匹配你的規模。
正文開始
這篇博文旨在讓你對 GPU 和 NVIDIA 的 Ampere 系列 GPU 有不同層次的了解。
(1)如果你對 GPU 如何工作、什麼讓 GPU 速度更快、NVIDIA RTX 30 Ampere 系列 GPU 有什麼獨特之處等問題的細節不感興趣,那麼你可以跳到性能及每美元性能圖表和建議部分。這些是這篇文章的核心和最有價值的內容。
(2)如果你關心具體的問題,我在這篇博文最後一部分回答了最常見的問題,以消除一些誤解。
(3)如果你想深入了解 GPU 和張量核是如何工作的,最好是從頭到尾閱讀這篇文章。根據你對相關主題的了解,你可以跳過一兩個小節。
我會在每個主要部分的開頭加上一小段總結,希望可以幫助你決定是否要閱讀這個部分。
概 述
這篇文章的結構如下。
首先,我將解釋是什麼使 GPU 速度更快。我將討論 CPU 與 GPU、張量核、內存帶寬、GPU 存儲層次以及它們與深度學習性能的關係。對於 GPU 可以提供什麼,這些解釋可能會幫助你得到一個更直觀的認識。
然後,我將對 GPU 的性能進行理論估計,並將其與 NVIDIA 的一些市場基準進行比較,以獲得可靠的、無偏差的性能數據。我將討論新的 NVIDIA RTX 30 Ampere 系列 GPU 的獨特特性,如果你購買 GPU,這些特性是值得考慮的。
在此基礎上,我提出了 1-2、4、8 GPU 設置和 GPU 集群的 GPU 建議。之後是問答部分,我回答了 Twitter 上常見的問題;在這一節中,我還將討論一些常見的誤解和其他一些五花八門的問題,比如雲與桌面對比、冷卻方式、AMD 與 NVIDIA 對比等。
GPU 如何工作?
如果你經常使用 GPU,那麼了解它們如何工作是很有用的。這些知識有助於你理解為什麼 GPU 在某些情況下速度慢而在其他情況下速度快。然後,你可以更好地理解為什麼你首先需要一個 GPU,以及其他未來的硬件選項可能會如何競爭。如果你只是想要有用的性能數值和參數,以幫助你決定購買哪個 GPU,那麼你可以跳過這一節。對於 GPU 如何工作的問題,最好的高階解釋是我在 Quora 上的回答:
「為什麼 GPU 適合深度學習」: https://timdettmers.com/Why-are-GPUs-well-suited-to-deep-learning?top_ans=21379913
這是一個高階解釋,很好地說明了為什麼 GPU 比 CPU 更適合深度學習。如果我們關注細節,就能理解是什麼讓一個 GPU 比另一個更好。
與處理速度相關的最重要的 GPU 參數
本節可以幫助你更直觀地理解如何考慮深度學習的性能。這種理解可以幫助你評估未來的 GPU。
張量核
要點:
- 張量核將乘法和加法運算所需的 cycle 減少為 1/16——在我舉的例子中,對於一個 32×32 的矩陣,從 128 個 cycle 減少到 8 個 cycle。
- 張量核減少了反覆共享內存訪問的次數,從而節省了額外的內存訪問 cycle。
- 張量核速度如此之快,計算不再是瓶頸。唯一的瓶頸是如何將數據傳輸到張量核中。
現在 GPU 已經足夠便宜,幾乎每個人都能負擔得起一個有張量核的 GPU。這就是為什麼我只推薦具有張量核的 GPU。了解它們是如何工作的,有助於理解這些專門用於矩陣乘法的計算單元的重要性。這裡我將向你展示一個簡單的例子:A*B=C 矩陣乘法,其中,所有矩陣的大小都是 32×32,我們將分別看下,計算模式在有和沒有張量核時是什麼樣的。
要完全理解這一點,就必須理解 cycle 的概念。如果一個處理器以 1GHz 的速度運行,它每秒可以完成 10^9 個 cycle。每個 cycle 都代表一次計算機會。然而,大多數時候,操作所花費的時間會超過一個 cycle。因此,它創建了一個管道,用於啟動一個操作,它需要等待前一個操作完成所需的 cycle 數。這也稱為操作延遲。
下面是一些重要操作的延遲:
- 全局內存訪問(最高 48GB):~200 cycle
- 共享內存訪問(每個串流多處理器最高達 164KB):~20 cycle
- 融合乘加(FFMA):4 cycle
- 張量核矩陣乘法:1 cycle
此外,你應該知道 GPU 上的最小線程單元是一個包含 32 個線程的包——這被稱為 warp。通常,warp 以同步模式運行——warp 內的線程必須彼此等待。GPU 上的所有內存操作都針對 warp 進行了優化。例如,從全局內存中加載的粒度為 32*4 位元組,恰好有 32 個浮點數,恰好每個線程一個浮點數。在串流多處理器(SM,相當於一個 CPU 內核)中,我們最多可以有 32 個 warp=1024 個線程。SM 的資源被分配給所有活動的 warp。所以,有時我們想要運行較少的 warp,這樣每個 warp 就有更多的寄存器 / 共享內存 / 張量核資源。
對於下面的兩個例子,我們假設計算資源相同。對於這個 32×32 矩陣乘法的小例子,我們使用 8 個 SM(約為 RTX 3090 的 10%),每個 SM 8 個 warp。
矩陣乘法(無張量核)
如果我們想做一個 A*B=C 的矩陣乘法,其中每個矩陣的大小是 32×32,那麼我們會希望將反覆訪問的內存加載到共享內存中,因為它的延遲大約是前者的 1/10(200cycle vs 20 cycle)。通常,共享內存中的內存塊被稱為 memory tile 或只是 tile。使用 2*32 warp,可以並行地將兩個 32 *32 浮點數矩陣加載到共享內存塊中。我們有 8 個 SM,每個 SM 有 8 個 warp,因此,得益於並行化,我們只需要執行一次從全局內存到共享內存的順序加載,這需要 200 個 cycle。
為了進行矩陣乘法,我們現在需要從共享內存 A 和共享內存 B 加載一個包含 32 個數值的向量,並執行一個融合乘加(FFMA)。然後將輸出存儲在寄存器 C 中。我們將工作劃分為這樣一種方式,即每個 SM 做 8x 點積(32×32)來計算 C 的 8 個輸出。為什麼這恰好是 8(在舊算法中是 4)有很強的技術性。這一點,我建議你閱讀 Scott Gray 關於矩陣乘法的博文來理解。這意味着,我們有 8 次共享內存訪問,每次 20 個 cycle,8 次 FFMA 操作,每次 4 個 cycle。因此,總開銷是:
200 cycle(全局內存)+ 8*20 cycle(共享內存)+ 8*4 cycle(FFMA)= 392 cycle
下面讓我們看下使用張量核時需要多少開銷。
矩陣乘法(有張量核)
利用張量核,我們可以在一個 cycle 內執行 4×4 矩陣乘法。要做到這一點,我們首先需要把內存讀到張量核中。與上面類似,我們需要從全局內存(200 cycle)讀取數據並存儲在共享內存中。要做一個 32×32 矩陣乘法,我們需要執行 8×8=64 次張量核運算。一個 SM 有 8 個張量核,因此,我們總共有 64 個張量核——這正是我們需要的數量!我們可以通過 1 次內存傳輸(20 cycle)將數據從共享內存傳輸到張量核,然後進行 64 次並行張量核操作(1 cycle)。這意味着,在這種情況下,張量核矩陣乘法的總開銷為:
200 cycle(全局內存)+ 20 cycle(共享內存)+ 1 cycle(Tensor Core)= 221 cycle
因此,我們通過張量核將矩陣乘法的開銷從 392 個 cycle 大幅降低到 221 個 cycle。在這種情況下,張量核降低了共享內存訪問和 FFMA 操作的成本。
在這個例子中,有和沒有張量核都大致遵循相同的計算步驟,請注意,這是一個非常簡化的例子。在實際情況下,矩陣乘法涉及到更大的共享內存塊,計算模式也稍微不同。
不過我相信,通過這個例子,我就很清楚為什麼內存帶寬對於配備張量核的 GPU 來說如此重要。在使用張量核進行矩陣乘法時,全局內存是 cycle 開銷中最重要的部分,如果可以降低全局內存延遲,我們甚至可以擁有速度更快的 GPU。要做到這一點,我們可以通過增加內存的時鐘頻率(增加每秒 cycle 數,但也會增加發熱和電量消耗)或增加每次可以轉移的元素數量(總線寬度)。
內存帶寬
從上一節我們已經看到,張量核非常快。事實上,它們大部分時間都是空閑的,因為需要等待數據從全局內存讀到共享內存。例如,在 BERT 大型訓練中,它使用非常大的矩陣——對於張量核來說,越大越好——我們的 Tensor Core TFLOPS 利用率大約為 30%,也就是說,70% 的時間張量核都是空閑的。
這意味着,當比較兩個具有張量核的 GPU 時,GPU 性能的最佳指標之一就是它們的內存帶寬。例如,A100 GPU 的內存帶寬為 1555 GB/s,而 V100 的是 900 GB/s。因此,基本可以估計 A100 的速度是 V100 的 1555/900 = 1.73 倍。
共享內存 / L1 緩存大小 / 寄存器
由於內存傳輸到張量核是性能的限制因素,所以我們正在尋找其他可以提升內存到張量核傳輸速度的 GPU 屬性。這和共享內存、L1 緩存以及使用的寄存器數量有關。理解存儲層次結構如何帶來更快的內存傳輸,有助於理解矩陣乘法在 GPU 上如何執行。
為了執行矩陣乘法,我們利用了 GPU 的存儲層次結構,從慢的全局內存到快的本地共享內存,再到快如閃電的寄存器。然而,越快的存儲越小。因此,我們需要將矩陣分割成更小的矩陣,並在本地共享內存中通過這些更小的塊執行矩陣乘法,它們速度快,並且接近於串流多處理器(SM)——相當於 CPU 內核。對於張量核,我們更進一步:我們取每個塊並將其中的一部分裝入張量核中。共享內存中的矩陣 memory tile 比 GPU 全局內存快大約 10-50 倍,而張量核的寄存器比 GPU 全局內存快 200 倍。
擁有更大的 tile 意味着我們可以重用更多的內存。我在博文 TPU vs GPU 中詳細探討了這個問題。實際上,你可以將 TPU 看作是每個張量核都有非常非常大的 tile。因此,TPU 在每次從全局內存傳輸數據時都可以重用更多的內存,這使得它們在矩陣乘法計算方面比 GPU 更有效率。
每個塊的大小是由每個串流多處理器(SM,相當於 GPU 上的一個「CPU 內核」)的內存大小決定的。在以下架構中,我們有以下共享內存大小:
- Volta:96kb 共享內存 / 32 kb L1
- Turing:64kb 共享內存 / 32 kb L1
- Ampere:164kb 共享內存 / 32 kb L1
我們看到,Ampere 的共享內存更大,塊大小就更大,這減少了全局內存訪問延遲。因此,Ampere 可以更好地利用 GPU 存儲的總體內存帶寬。這將提高大約 2-5% 的性能。對於大型矩陣,性能的提升尤其明顯。
Ampere 張量核的另一個優點是它們在線程之間共享更多的數據。這減少了寄存器的使用。寄存器被限制為每個串流多處理器(SM)64k 或每個線程 255。比較 Volta 和 Ampere 張量核,Ampere 張量核使用 1/3 的寄存器,允許更多張量核在共享內存的每個塊上活動。換句話說,我們可以用相同數量的寄存器支撐 3 倍的張量核。然而,由於帶寬仍然是瓶頸,所以實際的 TFLOPS 與理論的 TFLOPS 相比,只會有微小的提高。新的張量核提高了大約 1-3% 的性能。
總的來說,我們可以看到,Ampere 的架構經過優化,它使用改進後的存儲層次結構(從全局內存到共享內存塊,再到張量核寄存器),使可用內存帶寬更加有效。
評估 Ampere 的深度學習性能
要點:
- 根據內存帶寬和 Ampere GPU 改進的存儲層次估計,理論上,其速度提升 1.78 倍到 1.87 倍。
- NVIDIA 提供了 TeslaA100 和 V100 GPU 的準確基準測試數據。這些出於營銷目的數據存在偏差,但是可以建立這些數據的去偏模型。
- 去偏基準測試數據顯示,Tesla A100 在 NLP 方面比 V100 快 1.70 倍,在計算機視覺方面比 V100 快 1.45 倍。
如果你想了解我如何評估 Ampere GPU 性能的更多技術細節,那麼本節就是為你準備的。如果你不關心這些技術方面,則可以跳過此部分。
Ampere 速度的理論估計
綜上所述,我們認為,兩種配備張量核的 GPU 架構之間的差異主要在於內存帶寬。使用張量核的其他好處包括更多的共享內存 /L1 緩存和更好的寄存器。
如果我們將 TeslaA100GPU 帶寬與 TeslaV100 GPU 帶寬相比較,我們得到的速度提升為 1555/900 = 1.73 倍。此外,我希望從更大的共享內存中得到 2-5% 的加速,從改進的張量核中得到 1-3% 的加速。這使得速度提升在 1.78 倍和 1.87 倍之間。用類似的推理方法,你就可以估計 Ampere 系列其他 GPU 與 TeslaV100 相比的速度提升。
Ampere 速度的實際估計
假設我們有針對一種 GPU 架構的估計,如 Ampere、Turing 或 Volta,我們就可以很容易地將這些結果推到相同架構 / 系列的其他 GPU 上。幸運的是,NVIDIA 已經在廣泛的計算機視覺和自然語言理解任務中對 A100 和 V100 進行了基準測試。遺憾的是,NVIDIA 使用了不同的批次大小和 GPU 數量,使得這些數值無法直接進行比較,從而得出有利於 A100 的結果。所以,在某種意義上,這些基準數據部分是真實的,部分是市場數據。一般來說,你可能會認為,更大的批次大小才公平,因為 A100 有更多的內存,但是為了比較 GPU 架構,我們應該評估批次大小相同時的無偏內存性能。
為了得到無偏估計,我們可以通過兩種方式對 V100 和 A100 結果進行縮放:
(1)考慮批次大小差異,(2)考慮使用 1 個 GPU 和 8 個 GPU 的差異。幸運的是,我們能在 NVIDIA 提供的數據中找到對這兩種偏差的估計。
批次大小增加一倍使吞吐量增加 13.6%(CNN,以每秒圖像數為單位)。我在 RTX Titan 上針對同樣的問題測試了 Transformer,驚奇地發現了同樣的結果:13.5%——這似乎是一個可靠的估計。
當我們將網絡在更多的 GPU 上並行化時,由於一些網絡開銷,我們會損失性能。與 V100 8x GPU 系統(NVLink 2.0)相比,A100 8x GPU 系統有更好的網絡(NVLink 3.0)——這是另一個令人困惑的因素。直接查看 NVIDIA 的數據,我們可以發現,對於 CNN 來說,8x A100 系統比 8x V100 系統開銷低 5%。這意味着,從 1x A100 到 8xA100 可以獲得 7 倍的速度提升,而從 1x V100 到 8xA100 可以獲得 6.67 倍。對於 Transformer 來說,這個數值是 7%。
使用這些數據,我們可以從 NVIDIA 提供的直接數據中估算其對於一些特定深度學習架構的速度提升。與 Tesla V100 相比,Tesla A100 可以提供以下速度提升:
- SE-ResNeXt101:1.43 倍
- Masked-R-CNN:1.47 倍
- Transformer(12 層, 機器翻譯, WMT14 en-de):1.70 倍
因此,對於計算機視覺來說,這些數值比理論估計要低一些。這可能是由於張量維數較小,準備矩陣乘法(如 img2col 或快速傅里葉變換(FFT))所需的操作開銷,或者操作無法充分利用 GPU(最後的層通常相對較小)。它也可以是特定架構的工件(分組卷積)。
Transformer 實際估計值與理論估計值非常接近。這可能是因為大型矩陣的算法非常簡單。我將使用這些實際的估計來計算 GPU 的成本效率。
估計中可能存在的偏差
上面是對 A100 和 V100 的對比估計。過去,NVIDIA「遊戲」GPU RTX 出現了性能偷偷下降的問題:(1)降低張量核利用率,(2)風扇散熱,(3)禁用對等 GPU 傳輸。與 Ampere A100 相比,RT 30 系列可能有未公布的性能下降。有了消息,我會更新這篇博文。
Ampere / RTX 30 系列的其他考慮因素
要點:
- Ampere 可以用於稀疏網絡訓練,它最高可以將訓練速度提高 2 倍。
- 稀疏網絡訓練仍然很少使用,但將使 Ampere 可以經受住未來的考驗。
- Ampere 有新的低精度數據類型,這使得使用低精度數值更容易,但不一定比以前的 GPU 更快。
- 新的風扇設計非常棒,如果你的 GPU 之間有間隙的話,但不清楚如果多個 GPU 之間沒有間隙,它們是否能有效冷卻。
- RTX3090 的 3 插槽設計使得 4x GPU 構建成為問題。可能的解決方案是 2 插槽轉換或使用 PCIe 擴展器。
- 4x RTX 3090 需要的電量比目前市場上任何標準電源單元所能提供的電量都多。
與 NVIDIA Turing RTX 20 系列相比,新的 NVIDIA Ampere RTX30 系列具有額外的優點,如稀疏網絡訓練和推理。其他特性,比如新的數據類型,更多的是易用性特性,因為它們提供了和 Turing 一樣的性能提升,但是不需要任何額外的編程。
稀疏網絡訓練
Ampere 可以以稠密矩陣的速度進行細粒度結構自動稀疏矩陣乘法。它的工作原理是,如果有一個矩陣,你把它分割成 4 個元素,現在,稀疏矩陣張量核特性允許這 4 個元素中的 2 個為零。這就帶來了 2 倍的速度提升,因為矩陣乘法的帶寬需求減半了。
我以前研究過稀疏網絡訓練。對於我的工作,有一種批評是「你減少了網絡所需的FLOPS,但卻沒能帶來速度的提升,因為GPU 不能做快速稀疏矩陣乘法。」那好吧,加上張量核的稀疏矩陣乘法特性,我的算法,或者其他的稀疏訓練算法,現在在實際的訓練中提供了2 倍的速度提升。
雖然這個特性還在實驗階段,訓練稀疏網絡還不是很普遍,但GPU 擁有這個特性意味着你已經為未來的稀疏訓練做好了準備。
低精度計算
在我之前的工作中,我已經展示過,新數據類型可以提高低精度反向傳播的穩定性。目前,如果你想要實現16 位浮點數(FP16)的穩定反向傳播,主要問題是普通FP16 數據類型只支持[-65504,65504] 區間內的數值。如果梯度超出這個範圍,就會變成NaN 值。為了防止在FP16 訓練期間發生這種情況,我們通常會進行損失縮放,即在反向傳播之前將損失乘以一個小數值,以防止這種梯度爆炸。
Brain Float 16 格式(BF16)使用更多的位作為指數,這樣,其可能的數值範圍與 FP32 相同:[-3*10^38,3*10^38]。BF16 的精度較低,但梯度精度對學習來說並不是那麼重要。所以 BF16 所做的就是你不再需要做任何損失縮放或者擔心梯度迅速膨脹。因此,我們可以看到使用 BF16 格式時訓練穩定性的提高,只是精度稍有降低。
這意味着:使用 BF16 精度,訓練可能比 FP16 精度更穩定,而提供了同等的速度提升。使用 TF32 精度,可以得到接近 FP32 的穩定性,接近 FP16 的速度提升。好的方面是,要使用這些數據類型,只需將 FP32 替換為 TF32,將 FP16 替換為 BF16——不需要修改代碼!
不過,總的來說,這些新數據類型可以被視為懶惰數據類型,因為通過一些額外的編程工作(適當的損失縮放、初始化、歸一化、使用 Apex),使用舊數據類型就可以獲得所有這些好處。因此,這些數據類型並不提供速度提升,而是提高了低精度訓練的易用性。
新的風扇設計 / 散熱問題
RTX 30 系列新的風扇設計包括一個鼓風扇和一個推挽式風扇。設計很巧妙,如果你的 GPU 之間有間隙,也會非常有效。然而,如果你把 GPU 堆在一起,就不清楚它們表現如何了。鼓風扇將能夠通過遠離其他圖形處理器的支架排氣,但也沒法說那多有效,因為鼓風扇的設計和以前不同。在一個 4 PCIe 插槽設置中,如果你想購買 1 到 2 個 GPU,那應該沒問題。然而,如果你打算同時使用 3 到 4 個 RTX 30 GPU,那麼我需要等散熱性能報告出來,了解下是否需要不同的 GPU 冷卻器、PCIe 擴展器或其他解決方案。到時候我會更新這篇博文。
為了克服散熱問題,水冷在任何情況下都可以提供一個解決方案。許多廠商為 RTX 3080/RTX 3090 卡提供水冷模塊,即使在 4x GPU 設置中也能保持低溫。如果你想運行一個 4x GPU 設置,可以留心下一體化水冷卻解決方案,因為在大多數桌面情況下散熱器都很難分散開。
冷卻問題的另一個解決方案是購買 PCIe 擴展器,並將 GPU 在機箱內分散開。這非常有效,華盛頓大學的其他博士生和我使用這個設置都非常成功。那看起來不漂亮,但它可以使你的 GPU 保持涼爽!即使你沒有足夠的空間來將 GPU 分散開,它還是可以幫到你。例如,如果你可以在一個台式電腦的機箱中找到空間,那麼你或許就可以購買標準的 3 槽寬 RTX 3090,並在機箱中使用 PCIe 擴展器來把它們分散開。這樣,你就可以通過一個簡單的解決方案解決了 4x RTX 3090 設置中的空間問題和冷卻問題。
3 插槽設計和電量問題
RTX 3090 是一個 3 插槽 GPU,所以你不能在 4x 設置中使用 NVIDIA 的默認風扇設計。這是合理的,因為它運行在 350W TDP 下,在多 GPU 2 插槽設置中很難降溫。RTX 3080 運行在 320W TDP 下只稍好一點,而冷卻一個 4x RTX 3080 設置也會非常困難。
在 4x RTX 3090 設置下為一個 4x350w = 1400W 系統供電也很困難。1600W 的供電單元(PSU)很容易獲得,但只有 200W 是給 CPU 供電,主板用電可能太緊。只有在元件獲得充分利用的情況下,才會達到最大電量,而在深度學習中,CPU 通常只處於弱負載狀態。這樣,一個 1600W 的 PSU 就可以很好地為一個 4x RTX 3080 構建供電,但是對於一個 4x RTX 3090 構建,最好是找一個高瓦數的 PSU(+1700W)。目前,在台式電腦市場上似乎沒有一個 PSU 超過 1600W。服務器或加密貨幣挖礦 PSU 可能可以解決這個問題,但可能外形奇怪。
GPU 深度學習性能
下面的基準測試不僅包括 Tesla A100 和 Tesla V100 的基準測試,我還構建了一個適合這些數據的模型,以及基於 Titan V、Titan RTX、RTX 2080 Ti 和 RTX 2080 的四個不同的基準測試。[ 1 , 2 , 3 , 4 ]
除此之外,我還通過在基準數據的這些數據點之間進行插值擴展了 RTX 2070、RTX 2060 卡或是 Quadro RTX 6000&8000 卡。通常,在同一個架構中,GPU 的擴展與串流多處理器和帶寬成線性關係,而我的架構模型就是以此為基礎。
我只收集了混合精度 FP16 訓練的基準數據,因為我相信,沒有充分的理由使用 FP32 訓練。
與 RTX 2080 Ti 相比,RTX 3090 將卷積網絡的速度提高了 1.57 倍,將 Transformer 的速度提高了 1.5 倍,與此同時,定價也漲了 15%。因此,與 Turing RTX 20 系列相比,Ampere RTX 30 提供了一個非常實質性的改進。
GPU 深度學習的每美元性能
什麼 GPU 能給你帶來最好的回報?這取決於整個系統的成本。如果你有一個成本高昂的系統,那麼投資更昂貴的 GPU 是有意義的。
這裡有三個 PCIe 3.0 構建,我用它作為 2/4 GPU 系統的基礎成本,然後再加上 GPU 成本。GPU 成本是 GPU 在亞馬遜和 eBay 上成本的均值。對於新的 Ampere GPU,我使用了定價。結合上文給出的性能值,就可以得出這些 GPU 系統的每美元性能值。對於 8 GPU 系統,我使用 Supermicro barebone 作為基準成本——這是 RTX 服務器的行業標準。請注意,這些柱狀圖沒有考慮內存需求。你應該首先考慮自己的內存需求,然後在圖表中尋找最佳選項。關於內存,這裡有一份大致的指南:
- 使用預訓練的 Transformer;從頭開始訓練小型 Transformer:>= 11GB
- 在研發 / 生產環境中訓練大型 Transformer 或卷積網絡:>= 24 GB
- 開發神經網絡原型(Transformer 或卷積網絡):>= 10 GB
- Kaggle 競賽:>= 8 GB
- 計算機視覺應用:>= 10GB
GPU 推薦
我需要再次強調的第一件事是:在選擇 GPU 的時候,你需要確保它有足夠的內存來完成你想做的事情。選擇 GPU 應該按下面的步驟來:
- 我想用 GPU 做什麼:Kaggle 競賽、學習深度學習、破解小項目(GAN 還是大型語言模型?)、計算機視覺 / 自然語言處理 / 其他領域研究,或者其他什麼?
- 我要做的事需要多大內存?
- 使用上面的成本 / 性能圖找出滿足內存標準的、最適合你的 GPU。
- 對於我選擇的 GPU 有其他的注意事項嗎?例如,如果是 RTX 3090,我能把它裝進我的電腦嗎?對於我選的 GPU,我的電源單元(PSU)功率是否足夠?散熱會是問題嗎?或者我能以某種方式有效地冷卻 GPU 嗎?
其中一些細節需要你自我反省你想要什麼,也許可以研究一下,對於你的興趣領域,其他人使用多大內存的 GPU。我可以提供一些指導,但無法面面俱到。
我什麼時候需要 >= 11 GB 的內存?
我之前提到過,如果你使用 Transformer,那麼你至少應該有 11GB 的內存,如果你研究 Transformer,則內存 >= 24GB 更好。這是因為之前大多數經過預訓練的模型都有相當高的內存要求,而且這些模型至少是使用擁有 11 GB 內存的 RTX 2080 Ti GPU 進行訓練。因此,小於 11GB 可能會遇到難以或不可能運行某些模型的情況。
其他需要大量內存的領域包括醫學成像、一些最先進的計算機視覺模型以及任何有超大圖像的東西(GAN,樣式轉換)。
一般來說,如果你想建立一個模型並據此獲得競爭優勢,無論是研究、行業還是 Kaggle 競賽,額外的內存可能會為你帶來優勢。
什麼時候內存可以 <11 GB ?
RTX 3070 和 RTX3080 是非常強大的卡,但它們內存有點小。不過,對於許多任務,你不需要那麼大的內存。
如果你想學習深度學習,那麼 RTX 3070 就很完美。這是因為訓練大多數架構的基本技能都可以通過將它們縮小一點或者使用小一點的輸入圖像來學習。如果我再次學習深度學習,我可能會使用一個 RTX 3070,如果有多餘的錢,甚至會用多個。
RTX 3080 是目前為止最具成本效益的卡,因此是原型設計的理想選擇。對於原型設計,你想要內存最大的,這仍然很便宜。這裡所說的原型設計可以是在任何領域的原型設計:研究、Kaggle 競賽、為創業公司出主意 / 設計模型、試驗研究代碼。對於所有這些應用程序,RTX 3080 都是最好的 GPU。
假設我將領導一個研究實驗室 / 創業公司。我將把 66-80% 的預算投入到 RTX 3080 機器上,20-33% 用於配備了強大水冷裝置的 RTX 3090 機器。我的想法是,RTX 3080 的成本效益更高,可以作為原型機,通過 slurm 集群設置來共享。因為原型設計應該以敏捷的方式完成,所以應該使用較小的模型和數據集。RTX 3080 非常適合這個場景。一旦學生 / 同事獲得了一個很好的原型模型,他們就可以將原型轉移到 RTX 3090 機器上,並將其擴展為更大的模型。
一般建議
總的來說,RTX 30 系列非常強大,我強烈推薦這些 GPU。如前一節所述,要注意內存,還要注意電源和冷卻需求。如果你的 GPU 之間有一個 PCIe 插槽,則冷卻將沒有任何問題。否則,如果使用 RTX 30 卡,請準備好水冷裝置、PCIe 擴展器或有效的鼓風扇卡(未來幾周的數據將會說明,NVIDIA 的風扇設計是足夠的)。
一般來說,我會推薦 RTX 3090 給任何買得起它的人。不僅是現在,未來 3-7 年它都將是一個非常有效的卡。因此,這是一項將保持強勁增長的好投資。HBM 內存三年內不太可能變便宜,所以下一個 GPU 只會比 RTX 3090 好 25% 左右。我們可能會在 5-7 年內看到廉價的 HBM 內存,在那之後,你肯定想要升級。
如果你有多個 RTX 3090,請確保你選擇的解決方案可以提供有效的冷卻和足夠的電力。對於什麼樣的設置合適,我將隨着可用數據的增加更新關於這個問題的博文。
對於沒有強烈競爭需求的企業(研究公司、Kaggle 競賽、競爭性初創公司),我推薦 RTX 3080。這是一個更經濟的解決方案,並將確保大多數網絡的訓練都足夠快。如果你使用了合適的內存技巧,並且不介意額外進行編程,那麼現在有足夠的技巧將一個 24GB 的神經網絡適配到 10GB 的 GPU 上。因此,如果你接受一些不確定性和額外的編程,那麼 RTX 3080 也可能是比 RTX 3090 更好的選擇。
一般來說,對於學習深度學習和原型設計,RTX 3070 也是一種可靠的卡,它比 RTX 3080 便宜 200 美元。如果你負擔不起 RTX3080,那麼 RTX3070 是最好的選擇。
如果你的預算有限,而 RTX 3070 又太貴,那麼一個二手 RTX 2070 在易趣上大約要 260 美元。現在還不清楚是否會推出 RTX 3060,但如果你的預算有限,可能也值得再等一段時間。如果定價與 RTX 2060 和 GTX 1060 類似,那麼預計其價格將在 250 美元到 300 美元之間,而且性能相當強勁。
GPU 集群建議
GPU 集群設計高度依賴於用途。對於一個 +1024 GPU 系統,網絡最重要,但在這樣的系統上,如果用戶一次最多只使用 32 個 GPU,投資強大的網絡基礎設施就是浪費。在這裡,我將使用類似原型推廣的推理,如在 RTX 3080 和 RTX 3090 案例對比中所做的那樣。
一般來說,因為 CUDA 許可協議,RTX 卡被禁止進入數據中心。然而,大學通常可以得到這個規則的豁免。與英偉達的人取得聯繫請求豁免權是值得的。如果你被允許使用 RTX 卡,那麼我建議使用配備了 RTX 3080 或 RTX 3090 GPU 的標準 Supermicro 8 GPU 系統(如果可以保證有效冷卻)。一組 8x A100 節點就可以確保在原型化之後有效地「推廣」,特別是在不能保證 8x RTX 3090 服務器能夠得到充分冷卻的情況下。在這種情況下,我建議使用 A100 而不是 RTX 6000 / RTX 8000,因為 A100 非常划算,而且是面向未來的。
如果你想在一個 GPU 集群(+256 個 GPU)上訓練非常大的網絡,我推薦配備了 A100 GPU 的 NVIDIA DGX SuperPOD 系統。在 +256 GPU 的規模下,網絡變得至關重要。如果你想擴展到超過 256 個 GPU,那麼你將需要一個高度優化的系統,把標準解決方案攢在一起就不在有效了。
特別是在 +1024 GPU 的規模上,市場上唯一具有競爭力的解決方案是谷歌 TPU Pod 和 NVIDIA DGX SuperPod。在這個規模上,我更喜歡谷歌 TPU Pod,因為他們定製的網絡基礎設施似乎優於 NVIDIA DGX SuperPod 系統——儘管這兩種系統非常接近。比起 TPU 系統,GPU 系統為深度學習模型和應用提供了更多的靈活性,而 TPU 系統支持更大的模型,並提供更好的伸縮性。所以兩種系統都有各自的優點和缺點。
不要買這些 GPU
我不建議購買多個 RTX Founders Editions 或 RTX Titans,除非你有 PCIe 擴展器可以解決它們的冷卻問題。它們運行時很容易過熱,其性能將遠遠低於上文圖表中的數值。4x RTX 2080 Ti Founders Editions GPU 將很快超過 90C,此時,其內核的時鐘頻率會降低,運行速度將比適當冷卻的 RTX 2070 GPU 更慢。
我不建議購買 Tesla V100 或 A100,除非你是被迫購買的(禁止 RTX 數據中心策略的公司),或者你想在一個巨大的 GPU 集群上訓練非常大的網絡——這些 GPU 不是很划算。
如果你能買得起更好的卡,就不要購買 GTX 16 系列。這些卡沒有張量核,因此,深度學習性能相對較差。相比 GTX 16 系列,我寧可選擇二手的 RTX 2070 / RTX 2060 / RTX 2060 Super。如果你差錢,那 GTX 16 系列也算是個不錯的選擇。
什麼情況下最好不要購買新的 GPU?
如果你已經擁有 RTX 2080 Tis 或更好的 GPU,升級到 RTX 3090 可能就沒有意義。你的 GPU 已經很好了,使用新推出的高能耗 RTX 30 卡,你需要為 PSU 和冷卻問題擔憂,而性能的提升卻微不足道——不值得。
我想要從 4x RTX 2080 Ti 升級到 4x RTX 3090 的唯一原因是,我在研究非常大的 Transformer 或其他高度依賴計算的網絡訓練。但是,如果內存是問題,在升級到 RTX 3090 之前,你可以首先考慮一些內存技巧,以便在 4x RTX 2080 Tis 上適配大模型。
如果你有一個或多個 RTX 2070 GPU,升級前要三思。這些都是很好的 GPU。如果你發現自己經常受限於 8GB 的內存,那麼可以在 eBay 上轉手出售這些 GPU 並獲得 RTX 3090。這一推論也適用於許多其他 GPU:如果內存緊張,那麼升級就是對的。
問 & 答 & 誤解
要點:
- PCIe 4.0 和 PCIe 通道在 2x GPU 設置中並不重要。對於 4x GPU 設置,它們也不是特別重要。
- RTX 3090 和 RTX 3080 的冷卻會是個問題。使用水冷卡或 PCIe 擴展器。
- NVLink 沒用,只對 GPU 集群有用。
- 你可以在一台計算機中使用不同的 GPU 類型(如 GTX 1080 + RTX 2080 + RTX 3090),但你無法有效地將它們並行。
- 在兩台以上的機器上並行訓練,你需要 Infiniband +50Gbit/s 的網絡。
- AMD CPU 比 Intel CPU 便宜,而 Intel CPU 幾乎沒有任何優勢。
- 儘管做出了非常大的努力,但由於缺少社區和張量核,至少在 1-2 年內 AMD GPU+ ROCm 可能都無法與 NVIDIA 競爭。
- 如果你使用 GPU 的時間不到一年,那麼雲 GPU 是有幫助的。除此之外,台式機是更便宜的解決方案。
我需要 PCIe 4.0 嗎?
一般來說,不需要。如果你有一個 GPU 集群,PCIe 4.0 很有用。如果你有一台 8x GPU 機器,也還可以,但除此之外,它就沒有多大好處了。它可以幫助實現更好的並行化和更快的數據傳輸。數據傳輸在任何應用程序中都不是瓶頸。在計算機視覺中,在數據傳輸管道中,數據存儲可能是瓶頸,而 PCIe 從 CPU 到 GPU 的傳輸則不是瓶頸。所以,對於大多數人來說,沒有真正的理由去安裝 PCIe 4.0。在 4 GPU 設置中,這樣做的好處是,並行度可能會提高 1-7%。
我需要 8x/16x PCIe 通道嗎?
和 PCIe 4.0 一樣,一般來說,不需要。並行化和快速數據傳輸需要 PCIe 通道,但這幾乎不會成為瓶頸。在 4x 通道上運行 GPU 就很好,特別是當你只有 2 個 GPU 的時候。對於 4 GPU 設置,我更希望每個 GPU 有 8 個通道,但如果你是在 4 個 GPU 上並行運行的話,那麼 4 個通道可能只會降低 5-10% 的性能。
如果每個 RTX 3090 需要 3 個 PCIe 插槽,我該如何安裝 4x RTX 3090?
你需要一個雙插槽變體,或者你可以嘗試使用 PCIe 擴展器布置它們。除了空間之外,你還需要考慮冷卻問題和一個合適的 PSU。最易於管理的解決方案似乎是,4x RTX 3090 EVGA Hydro Copper 加一個定製的水冷循環。這可以使卡處於低溫狀態。EVGA 生產 Hydro Copper 版本的 GPU 已有多年,我認為你可以信任其水冷式 GPU 的質量。不過,可能還有其他更便宜的變體。
PCIe 擴展器也可以解決空間和冷卻問題,但是你需要確保你的機箱中有足夠的空間來布置 GPU。一定要確保你的 PCIe 擴展器足夠長!
我該如何冷卻 4x RTX 3090 或 4x RTX 3080?
請看上節。
我可以使用多個不同類型的 GPU 嗎?
是的,你可以!但是不同類型的 GPU 無法有效地並行。我認為,一個 3x RTX 3070 加一個 RTX 3090 就夠原型推廣了。另一方面,在 4x RTX 3070 GPU 上並行會非常快,如果你能將模型放到這些 GPU 上的話。除此之外,我能想到的你希望這樣做的唯一原因是,你希望繼續使用舊 GPU。這沒問題,但是在那些 GPU 上並行會比較低效,因為最快的 GPU 會等待最慢的 GPU 到達一個同步點(通常是梯度更新)。
NVLink 是什麼,有用嗎?
一般來說,NVLink 是沒有用的。NVLink 是 GPU 之間的高速互連。如果你有一個有 +128 GPU 的 GPU 集群,它就有用了。否則,與標準 PCIe 傳輸相比,它幾乎不會產生任何好處。
我錢不夠,即使是你推薦的最便宜的 GPU。我能做什麼?
當然是買二手 GPU。二手 RTX 2070(400 美元)和 RTX 2060(300 美元)都很棒。如果你負擔不起,次佳選項是試着買一個二手的 GTX 1070(220 美元)或 GTX 1070 Ti(230 美元)。如果那還太貴,則可以使用 GTX 980 Ti (6GB 150 美元)或使用 GTX 1650 Super(190 美元)。如果這都太貴的話,最好是使用免費的 GPU 雲服務。通常,這些服務會有時間限制,之後你就需要付費了。你可以輪流使用不同的服務和賬戶,直到你有錢購買自己的 GPU。
GPU 的碳排放量是多少?我如何使用 GPU 而又不污染環境?
我構建了一個碳計算器,供學者們計算自己的碳排放量(從航班到會議 + GPU 時間的碳排放)。該計算器也可以用來計算純粹的GPU 碳排放量。你會發現,GPU 產生的碳比國際航班多得多。因此,你應該確保你有一個綠色能源,如果你不想有一個天文數字的碳排放量。如果我們這個地區沒有電力供應商提供綠色能源,最好的辦法就是購買碳抵消。許多人對碳抵消持懷疑態度。他們工作嗎?他們是在詐騙嗎?
我相信,在這種情況下,懷疑主義是有害的,因為什麼都不做比冒着被騙的風險更有害。如果你擔心被騙,只需投資一個抵消投資組合來最小化風險。
大約十年前,我參與了一個產生碳抵消的項目。聯合國官員跟蹤了整個過程,他們獲得了乾淨的數字數據,並對項目現場進行了實地檢查。在這種情況下產生的碳抵消是非常可靠的。我相信,其他許多項目也有類似的質量標準。
碳計算器: https://github.com/TimDettmers/carbonneutral
在兩台機器之間並行需要什麼?
如果你想要跨機器並行,那麼你將需要 +50Gbits/s 的網卡來提高速度。關於這個問題,我有一篇有點過時的博文。現在,我建議至少有一個EDR Infiniband 設置,這意味着網卡至少有50 GBit/s 的帶寬。兩張帶線纜的EDR 卡在eBay 上大約賣500 美元。
稀疏矩陣乘法特性適用於一般的稀疏矩陣嗎?
似乎並非如此。稀疏矩陣的粒度需要滿足每4 個元素有2 個零值元素,也就是說,稀疏矩陣需要是高度結構化的。可以稍微調整下算法,這涉及到將4 個值組合成2 個值的壓縮表示,但這也意味着Ampere GPU 不可能實現任意稀疏矩陣的精確乘法。
我需要Intel CPU 來支持多GPU 設置嗎?
我不推薦Intel CPU,除非你在Kaggle 競賽中大量使用了CPU(CPU 上的大量線性代數運算)。即使是在Kaggle 競賽中,AMD CPU 仍然很好。在深度學習方面,AMD GPU 比Intel GPU 更便宜也更好。對於4x GPU 構建,我的首選CPU 是Threadripper。我們在大學裏用Threadripper 構建了幾十個系統,它們都工作得很好——還沒有人抱怨。對於8x GPU 系統,我通常會選擇供應商熟悉的CPU。在8x 系統中,CPU 和PCIe/ 系統可靠性比單純的性能或成本效益更重要。
我應該等待RTX 3090 Ti 嗎?
目前還不清楚是否會有RTX 3080 Ti / RTX 3090 Ti / RTX Ampere Titan。GTX XX90 的名稱通常是留給雙GPU 卡,所以NVIDIA 是偏離了這一趨勢。從價格和性能來看,似乎RTX 3090 是一個取代RTX 3080 Ti 的名字。但是所有這些都是推測。如果你對這個問題感興趣,我建議你對Rumor Mill 上的新聞跟蹤一兩個月,如果你什麼都沒有看到,就不太可能出現RTX 3080 Ti / RTX 3090 Ti / RTX Ampere Titan。
機箱設計對散熱有影響嗎?
沒有。只要GPU 之間有一個小間隙,GPU 的冷卻通常就沒問題。機箱設計可以提供1 到3 攝氏度的好處,而GPU 之間的間隙將提供10 到30 攝氏度的改進。歸根結底,如果GPU 之間有間隙,冷卻就沒問題。如果GPU 之間沒有間隙,就需要合適的冷卻器設計(鼓風扇)或其他解決方案(水冷、PCIe 擴展器),但無論哪種情況,機箱設計和機箱風扇都不很重要。
AMD GPUs + ROCm 能趕上 NVIDIA GPUs + CUDA 嗎?
1-2 年內趕不上。這涉及三個方面的問題:張量核、軟件和社區。
就純硅而言,AMD GPU 很棒:優秀的 FP16 性能,優秀的內存帶寬。然而,由於缺乏張量核或等效特性,其深度學習性能與 NVIDIA GPU 相比較差。封裝的低精度數學函數不能解決這個問題。沒有這個硬件特性,AMD GPU 將永遠不會有競爭力。有傳言稱,AMD 計劃在 2020 年推出某種具有張量核等效特性的數據中心卡,但此後就沒有新的數據出現了。擁有張量核等效特性的數據中心卡意味着很少有人能夠負擔得起這樣的AMD GPU,這將給NVIDIA 帶來競爭優勢。
假設AMD 在未來引入了類似於張量核的硬件特性。然後很多人會說,「但是沒有軟件針對AMD GPU!」我該怎麼使用它們呢?這更多的是一種誤解。AMD 軟件ROCm 已經發展很長一段時間了,並且PyTorch 提供了優秀的支持。雖然我沒有看到很多針對AMD GPU+ PyTorch 的經驗報告,但所有的軟件功能已整合。看起來,不管你選擇什麼網絡,都可以很好地在AMD GPU 上運行。所以,在這方面,AMD 已經走過了一段很長的路,這個問題或多或少得到了解決。
然而,如果軟件問題和缺少張量核的問題已得到了解決,AMD 還有一個問題:缺少社區。如果你使用NVIDIA GPU 遇到問題,你可以在谷歌查詢這個問題並找到解決方案。這讓人們對NVIDIA GPU 產生了很大的信任。你有基礎設施,使使用NVIDIA GPU 變得很容易(任何深度學習框架都可以使用,任何科學問題都得到很好的支持)。你可以輕鬆地使用NVIDIA GPU(比如apex)。你很容易就可以找到NVIDIA GPU 和編程專家,而我認識的AMD GPU 專家就少得多。
在社區方面,AMD 和NVIDIA 的對比有點像Julia 和Python。Julia 有很大的潛力,很多人會說,它是科學計算的高級編程語言。然而,與Python 相比,Julia 很少被使用。這是因為Python 社區非常強大。Numpy、SciPy、Pandas 都是功能強大的軟件包,有很多人在使用它們。這與NVIDIA vs AMD 的問題非常相似。
因此,在引入張量核等效特性(1/2 到1 年?)並圍繞ROCm 建立一個強大的社區(2 年?)之前,AMD 很可能都無法趕上NVIDIA。AMD 總是會在特定的子領域(如加密貨幣挖掘、數據中心)搶奪一部分市場份額。不過,在深度學習領域,至少幾年的時間內,NVIDIA 可能會保持其壟斷地位。
什麼時候使用雲GPU?什麼時候使用專用的GPU 台式機/ 服務器?
經驗法則:如果你希望做深度學習超過一年,那就買一台GPU 台式機。否則,最好使用雲實例。
最好自己算一下。例如,如果對比下配備了1x V100 的AWS V100 spot 實例和一個只有一塊RTX 3090 的台式機(性能類似),那麼對於台式機,我們要花2200 美元( 2-GPU Barebone + RTX 3090)。此外,假設你在美國,你需要額外支付每千瓦 / 時 0.12 美元的電費,而 AWS 實例是每小時 2.14 美元。
以每年 15% 的利用率來說,台式機每年消耗的電量為:
(350 Watt (GPU) + 100 Watt (CPU))*0.15 (utilization) * 24 hours * 365 days = 591 kW/h
即每年 591kW/h,需額外支付 71 美元。
在利用率為 15%(一天中 15% 的時間使用雲實例)的情況下,台式機和雲實例的盈虧平衡點大約是 300 天(2311 美元 vs 2270 美元):
2.14/h∗0.15(utilization)∗24hours∗300days=2.14/h∗0.15(utilization)∗24hours∗300days=2,311
因此,如果你希望在 300 天后繼續運行深度學習模型,最好是購買一台台式機,而不是使用 AWS spot 實例。
對任何雲服務,你都可以進行類似的計算,以決定是使用雲服務還是台式機。
下面是常見的利用率:
- 博士生個人台式機:< 15%
- 博士生 slurm GPU 集群:> 35%
- 企業 slurm 研究集群:> 60%
一般來說,對於那些思考前沿想法比開發實用產品更重要的職業來說,利用率較低。有些領域的利用率很低(可解釋性研究),而其他領域的利用率則高得多(機器翻譯、語言建模)。一般來說,個人機器的利用率幾乎總是被高估了。大多數個人系統的利用率通常在 5-10% 之間。這就是為什麼我強烈推薦 slurm GPU 集群給研究小組和公司,而不是個人的桌面 GPU 機器。
關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書,點擊文末「了解更多」,即可移步InfoQ官網,獲取最新資訊~