3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSL2のCUDAのnvidia-smiからGPU使用率を得る裏技を発見

Last updated at Posted at 2021-11-25

概要 - Abstract

WSL2でのCUDAにはある重大な課題があります。
NVIDIAの佐々木さん ( @ksasaki ) の記事にあるように、WSL2からnvidia-smiコマンドからGPU使用率を確認することはできません。

(2021/11/25現在)

上の記事では、Windows側からnvidia-smiコマンドを叩いてGPU使用率をロギングする策が紹介されています。しかし、WSL2とNative Windowsの行き来が必要なので、実用上の不便さは否めません。

この度は、実はWSL2の/mnt/cにはCドライブがマウントされていること、およびWSL2がWindowsのバイナリを実行できること、の2点に着目して、linux内からnvidia-smi経由でGPU使用率を扱う裏技を思いついたので、共有しつつ、その便利さを述べていきます。

結論 - Conclusion

1. nvidia-smi.exeのWindows上でのパスを確認する

Powershell
> get-command nvidia-smi

2. WSL2からWindowsのnvidia-smiの実行ファイルのパスを指定する

/mnt/c/に続けて1.にて得られたパスをlinuxのパスの形式で打ち込みましょう。
(以下のbarとかfooはあくまで例なので、パスは各自書き込んでください。)

WSL2
"/mnt/c/bar/foo/nvidia-smi.exe"

驚くべきことに、なんとこれにより、WSL2のlinuxターミナルからWindowsにインストールされている方のnvidia-smiコマンドを呼び出せるのです。それはまさに、WSL2のlinuxターミナルからGPU使用率が見えることを意味します。

驚きは止まらない

しかも、その出力結果は、grepやパイプラインなど、linuxのターミナルを普段使いするように扱いと加工ができるのです。

WSL2
"/mnt/c/bar/foo/nvidia-smi.exe" > ./log.txt

しかも、それには何の違和感もなく、linuxでnvidia-smiを扱うように、パラメータを与えることもできるのです。

例えば、以下の記事で登場する佐々木さんお好みのWindows側でのロギング方法を見てみましょう。

PowerShell
C:\WINDOWS\system32>nvidia-smi --loop=2 -i 0  --format=csv --query-gpu=timestamp,utilization.gpu,clocks.sm,power.draw,temperature.gpu

適切にパスを指定することにより、上のコマンドが、WSL2のlinuxターミナルから全く同じように扱えるのです!

WSL2
"/mnt/c/bar/foo/nvidia-smi" --loop=2 -i 0  --format=csv --query-gpu=timestamp,utilization.gpu,clocks.sm,power.draw,temperature.gpu

さらなる実用上の工夫の余地も

とはいえnvidia-smi.exeのパスを毎回指定するのは面倒なので、bashエイリアスを用いてmy-nvidia-smiとか適当な名前をつけて扱うのもいいかもしれませんね。

まあ、それも面倒なので、私は場合はctrl+rで履歴から繰り返してますが。。。

WSL2におけるnvidia-smiコマンドの問題は修正予定

NVIDIAの中の人の佐々木さん曰く、

開発チームは認識済みで修正の予定

とのことですので、私の書いているこの記事は、そのうち不要になることでしょう!(と願いたい🤲)

感想

中の人から直接耳寄りの情報がQiitaで手に入るとは、いい時代になったものですね。

お読みいただきありがとうございました。それでは、より良きGPUライフを!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?