FastSD CPU はラズベリーパイでも実行可能らしいが、
Pi4の4GBRAMとスワップ領域8GBが必要との事なので、DevtermA06の4GBRAMでも実行可能と判断してやってみる。
今回はhome配下にSDフォルダを作成し、端末を開く
gitから取得コマンド
git clone https://github.com/rupeshs/fastsdcpu.git
ディレクトリ移動
cd fastsdcpu
パーミッション変更
chmod +x install.sh
インストール実行
./install.sh
エラー pythonが入ってないとのメッセージ、メッセージ通りにコマンド
sudo apt install python3.10-venv
再度
./install.sh
Preparing metadata (Pyproject.toml) ... ¥ でかなり時間がかかる
と思ったが、ストールしていた。
再起動して実行後も、固定でストールが発生する模様。
swap領域が不足しているからと予想。(Pi4の4GBRAMとスワップ領域8GBだが以前確認したら2GB程度だったと記憶していた)
swap領域の確認
free -h
2GBで、デバイス名が /dev/zram0 だった。
zram 増やす や zram 容量変更 で検索。
いろいろ情報はあったが、イマイチうまくいかない、情報をバラバラに選択して下記手順で容量拡張に成功した。
設定変更ツールをインストール
sudo apt install zram-config
設定ファイル編集
sudo nano /usr/bin/init-zram-swapping
変更内容
mem=$*1
を
mem=$*2
2024/03/08追記内容に基づき修正
mem=$*3
に変更し再起動
確認
free -h
インストール再実行
./install.sh
約1時間後ストールしたので、増やしてみた。
mem=$(((totalmem / 2 / * 10240))
NG、ストールするまでの時間は伸びた?
GUI無しでwebUIのみ使うインストールに変更(qtの方が速度が速いはずなので、qtにしたかったがインストールが失敗するので暫定処置。)
GUI(Qt無し)版インストール
./install.sh --disable-gui
実行
./start-webui.sh
エラー メッセージに従い下記実施
sudo apt install gcc pyhton3-dev
gccはインストール済みだったが、関連パッケージが入ってなかった?
実行
./start-webui.sh
ラズベリーパイでなくても、armCPU環境でメモリ4GB有るなら実行可能と思われる。
プロンプト
A cinematic shot of a baby racoon wearing an intricate italian priest robe
他の設定は無変更で実行
モデルデータなどダウンロード開始、SDカードなので時間がかかるので暫く放置。
ダウンロードサイズは5GBほどだが、SDカードが遅いのかダウンロードがなかなか進まない。
2024/03/05 追記
途中で止まる、エラーメッセージからpytorchが古いためと判断。
linux pip cpu でのダウンロードコマンド確認。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
実施したがエラー、pip3をインストール
sudo apt install pip3
エラーするので、pipを再インストールしてみたら成功。
sudo apt install pip
再起動して、実行。
失敗、完成せずにkillされてしまう。(・・?
pipをアップグレードしてなかったので、アップグレード実施
pip3 install --upgrade pip
qt込み版をインストールしてみる。
./install.sh
ストールはしなかったが、途中でkillされて止まった。
sudo apt update
sudo apt upgrade
実施、保留となっている2つ分は
sudo apt install ”保留パッケージ名”
でアップデート後GUI版インストールでストール再発、改善されていない模様。
webUI専用版を再インストール
./install.sh --disable-gui
変わらず、途中でkillされる。
swapを増やしてみる
mem=$*4
NG swapサイズが大きくなるタイミングで発生する、SDカードが遅いから?
killされたときのメッセージ
./start-web-ui.sh: line 25: 9076 Killed $PYTHON_COMMAND src/app.py -w
./start-web-ui.shの25行目は最終行で、内容は” $PYTHON_COMMAND src/app.py -”なので最終のアウトプット処理で時間がかかりすぎてkillされている???
ubuntu Killed で検索すると
StableDifuusionでおそらくメモリ不足でKilledされたのでは?との情報があったswapが処理中に増加しているので設定は出来ていると思われるがSDカードの性能の問題であればとりあえずココまで。
設定ファイル init-zram-swapping で検索したら
zramデバイスはコア毎に割り当てられるとの情報があった。
zram追加 で検索
zram 追加手順
確認
ls /dev/zram*
結果
/dev/zram0
追加
sudo cat /sys/class/zram-control/hot_add
1
確認
ls /dev/zram*
/dev/zram0 /dev/zram1
zram1が出来ている事が確認できればOK.
サイズ指定
cat /sys/block/zram1/disksize
0
sudoでははじかれたので、
sudo -s
echo 512M > /sys/block/zram1/disksize
# cat /sys/block/zram1/disksize
536870912
削除手順
確認
ls -l /dev/zra*
brw-rw---- ********* /dev/zram0
brw-rw---- ********* /dev/zram1
削除
echo 1 > /sys/class/zram-control/hot_remove
確認
ls -l /dev/zra*
brw-rw---- 1 root disk 251, 0 12月 5 23:47 /dev/zram0
再起動するとzram1は消えるので残す手順を調べ中。
暫定処置として256×256で実施したら成功、やはりswapメモリ設定を工夫すれば可能なはずだがギアボックスでMAXスピード設定で348secでsdカードへの負担を考えると実用性は限りなく低いのでここで一旦終了。
ピクセル数少ない割にはそこそこ描けてる。(;゚Д゚)
2024/03/08 追記
zramの解釈が間違っていたみたいなので修正。
zram core stream で検索した結果。
redditから、CPU コアと同じ数の圧縮ストリームが適切らしいとの情報があった。
https://www.reddit.com/r/linuxadmin/comments/d39rn8/zram_whats_a_compression_stream/
init-zram-swappingを変更
sudo nano /usr/bin/init-zram-swapping
内容
mem=$*5
DevtermA06は最大6コアなので6
mem=$*6
トータル12GBになると思ったが、1.2GBになる(・・?
mem=$*7
は、3.8Gなので、
mem=$*8
にしてみる
トータル1.9Gになる(・・?
mem=$*9
にすると12GBになったので、実行するもkilledにて終了。( ノД`)シクシク…
mem=$*10
メモリサイズ変更してもSDカードの空き容量に変化が無い事が判明、swap領域が足らずメモリ不足でkilledされていたと思われる。
指定して再起動・free -hコマンドで確認して容量が確保されたと思っていたが、違うみたいなので要調査。
Arc Linux WikiによるとRAMディスク上に圧縮するとの事なのでそもそも従来のswapとは別物と考えた方が良い?圧縮しても物理メモリを超えたらswapできずにkilledされる?
なので、swapファイルを作成
sudo fallocate -l 8G /swapfile
パーミッション変更
sudo chmod 600 /swapfile
作成したファイルをswapファイルに指定
sudo mkswap /swapfile
マウント設定ファイルを編集
sudo nano /etc/fstab
末尾に下記内容を追記
/swapfile none swap defaults 0 0
再起動
確認
free -h
作成した分swap領域が増えている。
FastSD CPU 実行したら、
1回目 killedされないが画像は表示されずerror表示となる。
暫く待ってみる、topで確認動作は継続中と思われるがとりあえずもう一度実行。
2回目 できた!完成約4000sが2回表示されたので、error後も待っていれば表示されてたかも。
zramの無効化した方が速いかもなので確認。
約2000sで完成、確実にRAM不足の処理をする場合は、速そう・・・というのもギアボックスの設定がMAXで実行したか記録してなかったので(-_-;)
2024/03/09追記
zram有効化した状態で2170sを確認、多少は効果あるが通常操作では有効化していた方が良さそうなので無効化しなくても問題なさそう。
プロンプトは
A cinematic shot of a baby racoon wearing an intricate italian priest robe.
ローブ着ていないけど1stepでこの出来は凄いと思う。
無効化コマンド
sudo systemctl disable zram-config
再起動
確認
free -h
swapが減っているので無効化成功。
再度有効化したい場合
sudo systemctl enable zram-config
再起動する。