最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

深度學(xué)習(xí)硬件指南, 解析我的DL調(diào)試機NUC12飛龍峽谷+RX6800/RTX3060

2022-08-23 15:20 作者:云測評專家小弟HudenJear  | 我要投稿


上次介紹了新買的NUC12 extreme i7,這次就來說說這個機器的具體用途,因為主要用途還是深度學(xué)習(xí),所以就順便聊一聊深度學(xué)習(xí)的硬件選擇。一般聊到深度學(xué)習(xí)都會默認想到服務(wù)器,繼而想到CUDA,專業(yè)卡。這么想倒是沒錯,但是深度學(xué)習(xí)并不是一來就上服務(wù)器開跑,也不是絕對只能用CUDA,更不強求專業(yè)卡




簡介


一般來說,調(diào)試所需要的時間和跑訓(xùn)練的時間基本是三七開,而且不保證本地代碼能跑通,直接上服務(wù)器也沒有什么用,反復(fù)上傳浪費的時間精力更多。所以一般做深度學(xué)習(xí)開發(fā)會準備兩臺機器,一臺是主力服務(wù)器,這個一般都是單位或者老板固定租用,要個人擁有這樣的服務(wù)器至少需要20W的預(yù)算,而且不包括機房的環(huán)境維護費用,這部分如果是學(xué)生或者打工人就別自己操心了。另一臺機器就是本地調(diào)試機,這臺機器的主要作用就是保持和服務(wù)器的虛擬環(huán)境基本一致,在本地即時調(diào)試代碼獲得反饋。這機器大部分時間都是開著斷點模式改代碼找bug,保證上傳服務(wù)器的代碼只需要簡單幾條命令就能開跑,不會跑一半報錯前功盡棄


顯卡選擇上也并不是絕對的CUDA,因為AMD的ROCm 5.x更新之后也是比較好用,安裝比CUDA更為便捷一些,RX6800和RX6800XT之流的RX顯卡也能進行深度學(xué)習(xí)


至于專業(yè)卡這個問題,我非常不推薦只搞深度學(xué)習(xí)的朋友買專業(yè)卡,專業(yè)卡最大特點是管大管夠的雙精度和驅(qū)動支持,但是對于深度學(xué)習(xí)這種日常單精度甚至半精度的應(yīng)用來說,專業(yè)卡的長處基本就只有大顯存一點了。而Geforce和RX這些游戲卡都是能深度學(xué)習(xí)的。




硬件介紹


主機部分是上次買的intel NUC12 Extreme Kit,這個機器有非常不錯的IO能力,顯卡也兼容300mm雙槽顯卡,公版卡自然是不在話下




桌面的使用面積并不算大,總體積8.4L,跟大一點的ITX差不多,但是更修長,對比了一下15寸的電腦,長度上是差不多的




這一代NUC12 飛龍峽谷用的是桌面級CPU,i7版本是12700,在i9版本上的10G網(wǎng)卡也保留了下來,非常適合一個網(wǎng)線插主路由下面,上傳數(shù)據(jù)非常快。背部的兩個type-C都是TB4的接口,擴展接口或者接顯示器都是可以的。正面的4個接口涵蓋也比較廣,我的相機用的也是SD卡,所以NUC12這個卡槽也還用得上




拆機,之前用來調(diào)試的是一張華碩的RTX3060dual mini o12G,這張卡是比較典型的ITX顯卡,所以在機箱里面顯得比較空。




很多朋友一直有個誤區(qū),就是覺得搞深度學(xué)習(xí)一定得用很高端的顯卡,然而實際上只要是支持CUDA就能搞。不需要訓(xùn)練的話,對性能的需求并不算很高,而且作為調(diào)試機,不是主力訓(xùn)練機的話,實際上顯存的需求比性能更重要。因為深度學(xué)習(xí)訓(xùn)練的顯存壓力來自兩個方面,一個是模型參數(shù),一個是tensor緩存,這兩者都會隨著模型參數(shù)和輸入規(guī)模增大而急劇膨脹。一般要調(diào)試肯定會要求模型和輸入與主力訓(xùn)練機上的一致,這樣不容易出NaN bug,所以面對顯存數(shù)倍于調(diào)試機的時候,買一張顯存足夠容納常規(guī)模型的顯卡還挺關(guān)鍵的。


A卡的游戲卡這邊顯存倒是給的很大方,4000多的RX6800都有16G顯存,如果用ROCm的話就能獲得這個優(yōu)勢。而N卡的細分就要難受很多,RTX3060 12GB顯存屬于是與性能不匹配的大狂牛級,反而造就了他在深度學(xué)習(xí)方面的些許優(yōu)勢。與之相比,要獲得12G顯存在Geforce產(chǎn)品線里至少要加錢一倍買3080 12GB,諸如3060Ti和3070這些8GB顯卡是沒太大吸引力的。3090 24GB如果作為調(diào)試顯卡就有點太奢侈了,一般都當主力用。


如果要買專業(yè)卡,我的評價是建議先看看預(yù)算,因為專業(yè)卡買來那就是真專業(yè)用途,價格更貴游戲更卡,想清楚自己是不是確實需要專業(yè)卡帶來的其他應(yīng)用上的優(yōu)勢。首先AMD的Radeon WX是沒有額外優(yōu)勢的,需要AMD的MI加速卡才是AI優(yōu)化,這個卡一般是給主力訓(xùn)練機用的,新手拿著這個開機都是個問題。而N卡的RTX A2000的核心和顯存基本和3060保持一致,但是價格貴了一倍,深度學(xué)習(xí)用不太上Quadro的ECC顯存和專業(yè)bios,不過要是有其它專業(yè)卡需求的話是可以考慮的。RTX A4000 16GB在Quadro里是不錯的選擇,顯存和性能都很夠用,6000多的價格一般人咬咬牙也能承擔。A5000和A6000更適合主力訓(xùn)練機,顯存大性能強,規(guī)格也適合服務(wù)器機柜。而且專業(yè)卡相對來說更保值,可以參見Pascal的專業(yè)卡現(xiàn)在什么價,P6000 24GB降價這么久了還得一萬一張,而同一代的TitanXp已經(jīng)跌得馬都不認識了




NUC12的計算板是獨立導(dǎo)風罩,所以不用太擔心散熱,3條m.2+兩個sodimm,裝兩個系統(tǒng)再放個數(shù)據(jù)盤也沒什么問題




基本測試


搞深度學(xué)習(xí)代碼調(diào)試的電腦的CPU性能要求其實不算很高,不用上HEDT或者服務(wù)器CPU,桌面級主流性能的CPU就夠了,i5 12400或者5600X都是挺正常的選擇,我這個NUC12用的是12700。不過要跑大規(guī)模訓(xùn)練的話,建議按照每張卡4個CPU物理核心來配置CPU



調(diào)試機比較需要的是IO能力,保證隨時能快速的從服務(wù)器端下載數(shù)據(jù),或者從本地同步代碼到服務(wù)器,帶寬越大越舒服,延遲越低越舒服,現(xiàn)在一般機器都有有線無線兩張網(wǎng)卡,保證有線速度至少能達到千兆就好,NUC12 Extreme 的網(wǎng)卡是萬兆的,10Gbit的數(shù)據(jù)能秒傳還是非常舒服的






Windows深度學(xué)習(xí)?

win是目前應(yīng)用最廣的操作系統(tǒng),有非常完善的圖形界面,而且絕大部分游戲都只能在win上跑。如果你的深度學(xué)習(xí)調(diào)試需求非常輕度,只需要稍微改改代碼,或者目前還處于學(xué)習(xí)階段的話,比較建議使用windows。在win上安裝CUDA和裝驅(qū)動沒什么本質(zhì)區(qū)別,在CUDA中是包含了一個驗證驅(qū)動的,如果驅(qū)動版本更低建議更新CUDA的驅(qū)動,如果已經(jīng)有更高版本的驅(qū)動就不用安裝了。如果不使用VS,安裝選項中的VS integration是可以取消的,這個組件在安裝的時侯可能會報錯






安裝好了可以用軟件檢查一下是否正常,或者使用nvcc命令查看。而CUDNN可以自行安裝,在調(diào)試機上屬于是可選項






一般用的深度學(xué)習(xí)環(huán)境解決方案是pycharm+anaconda,這兩個都是非常常用的軟件,pycharm有社區(qū)版,也可以申請教育優(yōu)惠,而anaconda則是免費的








裝conda用pip乃是人間常態(tài),不得不品嘗




裝好了就可以搞代碼開始跑了,代碼跑起來很簡單,跑得好跑得快才是關(guān)鍵,這些都得靠不斷地學(xué)習(xí)才能積累經(jīng)驗,沒有誰是一來就會設(shè)計實驗然后跑大規(guī)模訓(xùn)練的




win上的深度學(xué)習(xí)雖然操作系統(tǒng)更熟悉,而且安裝也比較方便,但是可惜的是win上的CUDA性能并不是最強的。首先win上就面臨一個問題,那就是顯存占用,作為主力的顯卡會分出0.75G的顯存給桌面顯示,某些程序還會占用更多的顯存,比如瀏覽器,這讓本身就不富裕的顯存更顯得捉襟見肘(要是只有8G顯存光是桌面就占了10%)。還有一個問題是win的內(nèi)存調(diào)度問題,在多個進程同時調(diào)用某個內(nèi)存位置的時候,win上的python有時候會主動再為這個內(nèi)容開一個地址,這就導(dǎo)致深度學(xué)習(xí)中很多多進程處理過程速度都會比linux上稍微慢一些






跑代碼有很多種方法,作為調(diào)試機,一般是推薦使用pycharm的debug模式,可以快速定位錯誤查看變量具體數(shù)值,代碼能跑通了再使用命令行






使用nvidia-smi命令查看使用情況,win上空間使用大的問題還是比較明顯的,再linux上占用只有5.3G的模型win上需要7.7G,一些原本可以同時跑兩個的模型現(xiàn)在只能跑一個了。某些朋友要問了,為什么要同時跑多個呢?因為深度學(xué)習(xí)過程中顯卡并不是100%占用的,除了訓(xùn)練階段的IO階段外,訓(xùn)練之間的val階段占用也相當小,為了充分壓榨顯卡性能,同時跑兩個模型是可以考慮的一種方法







ROCm+Linux深度學(xué)習(xí)?

本來想把Cuda在Linux上的過程也寫寫的,但是感覺太重復(fù)贅余了,除了安裝過程有些不一樣之外,其他基本都是一樣的,而且網(wǎng)上的教程大概有1000000個,各個版本都有,各種bug也都是老生常談,所以我就省略了


那么下面這個環(huán)節(jié)講什么?現(xiàn)在我們來聊聊AMD的最新科技,ROCm5.x。首先是支持,目前5.x的版本已經(jīng)支持了包括RX6800XT,RX6800,RX6900XT的一系列顯卡,AMD也提供了一個AMDGPU管理軟件,讓ROCm的安裝非常方便。而ROCm目前是只支持Linux的,要解決也非常簡單,普普通通裝個雙系統(tǒng)就可以了(確信)。對于DL老鳥來說,裝Linux雙系統(tǒng)基本如喝水,所以也不是什么問題了




NUC12的顯卡支持讓RX6800公版正好能放進這機箱,非常合適,留給線的空間也很充足














簡單說一下ROCm對系統(tǒng)和環(huán)境的選擇。首先Linux上用AMD顯卡是不用裝驅(qū)動的,Ubuntu上面集成了非常完善的AMD開源版本驅(qū)動,所以裝好了就能識別,不用像Nv一樣單獨打驅(qū)動。而目前ROCm所支持的版本已經(jīng)到了ubuntu 20.04 5.13.0,基本就是最新的,非常不建議更新5.15.0,會在安裝的時候遇到build bug




軟件仍然選擇Anaconda和Pycharm,這兩者在Linux上的安裝都是非常容易的,教程也很多,就不多贅述了,比較建議新裝conda的用戶換一下下載源




Linux上的conda環(huán)境是可以從同系統(tǒng)的conda中扒出來,比如這個環(huán)境就是直接從主力機上復(fù)制下來的,只需放到conda的環(huán)境文件中,就能像創(chuàng)建的系統(tǒng)一樣通過命令激活,pycharm中也是能找到并使用的。還有一個比較建議裝的東西是htop,有比較豐富的系統(tǒng)信息,查看CPU和RAM,查看GPU的可以用rocm-smi命令








下面簡單說一說ROCm,這個東西是AMD所提出的一個開放式AI加速庫,所有的代碼掛在github上面,非常開源,現(xiàn)在支持也算是比較好了,從ROCm、MIopen的版本迭代來看就會發(fā)現(xiàn)AMD對此的投入也是越來越多,看來是真的有錢了,有錢就是好說話






而目前ROCm終于來到了5.x版本,終于支持了最新一代的RX6000系列的一些顯卡,支持速度并沒有CUDA那么快,這也是沒有商業(yè)化的加速庫的問題之一




至于ROCm的速度,其實這個是不用太擔心的,早在幾年之前還在Vega構(gòu)架的時候,就能跟當代的P100有來有回,而后面的測試來看,現(xiàn)在RX6800也是非常有競爭力的,基本和同級的顯卡持平




安裝步驟大概如下:


首先確認自己的系統(tǒng)版本是否為ubuntu20.04 5.13.0-xx。不建議ubuntu18,目前5.x版本是跟著20版本來的,文檔會更豐富一些。非常不建議更新5.15.0系統(tǒng),因為ROCm對應(yīng)的amdgpu dkms支持是5.13.0版本的,在5.15上會遇到bug,如果你更新了新版本內(nèi)核,請直接刪掉謝謝,順便把自動更新關(guān)了,做開發(fā)的Linux開自動更新真的沒必要




其次是確認自己的apt-get是否已經(jīng)更新,ROCm的依賴包含一些系統(tǒng)組件和編譯器,需要自行安裝build-essnetial,這一點和其他的加速庫是一樣的


然后使用下面這些命令(從文檔里面抄的)

  1. sudo apt update && sudo apt-get dist-upgrade (后面這個命令原本是sudo apt dist-upgrade,但是會更新系統(tǒng)內(nèi)核并導(dǎo)致bug所以改成了apt-get)

  2. sudo apt-get install wget gnupg2

  3. sudo usermod -a -G video $LOGNAME

  4. echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf

  5. echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

  6. echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf

  7. sudo wget https://repo.radeon.com/amdgpu-install/22.10/ubuntu/focal/amdgpu-install_22.10.50100-1_all.deb

  8. sudo apt-get install ./amdgpu-install_22.10.50100-1_all.deb

  9. sudo amdgpu-install --usecase=dkms

  10. amdgpu-install -y --usecase=rocm

  11. sudo usermod -a -G video $LOGNAME

  12. sudo usermod -a -G render $LOGNAME

  13. echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf

  14. echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

  15. echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf

  16. echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh</code></pre>

復(fù)制代碼


到這里安裝就已經(jīng)完成了,重啟一下,使用rocm-smi以及rocminfo兩個命令即可查看是否安裝成功






接下來是安裝深度學(xué)習(xí)平臺,一般時使用的torch,現(xiàn)在torch已經(jīng)更新了5.x的安裝命令,可以直接從官網(wǎng)照抄,下載安裝速度也是全滿的,非常舒暢。如果要使用tensorflow,需要在官網(wǎng)上下載文件本地安裝。現(xiàn)在Torch的穩(wěn)定版已經(jīng)完全同步了ROCm的適配更新,而且老版本也是有留檔的,不用擔心跑扒下來的代碼自己的torch版本不支持






目前安裝rocm默認使用的py310版本,所以在創(chuàng)建的時候可以直接創(chuàng)建3.10版本的虛擬環(huán)境,如果是已經(jīng)創(chuàng)建好的環(huán)境,可在torch官網(wǎng)下載3.7-3.9的對應(yīng)版本,然后執(zhí)行本地安裝






還有一個可選的東西是MIOpen庫,這個庫可以加速ROCm的加載過程,降低延遲,提高對應(yīng)型號顯卡的訓(xùn)練速度,跟CUDnn一樣對于調(diào)試過程不是必須的。MIOpen和ROCm一樣都是開源的,所以即使AMD只發(fā)布了支持GFX1030(也就是RX6800及以上的顯卡支持),但是實際上可以通過自己改代碼來實現(xiàn)RX6700XT到RX6500XT的顯卡ROCm支持,這在某位知乎大神的操作下已經(jīng)成為了現(xiàn)實






ROCm的具體使用如何呢?雖然顯卡完全不一樣,但是在torch里面為了使用方便,所有和rocm相關(guān)的東西都有cuda的同義對象,比如cuda.device之類的方法,即使之前的代碼中含有使用cuda的語句,也是可以直接開跑不需要再替換的




比如這個作為benchmark的代碼,代碼中也使用了大量cuda的方法,比如查詢版本和cuda設(shè)備這些,都是可以不改代碼直接跑的




來看看RX6800的深度學(xué)習(xí)測試成績






網(wǎng)絡(luò)上還有一些其他顯卡跑出來的成績,比如這個是單張A100的成績




這個是RTX3090單張的成績




這個是實現(xiàn)了ROCm支持的RX6700XT的成績




下面兩個是我自己在Linux上測的RTX3060的成績






我的評價是,ROCm跟CUDA相比已經(jīng)沒有表觀上的鴻溝了。深度學(xué)習(xí)性能測試的差距跟實際的性能差是比較相似的,因為3090和A100就是比RX6800強不少,深度學(xué)習(xí)也對應(yīng)的強一些很正常。RX6800和RX6700XT相比強一些也能佐證,這個測試結(jié)果并沒有什么么大問題。而RTX3060的性能也就停留在調(diào)試階段了,正如上面所說他的12GB顯存是和實力不相匹配的大狂牛,所以在調(diào)試階段可用,真要跑大規(guī)模訓(xùn)練還是得用RTX3090或者RX6800以上級別的顯卡


總結(jié)

深度學(xué)習(xí)這個話題大家都很熟悉,而實際上隨著目前各種深度學(xué)習(xí)平臺的逐漸發(fā)展,加上網(wǎng)上各種教程都是老生常談,F(xiàn)astAI一直在簡化深度學(xué)習(xí)的過程,要入門深度學(xué)習(xí)的學(xué)習(xí)成本是相當?shù)偷?。而此時需求就來到了硬件這一邊,選擇比較合適的調(diào)試或主力訓(xùn)練硬件是一個一個困擾很多小白的問題,上面我也列出了很多選擇,這里就不重復(fù)了,總的來說,購買相應(yīng)的硬件只需要服從下面這些原則:


1.符合自己的預(yù)算和應(yīng)用需求。就玩玩風格遷移不需要買A100,要搞大規(guī)模訓(xùn)練沒辦法用RTX2060,從自己的預(yù)算和用途出發(fā)來選擇

2.區(qū)分好調(diào)試需求和訓(xùn)練需求。如果是學(xué)生或打工人,先問問老板有沒有服務(wù)器,有沒有分配的個人電腦;如果是老板,先問問學(xué)生或者打工人性能需求是怎樣的,需要不需要調(diào)試和訓(xùn)練分立

3.不強求某一種平臺。不要因為周圍都用CUDA/ROCm就覺得非xxx不可,實際上代碼是可以通用的


目前ROCm安裝的教程比較少,如果有ROCm安裝的問題,或者硬件選擇的問題,可以隨時評論區(qū)提問,這樣issue大家都能看到


















簡單說一下ROCm對系統(tǒng)和環(huán)境的選擇。首先Linux上用AMD顯卡是不用裝驅(qū)動的,Ubuntu上面集成了非常完善的AMD開源版本驅(qū)動,所以裝好了就能識別,不用像Nv一樣單獨打驅(qū)動。而目前ROCm所支持的版本已經(jīng)到了ubuntu 20.04 5.13.0,基本就是最新的,非常不建議更新5.15.0,會在安裝的時候遇到build bug




軟件仍然選擇Anaconda和Pycharm,這兩者在Linux上的安裝都是非常容易的,教程也很多,就不多贅述了,比較建議新裝conda的用戶換一下下載源




Linux上的conda環(huán)境是可以從同系統(tǒng)的conda中扒出來,比如這個環(huán)境就是直接從主力機上復(fù)制下來的,只需放到conda的環(huán)境文件中,就能像創(chuàng)建的系統(tǒng)一樣通過命令激活,pycharm中也是能找到并使用的。還有一個比較建議裝的東西是htop,有比較豐富的系統(tǒng)信息,查看CPU和RAM,查看GPU的可以用rocm-smi命令








下面簡單說一說ROCm,這個東西是AMD所提出的一個開放式AI加速庫,所有的代碼掛在github上面,非常開源,現(xiàn)在支持也算是比較好了,從ROCm、MIopen的版本迭代來看就會發(fā)現(xiàn)AMD對此的投入也是越來越多,看來是真的有錢了,有錢就是好說話






而目前ROCm終于來到了5.x版本,終于支持了最新一代的RX6000系列的一些顯卡,支持速度并沒有CUDA那么快,這也是沒有商業(yè)化的加速庫的問題之一




至于ROCm的速度,其實這個是不用太擔心的,早在幾年之前還在Vega構(gòu)架的時候,就能跟當代的P100有來有回,而后面的測試來看,現(xiàn)在RX6800也是非常有競爭力的,基本和同級的顯卡持平




安裝步驟大概如下:


首先確認自己的系統(tǒng)版本是否為ubuntu20.04 5.13.0-xx。不建議ubuntu18,目前5.x版本是跟著20版本來的,文檔會更豐富一些。非常不建議更新5.15.0系統(tǒng),因為ROCm對應(yīng)的amdgpu dkms支持是5.13.0版本的,在5.15上會遇到bug,如果你更新了新版本內(nèi)核,請直接刪掉謝謝,順便把自動更新關(guān)了,做開發(fā)的Linux開自動更新真的沒必要




其次是確認自己的apt-get是否已經(jīng)更新,ROCm的依賴包含一些系統(tǒng)組件和編譯器,需要自行安裝build-essnetial,這一點和其他的加速庫是一樣的


然后使用下面這些命令(從文檔里面抄的)

  1. sudo apt update && sudo apt-get dist-upgrade (后面這個命令原本是sudo apt dist-upgrade,但是會更新系統(tǒng)內(nèi)核并導(dǎo)致bug所以改成了apt-get)

  2. sudo apt-get install wget gnupg2

  3. sudo usermod -a -G video $LOGNAME

  4. echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf

  5. echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

  6. echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf

  7. sudo wget https://repo.radeon.com/amdgpu-install/22.10/ubuntu/focal/amdgpu-install_22.10.50100-1_all.deb

  8. sudo apt-get install ./amdgpu-install_22.10.50100-1_all.deb

  9. sudo amdgpu-install --usecase=dkms

  10. amdgpu-install -y --usecase=rocm

  11. sudo usermod -a -G video $LOGNAME

  12. sudo usermod -a -G render $LOGNAME

  13. echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf

  14. echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

  15. echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf

  16. echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh</code></pre>

復(fù)制代碼


到這里安裝就已經(jīng)完成了,重啟一下,使用rocm-smi以及rocminfo兩個命令即可查看是否安裝成功






接下來是安裝深度學(xué)習(xí)平臺,一般時使用的torch,現(xiàn)在torch已經(jīng)更新了5.x的安裝命令,可以直接從官網(wǎng)照抄,下載安裝速度也是全滿的,非常舒暢。如果要使用tensorflow,需要在官網(wǎng)上下載文件本地安裝?,F(xiàn)在Torch的穩(wěn)定版已經(jīng)完全同步了ROCm的適配更新,而且老版本也是有留檔的,不用擔心跑扒下來的代碼自己的torch版本不支持






目前安裝rocm默認使用的py310版本,所以在創(chuàng)建的時候可以直接創(chuàng)建3.10版本的虛擬環(huán)境,如果是已經(jīng)創(chuàng)建好的環(huán)境,可在torch官網(wǎng)下載3.7-3.9的對應(yīng)版本,然后執(zhí)行本地安裝






還有一個可選的東西是MIOpen庫,這個庫可以加速ROCm的加載過程,降低延遲,提高對應(yīng)型號顯卡的訓(xùn)練速度,跟CUDnn一樣對于調(diào)試過程不是必須的。MIOpen和ROCm一樣都是開源的,所以即使AMD只發(fā)布了支持GFX1030(也就是RX6800及以上的顯卡支持),但是實際上可以通過自己改代碼來實現(xiàn)RX6700XT到RX6500XT的顯卡ROCm支持,這在某位知乎大神的操作下已經(jīng)成為了現(xiàn)實






ROCm的具體使用如何呢?雖然顯卡完全不一樣,但是在torch里面為了使用方便,所有和rocm相關(guān)的東西都有cuda的同義對象,比如cuda.device之類的方法,即使之前的代碼中含有使用cuda的語句,也是可以直接開跑不需要再替換的




比如這個作為benchmark的代碼,代碼中也使用了大量cuda的方法,比如查詢版本和cuda設(shè)備這些,都是可以不改代碼直接跑的




來看看RX6800的深度學(xué)習(xí)測試成績






網(wǎng)絡(luò)上還有一些其他顯卡跑出來的成績,比如這個是單張A100的成績




這個是RTX3090單張的成績




這個是實現(xiàn)了ROCm支持的RX6700XT的成績




下面兩個是我自己在Linux上測的RTX3060的成績






我的評價是,ROCm跟CUDA相比已經(jīng)沒有表觀上的鴻溝了。深度學(xué)習(xí)性能測試的差距跟實際的性能差是比較相似的,因為3090和A100就是比RX6800強不少,深度學(xué)習(xí)也對應(yīng)的強一些很正常。RX6800和RX6700XT相比強一些也能佐證,這個測試結(jié)果并沒有什么么大問題。而RTX3060的性能也就停留在調(diào)試階段了,正如上面所說他的12GB顯存是和實力不相匹配的大狂牛,所以在調(diào)試階段可用,真要跑大規(guī)模訓(xùn)練還是得用RTX3090或者RX6800以上級別的顯卡


總結(jié)

深度學(xué)習(xí)這個話題大家都很熟悉,而實際上隨著目前各種深度學(xué)習(xí)平臺的逐漸發(fā)展,加上網(wǎng)上各種教程都是老生常談,F(xiàn)astAI一直在簡化深度學(xué)習(xí)的過程,要入門深度學(xué)習(xí)的學(xué)習(xí)成本是相當?shù)偷?。而此時需求就來到了硬件這一邊,選擇比較合適的調(diào)試或主力訓(xùn)練硬件是一個一個困擾很多小白的問題,上面我也列出了很多選擇,這里就不重復(fù)了,總的來說,購買相應(yīng)的硬件只需要服從下面這些原則:


1.符合自己的預(yù)算和應(yīng)用需求。就玩玩風格遷移不需要買A100,要搞大規(guī)模訓(xùn)練沒辦法用RTX2060,從自己的預(yù)算和用途出發(fā)來選擇

2.區(qū)分好調(diào)試需求和訓(xùn)練需求。如果是學(xué)生或打工人,先問問老板有沒有服務(wù)器,有沒有分配的個人電腦;如果是老板,先問問學(xué)生或者打工人性能需求是怎樣的,需要不需要調(diào)試和訓(xùn)練分立

3.不強求某一種平臺。不要因為周圍都用CUDA/ROCm就覺得非xxx不可,實際上代碼是可以通用的


目前ROCm安裝的教程比較少,如果有ROCm安裝的問題,或者硬件選擇的問題,可以隨時評論區(qū)提問,這樣issue大家都能看到





深度學(xué)習(xí)硬件指南, 解析我的DL調(diào)試機NUC12飛龍峽谷+RX6800/RTX3060的評論 (共 條)

分享到微博請遵守國家法律
萨迦县| 合作市| 奉节县| 四川省| 四子王旗| 唐山市| 葵青区| 姜堰市| 含山县| 银川市| 肃宁县| 榕江县| 隆回县| 工布江达县| 波密县| 桐梓县| 武隆县| 雅安市| 芦溪县| 临潭县| 湖北省| 浮梁县| 洪江市| 星子县| 高唐县| 泸州市| 琼海市| 罗定市| 淳化县| 海宁市| 根河市| 澄城县| 光山县| 英山县| 金华市| 泗水县| 札达县| 横峰县| 达州市| 浮梁县| 彭泽县|