Open5

おニューのPCのセットアップ

tttttttttttttttttttt

おニューのPCを購入したのでセットアップを行う。

https://www.gigabyte.com/jp/Laptop/AORUS-16X--2024#kf

スペックは、

  • gpu: nvidia geforce rtx4060 laptop
  • cpu: Intel® Core™ i7-14650HX
  • メモリ: 64GB

RAMが64GBあるのは、主に大きいサイズのデータ分処理を行わせるため。(あとは仮想環境の複数の作成とか)

gpuは簡易的に画像やテキストの学習のテストを行う用

本格的な処理はkaggle kernelやcolabを利用する予定。

せっかくならゲームとかもやってみたいかも

tttttttttttttttttttt

pytorchでcudaを動かす

anacondaやvscodeをインストール。

次にpytorchでcudaを認識できるようにする。

インストール方法は以下を参照し、それ通りやればうまくいった。
https://qiita.com/gomi1994/items/36d5c75a29231fc3c9d7

必要なものは、以下の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でも動作することが確認されています」とだった。

よく知られていることなのか?

tttttttttttttttttttt

実用感

早速適当に画像の学習をしてみる。

過去に実験していたものを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と比べると圧倒的にうるさい...

ドアや仕切りを開けていれば、隣の部屋でも十分に聞こえるくらいには大きい。

当初からわかっていた部分ではあるが、改めてリアルで聞くと気になる部分とはなった。(買ってみないとわからない)

tttttttttttttttttttt

問題点

現時点で気になること。

  • 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特有の問題?)
tttttttttttttttttttt

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のプロセスの仕様の違いからこのようなエラーになると思われる。

参考:

https://hashicco.hatenablog.com/entry/2023/03/07/224638