PCを新調したので開発周りの環境を整えるメモ【WSL2+VSCode+Python(PyTorch)】

はじめに
--
7年使い倒したGPUも積んでいないノートPCではあまり負荷のかかることができなかったので、満を持してそこそこするノートPCを購入しました。
新しいPCには極力無駄なものを入れたくないので、慎重に環境を整えていきたいところです。
とりあえず、PCの初期設定直後に最低限入れておきたいツールと、WSL2+VSCode+Pythonの環境構築およびPyTorchにGPUを認識させるところまでに必要な手順を自分用にまとめることにしました。初投稿にふさわしい内容だ。

環境
--
- PC : Legion Pro 5 (ノートPC）
- OS : Windows 11 Home (22H2)
- CPU: Corei7-13700HX
- RAM: 16 GB
- GPU: GeForce RTX 4070

PCの設定系
--
とりあえず、ファイルエクスプローラーの設定を確認しておきます。と言いつつ、Windows11のUIに慣れないのでどこにあるのかすぐに見つけられませんでした...。
上のバーにある`...`の`オプション`を選択すると、見慣れたウィンドウが開くので`表示`タブから下記の箇所だけ変更しました。間違って変なファイル実行してしまわないようにするためです。

- `隠しファイル、...を表示する`の方にチェック
- `登録されている拡張子を表示しない`のチェックを解除

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964449/ba09c65b-5f3f-2970-7ebe-6c42457e7a83.png)

あと、コピペが直近でコピーしたものしか貼り付けられないのは不便なので、クリップボードの設定もマストですね。これもUIが変わってどこにあるのかわからなかったので、Windowsの設定で`クリップボード`と検索しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964449/b3170797-d4ff-c0eb-d977-acf5401e38e1.png)


ツールのインストール
---
最初にPCをセットアップするときに必ず入れているのは、マウス操作拡張ツールの「かざぐるマウス」とテキストエディタの「サクラエディタ」ですね。それぞれ細かい設定ができますが、個人的に最低限変更しておきたいところだけまとめておきます。あと、本題の「VSCode」も。

- かざぐるマウス（[リンク](https://www.gigafree.net/utility/mouse/kazaguru.html)）
  - マウスジェスチャーの設定を変更
    - 「↑」を`上の階層`に
    - 「←→」を`最近閉じたページ`に
    - 「↑←」を`前のタブ`に
    - 「↑→」を`次のタブ`に
- サクラエディタ（[リンク](https://github.com/sakura-editor/sakura/releases)）
  - 共通設定のタブバーを変更
    - `タブバーを表示する` にチェック
    - `タブの外観`の`等幅`にチェック、`閉じるボタン`を`常に表示`に変更
- VSCode（[リンク](https://code.visualstudio.com/download)）
  - 拡張機能をインストール
    - Python
    - Japanese Language Pack for VSCode
    - Remote Development
    - Python Docstring Generator
  - なぜか日本語にならない場合は、コマンドパレットに`configure display language`と入力して
    日本語を選択する（VSCodeを再起動する）

WSL2のセッティング
---
前のPCでWSLのセッティングをした時に比べると、かなり楽になってて驚きました。GUI環境を作るためにVcXsrv入れてましたが、WSLgが標準的に利用できるようになってるんですね。特にバージョン指定等しなければ、Ubuntu 22.04.2 LTSがインストールされました。
参考（https://chigusa-web.com/blog/wsl2-win11/）
- Windows Power Shellを管理者として実行
- `wsl --install`を実行後、再起動
- 勝手にUbuntuが起動するため、アカウントを作成
- （`sudo apt install x11-apps -y`を実行し、`xeyes`等を実行してGUIアプリを起動できるか確認）

GPUのセッティング
---
ここでグダるのが一番怖かったんですが、今回はスムーズにいけました。
参考（https://zenn.dev/utahka/articles/ed881a568246f4）
- [ここ](https://developer.nvidia.com/cuda/wsl)からドライバーを入手してインストール
- [ここ](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local)からCUDAのインストール
- [ここ](https://developer.nvidia.com/rdp/cudnn-download)からcuDNNを入手してインストール
- ターミナルで`nvidia-smi`と`nvcc -V`を実行してGPUを認識できているか確認
  - nvccは/usr/local/cuda12.1/binにあるため。PATH環境変数に追加しておく必要がある
  - 毎回追加するのは面倒なのでhomeディレクトリの.bashrcの最後に`export PATH=$PATH:/usr/local/cuda12.1/bin`を追加しておく

PyTorchでGPUを認識させる
---
環境構築時は、毎回GPUドライバとcudaとcuDNNとPyTorchのバージョン対応を調べまくって、結局よくわからなくなります...。まぁ、旧バージョンで実装されているOSSとかを動かす段階で複数バージョンを扱ったりするとエラーを吐くんでしょうが、それはその時に対応するということで、いったんここまで動作確認できたら良しとします。
- `python3 -m venv env`で仮想環境を作成し、`. env/bin/activate`でアクティベート
  - Ubuntu22.04ではデフォルトだと警告が出る(?)
  - 先に`sudo apt update`、`sudo apt install python3.10-venv`を実行しておくと警告が出なくなる(?)
- `pip install torch torchvision`を実行
- pythonで下記スクリプトを実行し、Trueが出力されたらたぶんOK
```python:hoge.py
import torch
print(torch.cuda.is_available())
```

さいごに
--
せっかく奮発してそこそこするPCを購入したわけなので、趣味でいろいろ開発したりしていきたいですね。新年度も始まったことですし、心機一転頑張ります。今回は初投稿ということで、投稿するボタンを押下するのに謎の緊張感がありますが、今後も定期的に何か発信して慣れていこうと思います。