看板 DataScience 關於我們 聯絡資訊
※ 引述《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
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
DaOppaiLoli: https://i.imgur.com/XLFRpgr.jpg 04/15 09:01
DaOppaiLoli: 至於 PyTorch 是如何判斷版本我是不太確定,但他可 04/15 09:01
DaOppaiLoli: 能會根據 nvcc 或 nvml 之類的來判斷,其他有些函式 04/15 09:01
DaOppaiLoli: 庫則可能會看 CUDA_HOME 環境變數來判斷 04/15 09:01