Linux
PR

【StableDiffusion】CUDAエラーに対するトラブルシューティング【RTX50シリーズ】

えりる
記事内に商品プロモーションを含む場合があります

先日、Stable Diffusionを使った時に以下のエラー出て画像生成ができなくなっていました。

RuntimeError: CUDA error: unspecified launch failure
(中略)
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

この記事では上記エラーに対して私が行った対処方法をまとめます。

環境

エラー発生時のGPU、OS、NVIDIAドライバ周りのバージョンは以下の通りです。

  • GPU: NVIDIA RTX 5070
  • OS: Ubuntu 24.04 LTS
  • NVIDIAドライバ 575.57.08
  • CUDA 12.8

エラーの内容

RuntimeError: CUDA error: unspecified launch failure というエラーは GPU上で実行しようとした処理(カーネル)が何らかの理由で正常に開始できなかった、という状況です。

一般的には以下の原因が考えられます。

このエラーの根本的な原因として、以下の可能性が考えられます。

  • GPUメモリの不足: VRAM(GPUのメモリ)が不足している場合、新しい処理を開始できずにエラーとなることがあります。生成する画像の解像度が高すぎたり、同時に多くのプロセスを実行しようとしたりすると発生しやすいです。
  • GPUドライバの問題: 古いドライバや破損したドライバが原因で、ソフトウェアがGPUを正常に操作できない場合があります。
  • ハードウェアの不具合: ごく稀に、GPU自体の物理的な故障や、GPUとマザーボードの接続不良が原因となることもあります。
  • ソフトウェアの競合: 他のアプリケーションがGPUを占有している場合、Stable DiffusionがGPUリソースにアクセスできずエラーになることがあります。

対処法: NVIDIAドライバを適切なバージョンに変更

今回の私の状況では、直前にaptコマンドでパッケージをアップデートしていました。
その時にNVIDIAドライバがアップデートされた結果、GPUに合わないバージョンのドライバが入れられたと考えられます。

そこで、NVIDIAドライバをGPUに合うバージョンに変更することにしました。

ubuntu-drivers-common というパッケージを使うとデバイスに合ったドライバを探してくれます。
そこでまず、ubuntu-drivers-commonを以下のコマンドでインストールします。

sudo apt install ubuntu-drivers-common

次に、以下のコマンドでGPUドライバを探索します。

ubuntu-drivers devices

出力例は以下の通りです。

vendor   : NVIDIA Corporation
driver   : nvidia-driver-580-server - distro non-free
driver   : nvidia-driver-570-open - third-party non-free
driver   : nvidia-driver-575-open - third-party non-free
driver   : nvidia-driver-570 - third-party non-free
driver   : nvidia-driver-570-server - distro non-free
driver   : nvidia-driver-580 - third-party non-free
driver   : nvidia-driver-570-server-open - distro non-free
driver   : nvidia-driver-580-server-open - distro non-free
driver   : nvidia-driver-580-open - third-party non-free recommended
driver   : nvidia-driver-575 - third-party non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

この中で、recommended と書かれたドライバをインストールします。
上の例であれば、nvidia-driver-580-open をインストールすればよいです。

インストールはapt コマンドで行います。

sudo apt install nvidia-driver-580-open

これでNVIDIAドライバが更新されるので一度再起動します。
再起動後、以下のコマンドでGPUが表示されればインストールは成功です。

nvidia-smi

インストールが完了したらStableDiffusionを起動して画像生成テストを行い、ターミナルの出力を確認します。

 関連サービス 

画像生成AIならPICSOROBAN

PICSOROBANは、ブラウザから手軽にStable Diffusionを使った画像生成が可能なクラウドサービスです。高価なPCやGPUを必要とせず、インストールやプログラミングも不要なため、テキストプロンプトを入力するだけで簡単に画像を生成できます。

CivitaiのモデルやLoRAをドラッグ&ドロップでアップロードして利用できるほか、ControlNet機能でキャラクターのポーズや線画を細かく制御することも可能です。画像生成を効率化するさまざまな拡張機能にも対応しており、これから画像生成AIを試したい方にもおすすめです。

まとめ

この記事では以下のエラーに対して私が行った対処方法をまとめました。

RuntimeError: CUDA error: unspecified launch failure
(中略)
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

aptコマンドでNVIDIAドライバがアップデートされたときはエラーが起こりやすいのですが、この方法で適切なバージョンのNVIDIAドライバを入れなおすとうまくいくことが多いです。

えりるさんが気になっている商品紹介コーナー

UGREENの巻き取り式USB-C充電ケーブルです。巻き取り式のケーブルで100WのPD充電できるのが良いポイント。コンパクトなので持ち運びにも室内用、車内用にも便利ですし、100Wいけるので充電器を選べばスマホからノートパソコンまでなんでも充電できます。
ケーブル長さは36/60/82/100cmの4段階調整なので好きな位置で止められないのは注意ですが、ケーブルを束ねたりして管理するのはめんどくさいですし、それから解放されると考えるとえりるさん的にはかなり魅力的ですね(笑)

えりるについて
えりる
えりる
日本のどこかに生息する平成生まれの研究者。とっても理論家と思いきや気分屋さんでもある。基本的にめんどくさがり。修士(工学)を持っている。 Windows, Mac, Linuxの三刀流。
記事URLをコピーしました