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) などが提供されている。なおNVIDIA製GPUにおいては、OpenCL/DirectComputeなどの類似APIコールは、すべて共通のGPGPUプラットフォームであるCUDAを経由することになる。
使用するPC
今回使用しているPCはMSIのゲーミングPCでGS65 Stealth Thin 8RF
となります。中古でもメルカリでも6万程度ぐらいでしょうか?
ゲーミングノートPCのGPUは15インチ程度だと、GTX1650などを搭載したものが多く、最近ではRTX3050あたりが搭載されているかなと思います。それに比べると今回のPCは少し前の世代のものにはなりますが、ただ、GTX1070はエントリークラスというよりはミドルレンジのGPUなので、世代が古いとはいえ、ゲームではない部分である程度のパフォーマンスを見込めるのではないかと思っています。ただ、モバイル向けのGPUでは消費電力を低くすることと引き換えにパフォーマンスが犠牲にしたものもあります。今回のGPUもその類だと思っていいでしょう。
今回はそんなスペックでもどの程度のことができるかを調べつつ、生成系AIを出先でしようできるのかについて調べていきます。
ちなみにCPUはIntel第8世代のCPUが乗っているのでWindows11に関しても全く問題なく動きますが、OSにパワーを持っていかれる可能性を考えてUbuntu24.04LTS
を選択しています。
Ubuntuのインストール
Ubuntu24.04LTS
のインストールに関してはインストール用を作成し、USBメモリから起動し、そのままインストールを行えば大丈夫です。インストール時にプロプライエタリ
ドライバのインストールについても尋ねられますが、NVIDIAドライバ
などはインストール後にあらためてインストールアップデートを行うため、どちらの設定でも問題はありません。
注意点としてはセキュアブートに関してはOFFにしておいたほうが良さそうです。インストール前にBIOS(UEFI)で起動し、SecureBootの項目をdisable(無効)などにしておきましょう。
ちょっとだけ寄り道
今後、必要そうなアプリも事前にインストールしておきます。
neofetch
システム情報を取得するのにlsb_releaseコマンド
などを使用していたのですが、今回はneofetch
コマンドを使用したいと思います。aptコマンド
でインストールしておきます。このコマンドだけでハード情報、CPU、GPUなどの情報を取得できるので、最近はこちらを使用することが多くなりました。
$ 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
参考
Git
バージョン管理システムなので、既にインストールをしてあるかもしれませんが、インストール直後のデフォルト状態ではインストールされていなかったのでここでインストールをしておきます。
$ sudo apt update $ sudo apt install git
これで準備ができました。
NVIDIAドライバ
とCUDA Toolkit
のインストール
あとはドライバ類とCUDAを使用するためのCUDA Toolkit
をインストールしていきます。実はドライバのバージョンに合わせたCUDA Toolkit
をインストールしないと動作が行われないようです。バージョンは必ず合わせて使用しましょう
以下の情報を参考にしました
nouveauドライバの無効化
nouveau
はNVIDIAのグラフィックカード向けのオープンソースドライバです。これを無効化しておく必要があります。この無効化はドライバをブラックリスト化する設定を追加することで実現します。以下のようにしてエディタでファイルを開き、
$ 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
をダウンロードを行います。
以下のサイトに旧バージョンを含めたアーカイブがあります。
こちらでOSやそのバージョン、インストール媒体などをUIで設定することで手順を含めた情報の入手が可能です。 このときはアーキテクチャをx86_64、Ubuntu22.04LTS、ネットワーク経由のインストールを設定して
cuda-toolkit-12-5
とnvidia-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 Diffusion
やStable Diffusion Forge
をインストール
実行テストをしていきましょう。
インストールのオールインワインとも言えるStable Matrix
を使用して、画像生成系AI環境のインストールを行ってみます。
該当の部分をクリックします。
このアプリケーションのバイナリはAppImage形式
になっているのでそのままで実行が可能です。ファイルをダウンロードして、任意のディレクトリに格納します。私は~/StabilityMatrixというディレクトリに格納しました。
$ mkdir ~/StabilityMatrix $ cd ~/StabilityMatrix
AppImage形式
の実行ファイルに関してご存知ない方は以下を参考にしてください。
ダウンロードしたアーカイブに含まれる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 Forge
はGPUの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
などとはかなりのスペック差があるものでした。以下のリンクの比較表からみると
最近のゲーミングノートPCのGPUと比較しても少し上回っているようです。ゲームなどのスペックかもしれませんが、コストパフォーマンスとしては結構美味しいのかもしれません。ただ、省電力性能比だと駄目かも知れませんが。
おわりに
サブ機でもGPUを使用したいと思っていた所に、このPCをが来たのですが思った以上に期待できるのかもしれません。ただ、ファンがうるさいので夏向きではないですね🥲今後はこちらを使用してローカルのLLM
などについても調べてみたいなと考えています。