ここに記載の内容は、個人的にこうしているというだけで、こうするとうまくいきます、という主旨ではありません。記載内容が間違っている場合や、バージョン等によって環境依存部分が生じて、結果「こうではない」というようなこともあるかもしれません。とにかく、私こうしてますというメモに過ぎないことをご承知ください。
なお、2025年11月時点でのメモになります。
1.やりたいこと
ホストマシンがWindows11Proで、その上の仮想マシンのOSをUbuntuとして、ゲスト側でGPUを使って対応コードを動かしたい。
2.個人的な選択肢(無償でできる範囲)
Hyper-Vでの仮想マシン(Ubuntu) or WSL2上のUbuntu(22.04)。ただし、Hyper-Vゲスト機にDDAやGPUPartitioningで渡すということができませんでしたので、WSL2上のUbuntuに直接、という選択肢でやってみます。
3. 作業・走査
- ホスト側のWindows11ProにはWSL対応Driverを入れます(下記URLで”Get CUDA Driver”選択)
- https://developer.nvidia.com/cuda/wsl
- 例えば、NVIDIA GeForce RTX3080 でWindows11のようにして選択
- Game ReadyとStudioの選択になればpythonコードで計算させるなら、ということで後者を選びました(これを書いてる時に使ってるマシンには、既に566.03のドライバが入ってる状態なので、実際にはアップデートになりますが、581.57まで上がります)
- DL元はnvidiaでもセキュリティスキャンはします
- で、ホスト側でインストール(この時点で、ゲスト側でnvidia-smiすると版が上がっているけどこれはホスト側の情報が出てます。逆にいうと、WSLはホスト側と同じリソースを認識しているということではあるのですが、wslのcuda-toolkitは明示的に上げないといけないと思います。このためゲスト側で以下を実施)
- sudo apt install nvidia-cuda-toolkit
- で
- nvcc –version
- で見ますと、あまり新しくないです。で、結局
- sudo apt-get remove –purge cuda-toolkit*
- sudo apt-get autoremove
- して
- wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
- して
- sudo dpkg -i cuda-keyring_1.1-1_all.deb
- します。で、最新版は以下かな。
- sudo apt-get install cuda-toolkit-12-6
- で、パスを~/.bashrc
- export PATH=/usr/local/cuda-12.6/bin:$PATH
- source ~/.bashrc
- で、確認
- nvcc –version
- 上がっている(12.6)を確認しておく。