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

看板DataScience作者 (片翼碎夢)時間7月前 (2024/04/11 14:00), 編輯推噓3(3022)
留言25則, 3人參與, 6月前最新討論串2/3 (看更多)
※ 引述《matrixx (matrix)》之銘言: : 各位前輩好 小弟是程式(機器學習)新手 : 我在用vs code 跑程式中的模型時都會非常卡 : 開了工作管理員才發現都是CPU滿載 : 想讓vs code用gpu幫忙跑模型 : 但去載cuda時 好像看到有人說 windows 家用版沒辦法使用相關的toolkit : 想請問各位大大 有類似的經驗或解決方案嗎? : ---- : Sent from BePTT on my Samsung SM-A5460 建議你搜尋pytorch gpu 知乎 記得那邊有幾篇寫得算完整 以下是過來人的建議: 0. 首先 你要理解裝給python用的package是一回事 gpu那邊則需要安裝相應的cuda工具是另一回事 1. 你要先確定有gpu這件事(工作管理員顯示的gpu好像有一張其實是拿cpu過來用 忘記是為啥了,像我是實質8G但帳面總計16G) 2. 確認gpu的版本(請善用cmd指令)。 之後去找nvidia給的、或一些教學文會附上的對照表,找一個符合且不要太新的(大概比可以用的最新版退幾個小版本,為了穩定) 3. 下載對應的cuda執行檔並安裝 比如我用的是11.8 直接搜尋download cuda 11.8就有了 4. 去pytorch官網找previous 下載pytorch用的pip指令 !!注意,你要找的是後面會有額外下載指令(以cuda是11.8為例 後面應該會有個cu118),否則你會裝到用於cpu的版本 !!注意,gpu版的更新方式是uninstall後重裝,用一般方式重裝會忽略額外下載的部分 5. 檢查pytorch版本 print torch.__version__ 有X.X.X + cuOO.O 就算成功了 p.s. 使用gpu時要搬運資料到gpu上 一般是先用變數device = 有cuda就cuda else cpu 之後model.to(device) optim.to(device) sample 和 label 則是從dataloader拆出來後再to.(device) 另外要注意tensor本身除了type以外也有device要相同的需求 題外話,之前cmd那邊查cuda是11.8 設定找到的應用程式是11.6 torch是+cu113 這樣子竟然還能跑到想更新pytorch版本時才發現 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.107.182 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1712815245.A.08A.html

04/13 07:30, 7月前 , 1F
cmd 查的通常會是最高支援的版本
04/13 07:30, 1F

04/13 14:10, 7月前 , 2F
原來是這樣 我一直以為是我裝到哪個就是哪個 因為之
04/13 14:10, 2F

04/13 14:10, 7月前 , 3F
前看人家教學時都是要看cuda版本左邊的那個數字去找
04/13 14:10, 3F

04/13 14:10, 7月前 , 4F
相容性 原來根本可以跳過這步XD
04/13 14:10, 4F

04/13 15:15, 7月前 , 5F
一個機器也可以多個 CUDA 共存,理論上 driver 支援
04/13 15:15, 5F

04/13 15:15, 7月前 , 6F
的版本要大於實際安裝函式庫的版本,然後要大於應用
04/13 15:15, 6F

04/13 15:15, 7月前 , 7F
程式的版本
04/13 15:15, 7F

04/13 15:16, 7月前 , 8F
像你就是 driver 支援到 11.8,函式庫裝 11.6,然後
04/13 15:16, 8F

04/13 15:16, 7月前 , 9F
torch 是 11.3
04/13 15:16, 9F

04/13 15:16, 7月前 , 10F
雖然還是建議都裝一樣的比較好
04/13 15:16, 10F

04/13 17:08, 7月前 , 11F
原來是剛好裝得有相容性
04/13 17:08, 11F

04/13 17:08, 7月前 , 12F
多個cuda共存是指同一張gpu嗎?這樣torch運行時會怎
04/13 17:08, 12F

04/13 17:08, 7月前 , 13F
麼選擇使用的cuda啊?
04/13 17:08, 13F

04/15 09:01, 7月前 , 14F
在同一台機器,無論單張或多張卡,都可以有多個不同
04/15 09:01, 14F

04/15 09:01, 7月前 , 15F
版本的 CUDA 函式庫共存,例如 Docker 或 Conda 就
04/15 09:01, 15F

04/15 09:01, 7月前 , 16F
能做到這種多版本 CUDA 的管理,像這張圖裡 nvcc 告
04/15 09:01, 16F

04/15 09:01, 7月前 , 17F
訴我們 CUDA 是 11.8 版,但 nvidia-smi 顯示的是 1
04/15 09:01, 17F

04/15 09:01, 7月前 , 18F
2.2 版
04/15 09:01, 18F

04/15 09:01, 7月前 , 19F

04/15 09:01, 7月前 , 20F
至於 PyTorch 是如何判斷版本我是不太確定,但他可
04/15 09:01, 20F

04/15 09:01, 7月前 , 21F
能會根據 nvcc 或 nvml 之類的來判斷,其他有些函式
04/15 09:01, 21F

04/15 09:01, 7月前 , 22F
庫則可能會看 CUDA_HOME 環境變數來判斷
04/15 09:01, 22F

05/06 13:15, 6月前 , 23F
nvidia-smi 查到的是 CUDA driver 版本,而 nvcc 查到
05/06 13:15, 23F

05/06 13:16, 6月前 , 24F
的是 CUDA compiler 版本,真正的 CUDA runtime lib
05/06 13:16, 24F

05/06 13:16, 6月前 , 25F
是根據不同安裝方式對應不同的路徑 e.g. /usr/local/
05/06 13:16, 25F
文章代碼(AID): #1c5toD2A (DataScience)
文章代碼(AID): #1c5toD2A (DataScience)