「明日までにYOLOがGPUで動く仮想環境を作っといてね〜」
……えっ? ちょっと待って。
研究室に配属されて早々、教授からこんな呪文のような言葉を言い残され、パニックになっている高専生や大学生の皆さんこんにちは。
北海道大学の大学院でAI(画像処理)の研究をしているヒグマです。
ネットで「YOLO 環境構築」と検索すると、
pip install -U ultralytics これ入れるだけで大丈夫!
の1行だけで終わっている記事がたくさん出てきますよね。
でも、それを鵜呑みにして実行すると「動くには動くけど、GPUが1ミリも使われておらず、CPUで激重の推論をしているだけ」という悲劇が普通に起こります。
さらに、RTX 50シリーズ(Blackwell世代)を使っている場合、古いPyTorchやCUDA対応ビルドのままだと「GPU実行時にエラーで止まる」ことがあります(私も盛大にハマりました)。
この記事では、Anacondaで環境をきれいに分離しつつ、Windows 11 + RTX 5060 + Python 3.11 + CUDA 12.8系のPyTorchで、YOLO26をGPU実行できた環境構築手順を解説します。GPU性能を常に最大まで使い切ることを保証する記事ではなく、GPUが正しく認識され、CUDAで推論できる状態を確認するための再現メモです。
今回の構築環境
OS: Windows 11
GPU: NVIDIA GeForce RTX 5060(筆者の実測環境。RTX 50シリーズ向けの構成ですが、全機種での動作保証ではありません)
conda: 26.1.0
対象: YOLO26
PyTorch CUDAビルド: cu128
実動作確認済みバージョン
| 項目 | 確認内容 |
|---|---|
| OS | Windows 11 |
| GPU | NVIDIA GeForce RTX 5060 |
| Python | 3.11 |
| conda | 26.1.0 |
| PyTorch CUDAビルド | cu128 |
| YOLOモデル | yolo26n.pt |
| NVIDIA Driver | 記事作成時の具体的なバージョンは未記録。使用するCUDA / PyTorch構成に対応したドライバが必要です。 |
| torch / torchvision / ultralytics | 記事作成時の具体的なバージョンは未記録。 |
CUDA 12.8系を使う場合でも、必要なNVIDIA DriverはCUDA 12.8 GA / Update 1などで表記が変わります。自分の環境ではNVIDIA公式のCUDA Release Notesで対応ドライバを確認してください。
先に結論(忙しい人向け・コピペ用)
仕組みは後回しにして、まず筆者と近い構成でGPU実行を確認したい人はこの4ステップを実行してください。
# 1. 環境を作って入る conda create -n yolo26 python=3.11 -y conda activate yolo26 # 2. PyTorchを「先に」CUDA版で入れる(★超重要) # ※ RTX 50シリーズでは cu128 以降のPyTorch構成が必要になる場合があります pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128 # 3. GPUが認識されているか確認する(まずTrueが出るかを見る) python -c "import torch; print(torch.cuda.is_available())" # 4. 最後にYOLO本体を入れる pip install -U ultralytics
ポイントは「PyTorchを先に入れる」「condaではなくpipで入れる」「RTX 50系はcu128を指定する」の3つです。理由は順番に解説します。
ステップ0: 自分のGPUとドライバを確認する
まずはターミナル(WindowsならコマンドプロンプトやPowerShell)を開いて以下のコマンドを打ちます。
nvidia-smi
⚠️ 最初の罠:この数字の意味、勘違いしてませんか?
右上の
CUDA Version: 10.1 などの数字は「インストール済みのCUDA Toolkitのバージョン」ではありません。 あなたのPCに入っているNVIDIAドライバが対応できる「CUDAの最大バージョン」です。
PyTorchを使うだけならNVIDIAのサイトから数GBもある重いCUDA Toolkitをわざわざインストールする必要はありません
※PyTorchの中に必要なものが全部同梱されているからです。
ここが 12.8 以上 になっていれば今回の cu128 のPyTorchがそのまま使えます。
ステップ1: Anacondaで環境を分離する
conda create -n yolo26 python=3.11 -y
conda activate yolo26base 環境に直接パッケージをインストールするのは絶対にやめましょう。
環境が壊れたときに取り返しがつきません。
Pythonのバージョンは最新すぎると思わぬライブラリの非対応を踏むことがあるため、少し枯れた3.11あたりを指定しておくのが無難です。
ステップ2: PyTorchをCUDA版で入れる(鬼門)
🛑 なぜ「先」に入れる必要があるのか?
pip install -U ultralytics をいきなり実行すると、依存関係として自動的にPyTorchがインストールされます。
しかしWindows環境などではこの時に「CPU版」のPyTorchが勝手に入ってしまうことが多々あります。
見た目はエラーが出ず推論も普通に動いてしまうため、「なんか異常に遅いな?」と気づくまでに時間を無駄にします。
だからこそ自分でCUDA版PyTorchを明示して先に入れ、その後にYOLOを入れるという順番にしています。
🛑 RTX 50シリーズ(Blackwell)を使っている人へ
ここがこの記事の構成で重要なポイントです。
RTX 5060 / 5070 / 5080 などのGPUはsm_120という新しい計算アーキテクチャになっています。
古いPyTorchやCUDA対応ビルドを入れると、以下のようなエラーでGPU実行に失敗する場合があります。
NVIDIA GeForce RTX 5060 with CUDA capability sm_120 is not compatible...
RuntimeError: CUDA error: no kernel image is available for execution on the device少なくとも筆者のRTX 5060環境では、これを避けるためにCUDA 12.8ビルド(cu128)のPyTorchをインストールしました。
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
(※「Anacondaなんだから conda install じゃダメなの?」と思うかもしれませんが、PyTorch公式のGet Startedはpipで環境に合うCUDAビルドを選ぶ流れが中心です。
この記事では、環境づくりはconda、PyTorchとUltralyticsの導入はpip、という役割分担にしています。)
ステップ3: GPUが本当に効いているか確認する
YOLOを入れる前に、PyTorch単体でちゃんとGPUが動くかテストします。Pythonを起動して以下を実行してください
import torch print(torch.__version__) # 例: 2.x.x+cu128 print(torch.cuda.is_available()) # True になること! print(torch.cuda.get_device_capability(0)) # RTX 50系なら (12, 0) # 【重要】実際に計算を回して落ちないかテスト x = torch.randn(1000, 1000, device="cuda") print((x @ x).sum())
is_available() が True でも、実行時に落ちるパターンの罠があるので、最後の行列計算まで通れば本物です!
ステップ4: ultralyticsをインストールして実測!
ここまで来て、ようやくYOLO本体を入れます。
pip install -U ultralytics
さっそく、公式のバスの画像を使って推論スピードを測ってみましょう。
import time
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
img = "https://ultralytics.com/images/bus.jpg" # ローカルの画像でもOK
# CPUとGPUで速度を比較
for dev in ["cpu", 0]:
model(img, device=dev, verbose=False) # ウォームアップ
start = time.time()
for _ in range(20):
model(img, device=dev, verbose=False)
print(f"{dev}: {(time.time() - start) / 20 * 1000:.1f} ms/枚")【ヒグマの環境での実測結果】
| デバイス | 推論時間 |
|---|---|
| CPU(Intel Core Ultra 7) | 約 30.0 ms |
| GPU(RTX 5060) | 約 3.0 ms |
一目瞭然ですね。GPUを正しく設定できれば、CPUの10倍以上の圧倒的なスピードで処理できます。
リアルタイムの動画認識をやるなら、このGPU環境構築は絶対に避けて通れません。
まとめ
nvidia-smiのCUDA Versionは「ドライバの上限」。重いCUDA Toolkitは別途入れなくてヨシ!YOLOを入れる前に、PyTorchをCUDA版で先に入れる。
筆者のRTX 5060環境では cu128構成でGPU実行を確認。
pip install -U ultralyticsだけで始めると、環境によってはCPU版PyTorchのまま進んでしまうことがある。
GPUやドライバに合わせて、PyTorch公式のGet Startedで対応するCUDAビルドを確認してください。
これから研究でゴリゴリAIを回していく皆さんの、最初のつまずきを無くせたら嬉しいです!