古いゲーミングPCを再利用!UbuntuでAI画像生成環境を構築するための手順

NVIDIA製GPUを家では使用できるようにしたのですが、外出中でもなんとか使えないかと思いっていたところGTX1070Mobileを搭載した少し古めのゲーミングPCが準備できたので、OSにUbuntu24.04LTSをインストールし、NVIDIAドライバCUDAをセッティングするということをやってみました。

ただ、それだけでは動作確認がわからなかったこともあり、StableDiffusionWebUI(AUTOMATIC1111)などを動作確認までしてみました。普通にセットアップするのも大変なので今回はStableMatrixを使用して簡単にセットアップしています。

ちなみにCUDAとはWikipediaによると以下の様に解説されてます。今回はCUDA Toolkitをインストールすることで環境設定を行います。

CUDA(Compute Unified Device Architecture:クーダ)とは、NVIDIAが開発・提供している、GPU向けの汎用並列コンピューティングプラットフォーム(並列コンピューティングアーキテクチャ)およびプログラミングモデルである。専用のC/C++コンパイラ (nvcc) やライブラリ (API) などが提供されている。なおNVIDIAGPUにおいては、OpenCL/DirectComputeなどの類似APIコールは、すべて共通のGPGPUプラットフォームであるCUDAを経由することになる。

CUDA - Wikipedia

使用するPC

今回使用しているPCはMSIのゲーミングPCでGS65 Stealth Thin 8RFとなります。中古でもメルカリでも6万程度ぐらいでしょうか?

jp.msi.com

ゲーミングノートPCのGPUは15インチ程度だと、GTX1650などを搭載したものが多く、最近ではRTX3050あたりが搭載されているかなと思います。それに比べると今回のPCは少し前の世代のものにはなりますが、ただ、GTX1070はエントリークラスというよりはミドルレンジのGPUなので、世代が古いとはいえ、ゲームではない部分である程度のパフォーマンスを見込めるのではないかと思っています。ただ、モバイル向けのGPUでは消費電力を低くすることと引き換えにパフォーマンスが犠牲にしたものもあります。今回のGPUもその類だと思っていいでしょう。

今回はそんなスペックでもどの程度のことができるかを調べつつ、生成系AIを出先でしようできるのかについて調べていきます。

ちなみにCPUIntel第8世代のCPUが乗っているのでWindows11に関しても全く問題なく動きますが、OSにパワーを持っていかれる可能性を考えてUbuntu24.04LTSを選択しています。

Ubuntuのインストール

Ubuntu24.04LTSのインストールに関してはインストール用を作成し、USBメモリから起動し、そのままインストールを行えば大丈夫です。インストール時にプロプライエタリドライバのインストールについても尋ねられますが、NVIDIAドライバなどはインストール後にあらためてインストールアップデートを行うため、どちらの設定でも問題はありません。

注意点としてはセキュアブートに関してはOFFにしておいたほうが良さそうです。インストール前にBIOSUEFI)で起動し、SecureBootの項目をdisable(無効)などにしておきましょう。

ちょっとだけ寄り道

今後、必要そうなアプリも事前にインストールしておきます。

neofetch

システム情報を取得するのにlsb_releaseコマンドなどを使用していたのですが、今回はneofetchコマンドを使用したいと思います。aptコマンドでインストールしておきます。このコマンドだけでハード情報CPUGPUなどの情報を取得できるので、最近はこちらを使用することが多くなりました。

$ sudo apt update
$ sudo apt install neofetch 
$ neofetch 

neofetchコマンドの実行結果

Chrome Browser

ブラウザもChromeブラウザにしたいのですが、OSインストール直後のデフォルト状態ではインストールされず、デフォルトのリポジトリにも存在していないので、以下の手順でインストールを行います。こちらであればコマンドラインからインストールも簡単に行えます。

$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo apt install ./google-chrome-stable_current_amd64.deb
$ reboot

参考

uepon.hatenadiary.com

Git

バージョン管理システムなので、既にインストールをしてあるかもしれませんが、インストール直後のデフォルト状態ではインストールされていなかったのでここでインストールをしておきます。

$ sudo apt update
$ sudo apt install git 

これで準備ができました。

NVIDIAドライバCUDA Toolkitのインストール

あとはドライバ類とCUDAを使用するためのCUDA Toolkitをインストールしていきます。実はドライバのバージョンに合わせたCUDA Toolkitをインストールしないと動作が行われないようです。バージョンは必ず合わせて使用しましょう

以下の情報を参考にしました

qiita.com

nouveauドライバの無効化

nouveauNVIDIAグラフィックカード向けのオープンソースドライバです。これを無効化しておく必要があります。この無効化はドライバをブラックリスト化する設定を追加することで実現します。以下のようにしてエディタでファイルを開き、

$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf

以下の内容で保存をします。

/etc/modprobe.d/blacklist-nouveau.confの内容

blacklist nouveau
options nouveau modeset=0

ファイルを保存後に以下のコマンドを実行しておきます。

$ sudo update-initramfs -u

旧ドライバーの削除

インストール時にプロプライエタリドライバのインストールをしていたりして、古いドライバーのインストールが行われていることもあるので、あらかじめアンインストールをしておきます。

$ sudo apt-get --purge remove nvidia-*
$ sudo apt-get --purge remove cuda-*

これでインストールに必要な事前準備が終わりました。

NVIDIAドライバCUDA Toolkitのインストール

あとは以下のサイトで最新のドライバーやCUDA Toolkitをダウンロードを行います。

以下のサイトに旧バージョンを含めたアーカイブがあります。

developer.nvidia.com

こちらでOSやそのバージョン、インストール媒体などをUIで設定することで手順を含めた情報の入手が可能です。 このときはアーキテクチャx86_64Ubuntu22.04LTSネットワーク経由のインストールを設定して

developer.nvidia.com

cuda-toolkit-12-5nvidia-driver-555をインストールする前提で進めていきます。WebのUIを操作していくことで、インストールするためのコマンドが表示されます。提示された通りに実行すればOKです。

$ 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 update
$ sudo apt-get -y install cuda-toolkit-12-5
$ sudo apt-get install -y cuda-drivers

ドライバのインストールが終わったら、忘れずに再起動させます。再起動しないと旧ドライバの情報が残ったままでエラーなどが発生しますので必ず行いましょう。

$ sudo reboot

インストールの確認

インストールが無事終わるとCUDA関連のコマンドもインストールされ、GPUの情報などをまとめて表示することができます。インストールが上手く行ってない、ドライバとToolkitのバージョンが合わない場合も実行に失敗しますのでご注意ください。

$ nvidia-smi

これでNVIDIAドライバCUDA Toolkitがインストールできました。

Stable Matrixを使用してStable DiffusionStable Diffusion Forgeをインストール

実行テストをしていきましょう。 インストールのオールインワインとも言えるStable Matrixを使用して、画像生成系AI環境のインストールを行ってみます。

GitHubの以下のリポジトリから

github.com

該当の部分をクリックします。

このアプリケーションのバイナリはAppImage形式になっているのでそのままで実行が可能です。ファイルをダウンロードして、任意のディレクトリに格納します。私は~/StabilityMatrixというディレクトリに格納しました。

$ mkdir ~/StabilityMatrix
$ cd ~/StabilityMatrix

AppImage形式の実行ファイルに関してご存知ない方は以下を参考にしてください。

uepon.hatenadiary.com

ダウンロードしたアーカイブに含まれるStabilityMatrix.AppImageファイルをディレクトリにコピーし実行権限を与えます。 XのUIであれば、マウスの右クリックから【プロパティ】を開いて【Executable as Program】有効化します。

CLIであればchmodコマンドを用いて以下のようにします。

$ chmod +x StabilityMatrix.AppImage

実行権限をつけてしまえば、後は実行するだけなのですが、libfuse.soライブラリがないという風にエラーが発生します。エラーメッセージには--appimage-extractオプションを使用すれば実行可能とかいてあります。それでもいいのですが、このオプションスイッチをつけてしまうと、バイナリサイズが大きくなってしまうので、おすすめできません。

以下の様にしてlibfuseライブラリをインストールしておきます。

$ sudo apt install libfuse-dev

再度、StabilityMatrix.AppImageを実行すると

$ ./StabilityMatrix.AppImage

無事にStabilityMatrixが起動します。約款にチェックを入れて、

データフォルダを指定します。(Portableモードにチェックをいれるとバイナリを格納したディレクトリにDataディレクトリを作成してくれます)指定したら【続ける】ボタンをクリックします。

ようやく生成系AIのパッケージ選択画面が現れます。

今回この中からStable Diffusion WebUI(AUTOMATIC1111)Stable Diffusion WebUI Forgeをインストールしてみました。

Stable Diffusion WebUI(AUTOMATIC1111)は画像生成系AIといえばという定番ですが、Stable Diffusion WebUI ForgeGPUのVRAMの消費を抑えた軽量版というところでしょうか。使用しているPCのGPUのことを考えるとStable Diffusion WebUI Forgeの方が向いているかなと思うのですが…

Stable Diffusion WebUI(AUTOMATIC1111)の動作

メモリはnvidia-smiコマンドで確認

デフォルト状態なので機能も少なく、画質も微妙かも。モデルも入れないと駄目ということでしょうか。


Stable Diffusion WebUI Forgeの動作

デフォルト状態でもかなり機能が充実しているっぽいです。画質もAUTOMATIC1111よりもいい印象でした。


実際に動かしてみると、メモリの初期値がForgeのほうが高いかなと思うのですが、画像生成時はそこまで消費がされていない印象でした。生成時間も細かくはみてませんがForgeの方が少し早いかなというところです。ただ、そこまでの差はないように感じています。

実は今回使用しているPCに搭載されたGTX1070 mobileはVRAMが8GBあるようで、GTX1650などとはかなりのスペック差があるものでした。以下のリンクの比較表からみると

www.dospara.co.jp

最近のゲーミングノートPCのGPUと比較しても少し上回っているようです。ゲームなどのスペックかもしれませんが、コストパフォーマンスとしては結構美味しいのかもしれません。ただ、省電力性能比だと駄目かも知れませんが。

おわりに

サブ機でもGPUを使用したいと思っていた所に、このPCをが来たのですが思った以上に期待できるのかもしれません。ただ、ファンがうるさいので夏向きではないですね🥲今後はこちらを使用してローカルのLLMなどについても調べてみたいなと考えています。

/* -----codeの行番号----- */