看板 PC_Shopping
作者 wuyiulin (機掰客家人)
標題 Re: [閒聊]AMD顯卡可以跑CUDA程式,那就不必特地買N
時間 Sat Mar  2 09:05:22 2024



各位早安,
這裡是禮拜六早上的 R&D。

※ 引述 《amduser (重返榮耀)》 之銘言:
:  
: 之前新聞
: https://news.mydrivers.com/1/963/963717.htm
:  
: NVIDIA CUDA通過多年耕耘,鑄就了牢不可破的生態壁壘,外人各種嘗試都無法進入,包
: 括AMD ROCm開發平台,但其實也不是沒有辦法。
: 開發者Andrzej Janik就憑借一己之力,借助Intel oneAPI,開發了CUDA兼容方案“ZLUDA
: ”,能夠在Intel硬件上原生運行CUDA應用,后來就被停了
: 之后在AMD的支持下,ZLUDA重啟了該項目,能夠讓AMD顯卡原生運行CUDA應用,不需要任
: 何轉移,也不需要調整代碼。
: 唯一要做的,就是用ZLUDA庫替代CUDA。
: 雖然它不能保證每一款CUDA應用都跑起來,但已經是以一個巨大的突破。
: 非常可惜,AMD支持這一項目做了兩年,也給停了——不知道是不是受到了NVIDIA的壓力
: 。
: 幸運的是,ZLUDA項目并未徹底消散,已經免費開源,感興趣有能力的開發者都可以使用
: ,而且確認可以在AMD ROCm平台上無縫運行CUDA應用。
: 比如說,可以將CUDA作為Blender 4.0或者V-Ray的渲染API,尤其是Blender本來就有
: Radeon HIP計算渲染器,如今跑在ZLUDA上速度還會更快。
: Andrzej Janik也在繼續研究ZLUDA,其中一個目標就是要讓AMD顯卡運行NVIDIA DLSS。
: 內部測試表明,對比OpenCL方案,其性能大部分時候都更好,最多可以領先超過75%,但
: 因為還在開發之中,部分時候效率反而更低。
:  
: 大家都知道NVIDIA最喜歡搞特規G-SYNC、DLSS、CUDA、閉源軟體一大堆不開放給其他家用
: ,現在ZLUDA可以讓AMD顯卡跑CUDA程式,那以後就不必特地買N卡了,應該以後會有人拿
: AMD顯卡來搞AI了吧!
:  
: https://github.com/vosen/ZLUDA
:  


ZLUDA 這東西我研究過一陣子,
當然不是現在這個 Fork,
而是三年前那個版本。

平台使用 Ubuntu 22.04 64bit


我研究後發現 ZLUDA 的運作原理是這樣:

ZLUDA 會去模擬一套 CUDA API,
然後內部再自己實現功能。

這代表什麼呢?

假設你有一套程式支援 CUDA 8 好了,
現在 CUDA 要更新變成 CUDA 9 囉!

N 家能在歷史版本裡面找到 舊版CUDA來套,
那你程式就能順利跑了。

如果你用 ZLUDA ,
之前的問題就是他只支援某特定版本 CUDA,
還沒有 Released 他是 depend 哪一版?

ZLUDA 是照某板的 API 下去寫的!


所以你想支援機器學習框架?
(e.g. TensorFlow, PyTorch)

那要先找到這個是用哪版 CUDA,
找到後還要確定這版的框架你裝得起來。

個人是認為這難度:

https://i.imgur.com/OBzSNCH.gif

除去框架,
實測能夠用 ZLUDA 跑起來的 CUDA 程式:
Geekbench 5

也嘗試過從底層像是 Numba 重寫演算法
拿去 Benchmark performance 。

一樣遇到 Numba 卡版本問題。


退一萬步說 ZLUDA 可能有用,
但是老黃一版更他就會死翹翹,
而且死很久。

開源的東西都這樣,蘇媽也不是做慈善的。

既然主流的框架(e.g. PyTorch)
都有支援 ROCm,幹嘛出大錢搞 ZLUDA?


結論:

ZLUDA 要真正可以商用,
就是要有人花錢去幫每一版 CUDA 寫 API,
然後拿出一張表對標版本支援才有用。

現在商用想逃離 NV 還是推 OpenCL 解決方案,
以上。


--
[圖]
supereva: 只能吸引你 不能吸引人才
所以沒人這樣開05/14 10:31

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.170.78.182 (臺灣)
※ 作者: wuyiulin 2024-03-02 09:05:22
※ 文章代碼(AID): #1budjKbm (PC_Shopping)
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1709341524.A.970.html
※ 同主題文章:
Re: [閒聊]AMD顯卡可以跑CUDA程式,那就不必特地買N
03-02 09:05 wuyiulin
crimsonmoon9: 跟wine概念差不多?1F 111.83.80.84 台灣 03/02 09:07
※ 編輯: wuyiulin (1.170.78.182 臺灣), 03/02/2024 09:11:05
kira925: 應該就是 然後這部分除非CUDA的API公開不然很難跟得到
你也不是有個Valve 盡量幫你通通接好2F 42.72.91.105 台灣 03/02 09:18
enonrick: 就好像買mac裝windows 一樣, 不用人家的生態還要裝, 要泡cuda 買nv 就好 , qemu 比較貼切5F 61.231.5.191 台灣 03/02 09:36
soulgem: 或是 Windows 內的 WSL 跟真 linux8F 140.112.30.188 台灣 03/02 09:37
oopFoo: 不只是版本問題,ZLUDA三年後還是Alpha版相容性很差,除了一些Benchmark,正常程式幾乎沒一個可用。最重要的Pytorch支援也完全不行。Intel跟AMD都相繼放棄不是沒原因9F 219.70.128.119 台灣 03/02 09:48
twinkleAshed: 對AMD on Windows來說,
就像是效率比較好的DirectML.13F 223.136.64.62 台灣 03/02 10:23
afacebook: 借問Rocm目前支援度如何
推薦買嗎
pytorch
linux系統的話15F 180.217.245.102 台灣 03/02 10:23
oopFoo: Pytorch支援ROCM,但要有能力debug,
最好用docker,常常需要重新設定。最重要的事,選有支援GPU,現在要7900xtx/xt/gre19F 219.70.128.119 台灣 03/02 10:34
nicetw20xx: 推22F 36.234.36.167 台灣 03/02 10:50
friedpig: 牙膏one API 有一部分是在做類似的事情啊 不過人家是商業團隊一堆人在寫 都問題不少了23F 125.228.96.10 台灣 03/02 11:11
avans: 推實測說明26F 111.71.102.21 台灣 03/02 11:45
Ceferino: 7系列都能跑rocm啊至少我畫圖沒問題,誰說要7900的27F 123.193.242.14 台灣 03/02 11:55
qazws931: 你先看那是什麼ID29F 61.230.198.196 台灣 03/02 11:56
oppoR20: https://bit.ly/49VCNGx
人家在問linux跑pytorch rocm結果你在說畫圖 更好笑的是有人要洗別人粉絲意向單官方就真的寫只支援那三張(遊戲卡)30F 123.195.146.51 台灣 03/02 12:23

 
Ceferino: 沒有裝過的別裝懂好嗎34F 123.193.242.14 台灣 03/02 12:26
crimsonmoon9: 官方只有保證那三張可以穩跑 其他出錯要自己debug
SD在linux上是用ROCm的torch框架35F 111.83.80.84 台灣 03/02 12:30
gameguy: 對公司這等級的就花錢了事買Nvidia工程繪圖卡,在誰在跟你搞土炮在那搞來搞去的38F 180.217.15.184 台灣 03/02 13:02
labbat: 這種api串接有沒有專門的名詞啊,常常聽到執行編譯需要軟體A特定版本B配C平台40F 27.53.147.38 台灣 03/02 13:12
kivan00: 開發者本來在I家上班的 初始是I家的專案後來弄一弄I家覺得沒搞頭 換AMD贊助這個專案 但是AMD後來也覺得沒搞頭 所以依照跟AMD的合約才開源42F 122.118.2.107 台灣 03/02 13:22
Rollnmeow: 畢竟我自家也有,為什麼要跑你的CUDAAMD還有hipify能轉換CUDA原始碼46F 114.37.175.226 台灣 03/02 14:28
HanadaIru: 給AI寫不就好了48F 101.12.48.73 台灣 03/02 16:28
as920909: A卡乖乖玩遊戲就好了 別搞這些有的沒的比windows arm跑x86程式還沒意義49F 36.225.166.242 台灣 03/02 17:14
rail02000: ROCm官網保證特定消費顯卡,但其他卡其實也有機會跑。我這邊Linux+ROCm 6+RX6600可以跑Pytorch。雖然我也是玩SD畫圖。
身為非開發者的我,遇到的問題是要特定的Pytorch版本才能跑(我沒在Docker上跑)51F 111.83.241.150 台灣 03/02 17:45
oopFoo: 不支援的GPU其實大部分可跑,但問題會更多而且不能file bug report。換句話說,真有問題,AMD不會處理。現在ROCM的AI相容性越來越好,花點錢買有在支援名單上的划算58F 219.70.128.119 台灣 03/02 18:55
afacebook: 所以rocm其實可以嘗試的意思吧,nv的卡又貴又難買,有事沒事還缺貨
我看7900xtx fp32比4080s還高62F 1.171.164.132 台灣 03/02 19:13
oopFoo: 可以嘗試,但4080s的ai會比較強,n家有
tensor core。但7900xtx有24GB,大記憶體比效能要重要。
但這建立在你能處理問題上。n家的ai是沒煩惱,支援完整。65F 219.70.128.119 台灣 03/02 19:36
d8511557: AMD這點沒辦法.但時間可以解決就是
AI方面A卡支援度會越來越好就是.
不考慮生產力7900XTX就是比4080S強的70F 114.36.21.67 台灣 03/02 19:58
tcchu: nvidia f u73F 1.200.150.242 台灣 03/02 20:06
aegis43210: tensor core要L40s才完全解放性能74F 175.182.111.21 台灣 03/02 21:21
kira925: 畢竟大家都要Second Source
牙膏看起來就是沒有方案 Altera 都拆分了75F 220.135.86.145 台灣 03/03 14:04

--
作者 wuyiulin 的最新發文:
點此顯示更多發文記錄