⚠️RTX50(Ada Lovelace)でkohya_ssが動かない推察される原因と解決方法

RTX5000番台(RTX50、Ada Lovelace)でkohya_ssが動かない事例が多数見受けられましたので、推察される原因と解決方法について記事にします。


推察される原因:PyTorchのCUDA互換性 or GPUドライバ周りの問題

① PyTorch(またはxformers)がGPUアーキテクチャに未対応

  • RTX 5000 Ada世代(例:RTX 5000 Ada Generation)は、Ada Lovelaceアーキテクチャ

  • 一部のPyTorchビルドやxformersバイナリはAda世代のcompute capability(8.9など)に対応していない

  • その場合、次のようなエラーが発生しやすい

    1. RuntimeError: CUDA error: invalid device function

    2. xformers not compiled with support for SM_89

対策:torch, torchvision, xformers を最新版にアップグレード。

pip install --upgrade torch torchvision torchaudio xformers --extra-index-url https://download.pytorch.org/whl/cu118

tacktako氏によると「xformersを使わない」という見解がありました。

② NVIDIA GPUドライバのバージョンが古い

  • RTX 5000 Adaなどは最低でもドライバ 525〜530番台以上が必要です。

  • 旧バージョンでは、PyTorchからGPUが正しく認識されず、エラーが発生する場合があります。

対策:NVIDIA APPなどを利用して最新のドライバを適用する。

③ CUDA環境とPyTorchのバージョンが噛み合っていない

  • CUDA 11.7, 11.8, 12.1 など、GPUに最適なバージョンとPyTorchが不一致だと動作不良が起きます。

  • kohya_ss GUIはPyTorchのビルド依存が強く、CUDA mismatchによってランタイムエラーになることも。

📌 対策:PyTorch公式のバージョン構成表に従い、適切な組み合わせを導入します。

PyTorchとは?
PyTorchは、主に深層学習(ディープラーニング)向けに開発された、オープンソースの機械学習ライブラリです。

PyTorchのバージョン確認方法は下記をコマンドプロンプトで実行。

pip --version

自身のPCにインストールしたCUDAバージョンの確認します。Pythonを起動して以下を実行します。(コマンドプロンプトではありません!

import torch
print(torch.version.cuda)

コマンドプロンプトで確認する方法もあるのですが、見つけられませんでした。環境変数というものが原因だそうですが、原因を解決するよりもPythonで確認したほうが早いです。

CUDA 12.8だとわかりました

ただ2025年5月12日段階だと、このバージョンに対応したPyTorchのバージョンがないため、Nightlyビルドという開発中バージョンを使うしか有りません。

ただこのNightlyビルドはかなりチャレンジな選択なのでオススメしません。私は現在この問題が発生していないので再現もできません。

PyTorchの互換性問題について名無しん氏が見解を出しています。どうやら警告を無視してインストールを継続して解決したとあります。

④ VRAMは増えていても、xformersなどの最適化が不完全

  • RTX 3060(12GB)はVRAMは多いが、速度は控えめ。

  • RTX 5000 Adaは高速だが、新しいアーキテクチャで、xformersやbitsandbytesが正しく最適化されていないと失敗するケースあり。

📌 対策

  • xformers をビルドし直す、あるいはバイナリからインストールし直す。

  • bitsandbytes のエラーが出る場合は --use-cpu bnb フラグで一時回避も可能。


確認すべき点チェックリスト

  • GPU認識状況の確認

    • コマンド: nvidia-smi

    • 確認内容: GPUが正しく認識されているか、ドライバーのバージョンは適切か

  • PyTorchとCUDAの対応状況

    • コマンド: python -c "import torch; print(torch.version.cuda, torch.cuda.get_device_name(0))"

    • 確認内容:

      • PyTorchがCUDAに対応しているか

      • GPUがPyTorchから正しく認識されているか

  • xformersバージョンの確認

    • コマンド: pip list | grep xformers

    • 確認内容: xformersがインストールされているか、バージョンは適切か

  • kohya_ssのエラー文の確認

    • 確認方法: エラーログ全文を精査

    • 特に注目するエラー:

      • RuntimeError

      • AssertionError

    • 確認内容: エラーの詳細内容、発生箇所、原因の特定

  • その他確認事項

    • CUDAとPyTorchのバージョン互換性

    • 依存ライブラリのバージョン衝突

    • GPUメモリ不足の有無


結論

新しいRTX 5000(Ada Lovelace)のアーキテクチャに対し、PyTorchやxformersなどの依存パッケージが未対応・未最適化であることが原因である可能性が高いです。

いいなと思ったら応援しよう!