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

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

最新2024-04-15 09:01:00
留言22則留言,2人參與討論
推噓3 ( 3019 )
※ 引述《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

Re: 回文串

322
> Re: [問題] 新手每次跑模型時都是CPU滿載
DataScience04/11 14:00

22 則留言

DaOppaiLoli, 1F
cmd 查的通常會是最高支援的版本

fragmentwing, 2F
原來是這樣 我一直以為是我裝到哪個就是哪個 因為之

fragmentwing, 3F
前看人家教學時都是要看cuda版本左邊的那個數字去找

fragmentwing, 4F
相容性 原來根本可以跳過這步XD

DaOppaiLoli, 5F
一個機器也可以多個 CUDA 共存,理論上 driver 支援

DaOppaiLoli, 6F
的版本要大於實際安裝函式庫的版本,然後要大於應用

DaOppaiLoli, 7F
程式的版本

DaOppaiLoli, 8F
像你就是 driver 支援到 11.8,函式庫裝 11.6,然後

DaOppaiLoli, 9F
torch 是 11.3

DaOppaiLoli, 10F
雖然還是建議都裝一樣的比較好

fragmentwing, 11F
原來是剛好裝得有相容性

fragmentwing, 12F
多個cuda共存是指同一張gpu嗎?這樣torch運行時會怎

fragmentwing, 13F
麼選擇使用的cuda啊?

DaOppaiLoli, 14F
在同一台機器,無論單張或多張卡,都可以有多個不同

DaOppaiLoli, 15F
版本的 CUDA 函式庫共存,例如 Docker 或 Conda 就

DaOppaiLoli, 16F
能做到這種多版本 CUDA 的管理,像這張圖裡 nvcc 告

DaOppaiLoli, 17F
訴我們 CUDA 是 11.8 版,但 nvidia-smi 顯示的是 1

DaOppaiLoli, 18F
2.2 版

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

DaOppaiLoli, 20F
至於 PyTorch 是如何判斷版本我是不太確定,但他可

DaOppaiLoli, 21F
能會根據 nvcc 或 nvml 之類的來判斷,其他有些函式

DaOppaiLoli, 22F
庫則可能會看 CUDA_HOME 環境變數來判斷

fragmentwing 作者的近期文章

[問題] torch的backward是怎麼管理的?
考慮一個類似STN(Spatial Transform Network)搭配一個用上CNN層的Classfier的架構 只是STN這次是靠不同於Classifier,獨立的loss function去評價並產生loss餵給STN自己 這樣的
[問題] 圖片形變相關的模型?
如題 在想是不是有對同一地點航空照進行矯正的現成模型 比如說要研究地層下陷或地形變化 但又不能保證這次和上次拍的照片角度和光線一樣 所以在做比較前要先用之前的照片當基準做照片的修復 不知道有沒有這種模型 先謝謝各位先進了
更多 fragmentwing 作者的文章...