データサイエンス

Windows11 + WSL2でPyTorch GPU環境を構築する完全ガイド|RTX 50xxシリーズ対応

Windows11 + WSL2でPyTorch GPU環境構築 データサイエンス

はじめに:GPU付きPCを買ったのに、すぐ使えない問題

「ちょっと良いGPUを積んだパソコンを買えば、すぐに機械学習が速くなる」——私もそう思っていました。

ところが実際に触ってみると、GPUはあるのに PyTorch が CPU しか見てくれなかったり、CUDA が入っているのか分からなくなったり、Windows と Ubuntu と VS Code の関係がこんがらがったりと、想像以上につまずきます。昨日まで動いていたコードが、理由も分からず急に動かなくなることもありました。

この記事では、Windows11 + VS Code + WSL(Ubuntu) + PyTorch + 新しめの NVIDIA GPU(例:RTX 5070 Ti) という環境で、GPUを使った機械学習が実際に動くところまでを、私自身がハマったポイント込みで整理します。同じところで悩む人が一人でも減れば嬉しいです。

この記事の想定読者

  • 想定レベル: プログラミング初学者〜初心者
  • お悩み: 「環境構築の記事は『わかっている人向け』ばかりで、根本的な仕組みがわからない」
  • 解決したいこと: Windows 11でWSL2を使い、PyTorchから最新GPU(RTX 50シリーズなど)を確実に認識させる
  • 前提知識: 不要です。アプリ間の「つながり」から丁寧に図解します。

全体像:まずは構造を理解する

最初に、全体の関係を一言でまとめます。

GPUは Windows 側が管理し、Ubuntu(WSL) はそれを借りて使う

Windows 11 では NVIDIA ドライバが GPU を直接管理しており、WSL 上の Ubuntu はそれを経由して GPU を利用します。VS Code はあくまで作業用のエディタで、どの OS 側に接続しているかによって、見えている Python やライブラリが変わります。

この構造を理解していないと、Ubuntu に CUDA を入れようとして環境を壊したり、Windows 側のドライバ不足に気づかず延々と悩んだりしがちです。ここを最初に押さえておくことが、遠回りをしない最大のコツです。

この5層構造をイメージ図にするとこうなります


ステップ1:Windows側の準備(最重要)

NVIDIA ドライバを最新にする

まず確認すべきは Windows 側の NVIDIA ドライバ です。

  • GeForce Experience から最新版を入れる
  • RTX 50xx 系など新しめの GPU は特に最新版必須

ここが古いと、WSL から GPU が一切見えません

確認ポイント

Windows の PowerShell で以下を実行します。

nvidia-smi

GPU名とドライババージョンが表示されれば OK です。

ここでエラーが出る場合、WSL以前の問題です。


ステップ2:WSL2 と Ubuntu の準備

WSL2 を使う(WSL1 は不可)

Windows 11 では基本的に WSL2 が使われますが、念のため確認します。Windows の PowerShell で以下を実行します。

wsl –list –verbose

Ubuntu の VERSION が 2 になっていれば OK。

Ubuntuそのものが入っていないとエラーになります。

その場合は以下のコードを実行して、ubuntuをインストールしましょう。なお、このコードでは安定性が高く、長期サポート(LTS)の Ubuntu 22.04 がインストールされます

wsl –install -d Ubuntu-22.04

Ubuntu を最新状態にする

Ubuntu に入ったら、まず更新します。

sudo apt update

sudo apt upgrade -y


ステップ3:CUDA を入れない(重要)

ステップ3:Ubuntu側には「ドライバ」を入れない(超重要!) ここが今回いちばん強調したいポイントです。 初心者がやりがちなのが、「GPUが動かない=UbuntuにもNVIDIAのドライバを入れなきゃ!」と思って、Linux用のドライバをインストールして環境を壊してしまうこと。

WSL2では、Windows側に入れたドライバがそのままUbuntuにも「透けて」見えています。 「Ubuntu側にはNVIDIA ドライバも CUDA Toolkit(nvcc など)も入れない。CUDAも、PyTorchが自分で持っているものを使うから手動インストールは不要」。これがWSL2での鉄則です。


ステップ4:Python 仮想環境を作る

環境を壊さないために、必ず仮想環境を使います

以下のコードをUbuntuで実行します。Ubuntuにリモート接続したvscodeのターミナルで実行しても構いません。

python3 -m venv venv

source venv/bin/activate

sudo apt install -y python3-pip python3-venv

以降、プロンプトに (venv) が付いていることを確認します。


ステップ5:PyTorch(CUDA対応版)を入れる

ここもハマりやすいポイントです。

インストールの考え方

  • CUDA のバージョンは 自分で決めない
  • PyTorch が用意している CUDA 版を使う

以下のコードをUbuntuで実行します。

例:CUDA 12.1 対応版

pip install torch torchvision torchaudio \

  –index-url https://download.pytorch.org/whl/cu121

RTX 50xx 系では、公式が案内している最新の CUDA 対応版(cu121 以上)が無難です。上記は記事執筆時点のコードですが、必ず PyTorch公式サイト で最新の Run Install Command を確認してください


ステップ6:GPU が見えているか確認

Python を起動して、以下を実行します。

import torch

print(torch.cuda.is_available())

print(torch.cuda.get_device_name(0))

  • True が出る
  • GPU 名(例:RTX 5070 Ti)が表示される

これで GPU が使える状態 です 🎉


VS Code との連携でハマりやすい点

VS Code 自体は Windows でも Ubuntu でも起動できますが、どちら側で起動しているかによって、使われる Python 環境が変わります。おすすめは、Ubuntu のターミナルから code . と入力して起動する方法です。

この方法で起動すると、VS Code が WSL に正しく接続された状態になり、仮想環境やインストールしたライブラリのズレが起きにくくなります。画面左下に “WSL: Ubuntu” と表示されているかを確認する習慣をつけると安心です。

Jupyter を使う場合も同様で、コードを書いている場所と、実際に実行している Python が一致しているかが非常に重要です。カーネル選択を意識せずに進めると、「動かない理由が分からない」状態に簡単に陥ります。


実体験:今回やらかした失敗談(かなり重要)

ここからは、今回の作業で実際に何度も混乱したポイントです。

「あるある」ですが、知らないと本当に時間を溶かします。

① VS Code が Windows 側で起動していた

一番最初にハマったのがこれでした。

  • Ubuntu で作業しているつもり
  • でも実は Windows 側の VS Code が起動していた

この状態だと、

  • Python が Windows のものになる
  • 仮想環境が見えない
  • GPU が使えない(当然)

という、意味不明な挙動になります。

回避策

  • Ubuntu のターミナルで code . から起動する
  • VS Code 左下に “WSL: Ubuntu” と表示されているか必ず確認

これでVscodeのUbuntu接続漏れトラブルは防げます。


② Jupyter のカーネルが Windows 側の Python だった

VS Code 上で Jupyter を使う場合、

  • vscodeのターミナルは Ubuntu
  • でも カーネルは Windows Python

という地獄の状態が普通に起こります。

このときの症状は、

  • torch は入っているはずなのに import error
  • torch.cuda.is_available() が False

など、「説明がつかない」挙動です。

回避策

  • 仮想環境に ipykernel を入れる
  • カーネル選択で (venv) が付いたものを選ぶ
  • おかしいと思ったら、まずカーネル名を見る(赤丸が使用中のカーネル)

③ torch を別の仮想環境に入れていた

これもやりました。

  • venv を作ったつもり
  • でも実際に pip install torch したのは別の環境

結果として、

  • Python では torch が見えない
  • GPU が使えない
  • 何を直せばいいのか分からない

という状態になります。

回避策

  • which python で今の Python を確認
  • pip -V で pip がどの環境を指しているか確認
  • 不安なら仮想環境を作り直す(これが一番早い)

④その他よくあるトラブル集

torch.cuda.is_available() が False

  • Windows の NVIDIA ドライバが古い
  • CPU 版 PyTorch を入れている

nvidia-smi が Ubuntu で動かない

  • WSL2 では正常(動かない場合もある)
  • Windows 側で動いていれば問題なし

昨日まで動いていたのに壊れた

  • pip install で依存関係が壊れた可能性
  • 仮想環境を作り直すのが最短ルート

まとめ:GPU 機械学習の現実

GPU を買えば終わり、ではなく

  • Windows
  • WSL
  • Ubuntu
  • Python
  • PyTorch

という 5層構造 を意識する必要があります。

一度仕組みが分かれば、次からはかなり楽になります。

この記事が「GPU買ったのに動かない…」という最初の壁を越える助けになれば幸いです。

コメント

タイトルとURLをコピーしました