おニューのPCのセットアップ
おニューのPCを購入したのでセットアップを行う。
スペックは、
- gpu: nvidia geforce rtx4060 laptop
- cpu: Intel® Core™ i7-14650HX
- メモリ: 64GB
RAMが64GBあるのは、主に大きいサイズのデータ分処理を行わせるため。(あとは仮想環境の複数の作成とか)
gpuは簡易的に画像やテキストの学習のテストを行う用
本格的な処理はkaggle kernelやcolabを利用する予定。
せっかくならゲームとかもやってみたいかも
pytorchでcudaを動かす
anacondaやvscodeをインストール。
次にpytorchでcudaを認識できるようにする。
インストール方法は以下を参照し、それ通りやればうまくいった。
必要なものは、以下の3つ
NVIDIA Driver
nvidia-driverはPC購入時にすでにインストール済みだったので必要なし。
一応最新版にアップデートした。
CUDA-Toolkit
cuda-toolkitは何も考えずに12.6のバージョンをインストール。
2024年11月10日時点では、pytorchのインストールはcuda=12.4が限界だが、インストール後ライブラリの読み込み時に問題なく認識された。
cuDNN
インストールするときにversionがwindows10しかないが、windows11でも対応可能なので大丈夫。
chatgpt(検索なし)でも聞いたが「実際にはWindows 11でも動作することが確認されています」とだった。
よく知られていることなのか?
実用感
早速適当に画像の学習をしてみる。
過去に実験していたものを1epochの学習時間で比較すると、
- 過去のpc(cpu: )
- 約26分40秒
- 過去のpc(cpu: )をIntel® Extension for PyTorchで最適化
- 約23分30秒
- kaggleのcpu
- 約40分
- kaggleのgpu(P100)
- 約1分10秒
- 今回のPC※(laptop 4060)
- 約1分
※ 「今回のPC」で計測しているcpu・gpuの学習速度は環境が同じではないので、厳密に正確な速度比較ができているわけではない。ここは後程実験します。
前のcpuで1epoch27分かかっていたものが、1epoch1分で終わるようになった。
一応kaggleのkernelのgpuよりも早くなっているが、使用可能なRAMのサイズ、環境が完全に同じでないなどを考慮すると、一概にlaptop 4060のgpuが良いとは言えるわけではなさそうなので、使い分けが大事。厳密には環境が違うので正確な比較はdockerなどを使って後程行う。
しかしファンの音が過去のPCと比べると圧倒的にうるさい...
ドアや仕切りを開けていれば、隣の部屋でも十分に聞こえるくらいには大きい。
当初からわかっていた部分ではあるが、改めてリアルで聞くと気になる部分とはなった。(買ってみないとわからない)
問題点
現時点で気になること。
-
nvidia-smi
でプロセスごとの消費メモリが確認できない。N/A
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 555.99 Driver Version: 555.99 CUDA Version: 12.5 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4060 ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 56C P0 57W / 85W | 759MiB / 8188MiB | 67% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 22968 C ...anaconda3\envs\python312\python.exe N/A |
+-----------------------------------------------------------------------------------------+
- ドライバを入れた後からプリインストールされているダッシュボードでgpuの温度や使用率が確認できなくなった
- windowsから直接DataLoaderを使う場合、
num_workers=0
でないとDataLoaderが実行できない。(windows特有の問題?)
windows上の環境で、DataLoader(num_workers=2)
のように0以上の値を選ぶと以下のエラーが発生する。
RuntimeError: DataLoader worker (pid(s) 3148, 20520) exited unexpectedly windows
解決策は、num_workers=0にするのみ。
おそらくwindows環境上でpytorchのDataLoaderのnum_workersを複数指定して実行する方法はないと思われる。
windowsとlinuxのcpuのプロセスの仕様の違いからこのようなエラーになると思われる。
参考: