職場の研修用サーバーの中に、NVIDIA Tesla T4を載せたまま使われなくなっているのが3台いたので、そのうちの1台でOSS系の生成AIを動かしてみようと企んだ。

結果、いつものごとくコールタールの如き沼にはまり込んだので、今後使うかどうかはわからないが備忘を残しておかねば!(義務感)

・HPE DL360 Gen10 Plus
 Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz 2P
 DDR4 ECC RIDIMM 2400 MHz 32GB x4
 279GiB SAS HDD x2 (RAID1) /
 1TB SAS HDD x4 (RAID5+HS) /home
 NVIDIA Tesla T4 x2 (2枚積んでても、1リクエストに対して処理能力が上がるわけではない。あくまでも多数のリクエストを並列でさばけるだけ)

・OS:Ubuntu Server 22.04.4
 Fedoraは、公式リポジトリにPython3.10が無い(廃止済み)ので選外
 CentOS Stream 9 は、公式リポジトリにPython3.9までしか無いので選外

1.OSインストール直後の操作

 Python3のバージョン確認 ⇒ python3.10
 Python3.10-venvのインストール
 venvのアクティブ化

python3 -c 'import venv'
python3 -m venv venv/

 このコマンドを打っておかないと、Stable Diffusion Web Uiのインストール時に、venv Activeitoのエラーで止まる

2.google-perftoolsパッケージのインストール

 このパッケージはC++のプロファイリングツールなのだが、インストールされていないとなぜか以降の手順で怒られる
apt-getでしか入手できないので、apt-getのパッケージリストを更新してインストールする

sudo apt-get -y install google-perftools

3.NVIDIA CUDA/Driver インストール

 ここから、CUDA をインストールする
  Stable Diffusion Web Ui のXformersは、CUDA 12以降をサポートしてないが、対応するバージョン11.8でインストールすると今度は「Driverが古すぎる」と、SD Web Uiインストール段階でエラーになるので、今回はあきらめる
 CUDAをインストールしていないと、GPUドライバがまともに動いてくれない
 ドライバは、open kernel版のほうをインストールする

4.Stable Diffusion Web Ui のインストール

 本家 Git Hubにある「1.Install the dependencies:」にあるパッケージは、22.04であればほぼdefaultでインストール済み
 本体の入手方法は本家の

wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh

 でwebui.shを実行しても、
 Gitのリポジトリをクローンしても、どちらでもよい

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

 個人的には、webui.shが2個出来てしまう本家の方法よりも、Gitのリポジトリクローンがお勧め
 初回のwebui.sh実行は、特に引数を指定せず、えいやで実行

5.webui-user.shの設定

 今回はUbuntu Serverに載せてるのでリモート接続が必須
export COMMANDLINE_ARGS="--listen"
 このオプションを追加することで、起動メッセージの「Running on local URL: http://127.0.0.7:7860」が「http://0.0.0.0:7860」に変化し、ServerのIPアドレス:ポート番号でブラウザからアクセス可能となる
 ポート番号も同じ場所でオプションとして指定可能
 ちなみに、webui-user.shファイルは実行可能化しなくても平気
 出力される画像が黒くなる等の問題がある場合は、起動オプションに以下を追記する

--no-half-vae

「ハローアスカベンチマーク(Hello Asuka Benchmark)」の結果

100%|████████████| 28/28 [00:05<00:00, 4.90it/s]
100%|████████████| 28/28 [00:05<00:00, 5.07it/s]
100%|████████████| 28/28 [00:05<00:00, 5.06it/s]
100%|████████████| 28/28 [00:05<00:00, 4.98it/s]
100%|████████████| 28/28 [00:05<00:00, 4.92it/s]
100%|████████████| 28/28 [00:05<00:00, 4.90it/s]
100%|████████████| 28/28 [00:05<00:00, 4.85it/s]
100%|████████████| 28/28 [00:05<00:00, 4.78it/s]
100%|████████████| 28/28 [00:05<00:00, 4.75it/s]
100%|████████████| 28/28 [00:05<00:00, 4.70it/s]

Total progress: 100%|███████| 280/280 [01:04<00:00, 4.37it/s]

masterpiece, best quality, masterpiece, asuka langley sitting cross legged on a chair
Negative prompt: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name
Steps: 28, Sampler: Euler, CFG scale: 12, Seed: 2870305590, Size: 512x512, Model hash: 89d59c3dde, Model: nai, VAE hash: f921fb3f29, VAE: nai.vae.pt, Clip skip: 2, Version: v1.8.0

Time taken: 1 min. 6.7 sec.

A: 3.26 GB, R: 3.76 GB, Sys: 3.9/14.5684 GB (26.9%)

 プライベートのRTX4070Ti OCモデルのほうが断然早い…。
 まぁ、研修用途と考えれば使える…のか?