※ 本文轉寄自 ptt.cc, 文章原始頁面
標題

Re: [問題] 新手每次跑模型時都是CPU滿載

最新2024-05-08 16:23:00
留言16則留言,7人參與討論
推噓5 ( 5011 )
更多細節可以讀這篇,他整理得很不錯,內容幾乎都是正確的 https://www.cnblogs.com/marsggbo/p/11838823.html ※ 引述《fragmentwing (片翼碎夢)》之銘言: : 題外話,之前cmd那邊查cuda是11.8 設定找到的應用程式是11.6 torch是+cu113 : 這樣子竟然還能跑到想更新pytorch版本時才發現 nvidia-smi 查到的是 CUDA driver 版本 一般我們裝的 CUDA 指的是 CUDA runtime library (e.g. libcudart.so) CUDA driver 提供 low-level API,而 CUDA runtime library 提供 high-level API 而 nvcc 是 CUDA compiler,個人認為跟上面的不完全相關, 只有在安裝 CUDA toolkit 的時候會整包一起下載, 此時的 nvcc 跟 CUDA runtime library 才會相同 到底有多少工具跟 "CUDA" 有關係,可以參考以下連結的 Table 5 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#meta-packages 所以我不怎麼推薦用 nvcc 去檢查 CUDA 版本...它甚至通常不需要下載 只不過偶爾還是會有神人寫 CUDA program 需要自己去編譯 PyTorch 是把 CUDA runtime library, cuDNN, 還有 NCCL 直接包在 package 裡面 https://discuss.pytorch.org/t/install-pytorch-with-cuda-12-1/174294/2 所以裝 PyTorch 才會不用先安裝 CUDA 那堆有的沒的 (反觀很久以前裝 TensorFlow 之前還要先裝 CUDA, cuDNN 版本號看半天...) : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.107.182 (臺灣) : ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1712815245.A.08A.html : 推 DaOppaiLoli: cmd 查的通常會是最高支援的版本 04/13 07:30 : → fragmentwing: 原來是這樣 我一直以為是我裝到哪個就是哪個 因為之 04/13 14:10 : → fragmentwing: 前看人家教學時都是要看cuda版本左邊的那個數字去找 04/13 14:10 : → fragmentwing: 相容性 原來根本可以跳過這步XD 04/13 14:10 : 推 DaOppaiLoli: 一個機器也可以多個 CUDA 共存,理論上 driver 支援 04/13 15:15 : → DaOppaiLoli: 的版本要大於實際安裝函式庫的版本,然後要大於應用 04/13 15:15 : → DaOppaiLoli: 程式的版本 04/13 15:15 : → DaOppaiLoli: 像你就是 driver 支援到 11.8,函式庫裝 11.6,然後 04/13 15:16 : → DaOppaiLoli: torch 是 11.3 04/13 15:16 : → DaOppaiLoli: 雖然還是建議都裝一樣的比較好 04/13 15:16 : → fragmentwing: 原來是剛好裝得有相容性 04/13 17:08 : → fragmentwing: 多個cuda共存是指同一張gpu嗎?這樣torch運行時會怎 04/13 17:08 : → fragmentwing: 麼選擇使用的cuda啊? 04/13 17:08 : 推 DaOppaiLoli: 在同一台機器,無論單張或多張卡,都可以有多個不同 04/15 09:01 : → DaOppaiLoli: 版本的 CUDA 函式庫共存,例如 Docker 或 Conda 就 04/15 09:01 : → DaOppaiLoli: 能做到這種多版本 CUDA 的管理,像這張圖裡 nvcc 告 04/15 09:01 : → DaOppaiLoli: 訴我們 CUDA 是 11.8 版,但 nvidia-smi 顯示的是 1 04/15 09:01 : → DaOppaiLoli: 2.2 版 04/15 09:01 nvidia-smi 跟 nvcc 看到的是不同的東西 不過確實是可以有多個不同版本的 CUDA runtime library 共存 它安裝起來看起來會像是這樣 (在 Linux) /usr/local/cuda-11.8/ /usr/local/cuda-12.1/ /usr/local/cuda -> /usr/local/cuda-12.1/ (Windows 也行) 如果要降版使用,就改變 symbolic link 或是環境變數 (PATH, LD_LIBRARY_PATH) 即可 : → DaOppaiLoli: https://i.imgur.com/XLFRpgr.jpg
Re: [問題] 新手每次跑模型時都是CPU滿載
04/15 09:01
: → DaOppaiLoli: 至於 PyTorch 是如何判斷版本我是不太確定,但他可 04/15 09:01 : → DaOppaiLoli: 能會根據 nvcc 或 nvml 之類的來判斷,其他有些函式 04/15 09:01 : → DaOppaiLoli: 庫則可能會看 CUDA_HOME 環境變數來判斷 04/15 09:01 : → RumiManiac: nvidia-smi 查到的是 CUDA driver 版本,而 nvcc 查到 05/06 13:15 : → RumiManiac: 的是 CUDA compiler 版本,真正的 CUDA runtime lib 05/06 13:16 : → RumiManiac: 是根據不同安裝方式對應不同的路徑 e.g. /usr/local/ 05/06 13:16 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.105.44 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1714974351.A.0C3.html

Re: 回文串

516
> Re: [問題] 新手每次跑模型時都是CPU滿載
DataScience05/06 13:45

16 則留言

yoyololicon, 1F
以前pytorch 也是cuda toolkit 什麼的另外載 好像2.

yoyololicon, 2F
0之後某版開始就整包裝了

retest75, 3F
借串想問一下 我看很多安裝教學都有說PyTorch跟cuda 都

retest75, 4F
要裝,而且要裝對應的版本,但我測試後發現PyTorch裝完

retest75, 5F
後沒有特別去安裝cuda /以及cuda 版本跟PyTorch不對應

retest75, 6F
這兩種狀況好像都能正常的抓到顯卡,這是什麼原因?

retest75, 7F
因為PyTorch安裝過程會自動把需要的cuda 一併安裝嗎?

lycantrope, 8F
不知道這篇在寫什麼...

RumiManiac, 9F
@yoyololicon 謝謝補充,整個打包的確是新版才有的

RumiManiac, 10F
這也是以前 conda install 裡面有 cudatoolkit 的原因

RumiManiac, 11F
@retest75 對,你講的東西就是我這篇第36行講的

RumiManiac, 12F
@lycantrope 哪邊寫得不好歡迎批評指正

retest75, 13F
原來!沒仔細看內文,感謝!

wuyiulin, 14F
原來是這樣,太神啦!解答我從碩班以來的疑惑。

DaOppaiLoli, 15F
推,感謝糾正觀念錯誤

fragmentwing, 16F

RumiManiac 作者的近期文章

116LoL
[問題] 為什麼這次 LNG 被爆破這麼嚴重
LNG vs T1 打得醜是很醜 但是被罵成這樣也太誇張了吧?似乎是 LPL 史上最嚴重的? 綜觀 LNG 整個世界賽: 1:0 C9 1:0 FNC 1:2 JDG (贏一場藍方,輸兩場紅方) 2:1 KT (紅藍方各贏一場,輸一場紅方)
12LoL
[閒聊] 會不會其實 GEN 的 BP 並不差?
前天看前兩場的第一個印象就是這 BP 太扯了吧,尤其第二場竟然能全放版本 OP 角 然後再來看各大社群討論果然想得都差不多 但如果換位思考 GEN 教練可能在想什麼: 1. Bin 共共人太強不可能放,以搶代 ban 這沒問題 2. 訓練賽
186LoL
[閒聊] 是什麼改變讓 LPL 今年如此成功
從上古時期 S3-S7 被大家認為 LOL 是韓國人的天下 如今轉變到今年歷史性的一刻: 四強四個 LPL (韓國也沒完成過) 四年四個世界冠軍 就只差一小步了 為什麼 LPL 會變得這麼強?大家討論一下巴
[閒聊] 其實今年 EU 很強吧?
EU 第三跟第四種子爛就是爛沒啥好講的 但如果仔細看 G2 FNC 這兩隊 G2: 屌打四強隊伍 WBG 小輸四強隊伍 BLG,前三場還能拿到一場 反觀 GEN 如果在這邊跟 BLG 打 BO3 會被 2:0 屌虐 為啥 BLG 沒跟 GE
更多 RumiManiac 作者的文章...