Windows Insider Previewを試してみた。WSLgがやばい - えいあーるれいの技術日記の続きです。
WSLgを使えたはいいけど、実際にはどのくらい使えるのかという疑問があったので、CUDAや表示テストも兼ねてdarknetを動かしてみました。
環境は前回と同様です。NVIDIA 470.14を使用しています。
WSL用NVIDIAドライバは以下から↓
GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developer
CUDAのインストール
WSL-Ubuntu用のCUDAが専用で用意されています。以下のリンクにアクセスして「Linux→x86_64→WSL-Ubuntu→2.0→適当なインストール方法」の順に選択してインストールを行います。今回は11.3を使用します。
CUDA Toolkit 11.3 Update 1 Downloads | NVIDIA Developer
ただし、ダウンロードしたファイルはUbuntu上に移動してから実行するようにしてください。
インストールプロセスがすべて終わったあとはwsl --shutdown
などでWSL2を再起動してください。また、GUI表示がバグった場合もWSL2の再起動してみてください。
実行
darknetの実行についてはhttps://github.com/AlexeyAB/darknetを参考にしてください。
Makefileの書き換えについては、必ず適切なGPUアーキテクチャを指定してください。直Ubuntuでは何もいじらずとも実行はできましたが、WSL2だとコンパイルはできても動かないので注意してください。
例えば RTX 2080 Ti (TU102)ならGPU=1,OpenCV=1にして次の行をコメントアウトします。
# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]
コンパイルします。
$ cd darknet/ $ make
実行します。
$ wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights $ ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights ./data/dog.jpg
darknet_rosについて
darknet_rosも動きました。環境構築は下記のリンクを参考にしてください。CMakeLists.txtのARCHは先ほどと同じように適切なものを選択してください。
うおおおおおお🔥🔥🔥🔥🔥🔥🔥
— Ar-Ray (@Ray255Ar) 2021年5月17日
darknet_rosがWindows10(WSLg)で動いたぞー-#ROS pic.twitter.com/rh5w8v1gRu
Darknet学習・実行にオススメのGPU
Darknetの学習・実行には非常に多くのGPUリソースが必要です。特にYOLO v4以降のモデルは実行だけでもVRAM 6GB以上必要になるので注意しましょう。VRAMが足りればゲーミングノートでも可です。
RTX 3060:ディープラーニングビギナーにオススメの1台。ディープラーニングはVRAM(GPUのメモリ)が最も重要なので12GBもあるRTX 3060は多少高騰気味の現市場でもオススメです。
Jetson (Xavier):組み込み用途としてはJetsonが有力です。一応RTXが搭載されたNUCやノートPCと比較して検討してみたほうが良さそうです。YOLO v4-tinyくらいなら30fps超えが可能です。