網頁

2023年8月24日 星期四

挖礦與深度學習 mining and deep learning


 

人工智慧對硬體設備的要求越來越高,幾乎已變成軍備競賽。

因此在學習深度學習的過程中,先進的模型越來越大,GPU記憶體需求就越來越多。可是顯卡可不是便宜貨,一片Geflorce RTX 4060 Ti 就要一萬三,重點是它只有8GB,實在不夠用。具有24GB的RTX 4090就要近六萬元,一點也不親民,可是對於現代的模式只能說是堪用!



↑ 截圖自PCHOME

若你有一台桌機,為了學習人工智慧,想買一片顯卡來用,你會遭遇許多問題。首先,顯卡尺寸很大,你的機櫃很可能塞不下!

⇓這顯卡比主機還大

即使顯卡塞得進主機內,另一個問題就是電源不足或是沒有足夠的電源線可用。現在的顯卡需要6+2的電源線,而且不只一條。重點是吃電很凶,若你的電供(POWER :PSU)沒有800或1000瓦,會有使不上力的問題。

說到這裡,恐怕還不如重新買一套高端的電競桌機來用,這又回到沒有錢的問題。講了半天,到底有沒有解?

過去流行挖礦的設備也許可以轉型來做深度學習?!也就是多張顯卡外接到一台主機,將記憶體分散到不同的顯卡,減輕每塊顯卡記憶體的需求。

今天就來做一個實驗,看看有沒有解決降低硬體需求的問題。我們先用一個 RTX-3060Ti 來做實驗:


我們找一個簡單的模型,取batch size=16,其中8192MB的GPU記憶體已用了3917,如上圖。跑一個epoch,花了5分18秒。接著提高batch size=32,GPU記憶體就用掉了7383MB,快用光所有的記憶體,如下圖:


我們再把batch size提高至64,程式一執行就當機了,理由是OutOfMemoryError: CUDA out of memory。其實就是GPU記憶體不足!!為了解決這個問題,我們學習礦機的方式,再外接一個顯卡。
這兩張顯卡分別是RTX 3060Ti 及RTX 3080Ti,前者有8GB,後者有12GB的記憶體,兩張卡同時執行剛才的模型,兩者使用的效能如下圖:


兩張顯卡共用掉了7347+7717=15064,大約15GB的GPU記憶體,執行時間大約是3分3秒。15GB的需求超過這兩張顯卡個別的記憶體容量。因此這種作法就可以解決記憶體不足的問題!

挖礦的礦機到底怎麼串接顯卡?網路上有賣這個挖礦轉接板或是PCI-E 1X 轉 16X 顯卡延長線。這一組包含一個16X的PCI插槽,一個1X插卡,一條USB線,及一條電源線,如下圖:



將1X插卡插入電腦主機片1X的PCI插槽,下圖1X插卡已連上USB線了

兩片1X插卡都插入主機的樣子


轉接卡接上USB線及電源線的樣子(還沒插入顯卡)


轉接卡的電源線是SATA的電源線,一般電源供應器都有這種12V的接線


最後插上顯卡(顯卡當然要接電源)的樣子


外接兩張顯卡


其實還有很多細節沒說,不過挖礦這檔事已經很久了,網路上都有許多說明,在這裡只是作實驗讓大家參考這樣是否可以解決深度學習的問題!

沒有留言:

張貼留言