2026年6月25日木曜日

ようやくSYCLだけで動かせるようになったので…(512だけですがw)

vaeのメモリーバカ食い問題が解消されないと1024での動作が厳しいので、当面512x512で動かしてみようかと思います。

いままで手を加えた部分を最新のソースとマージしてllama.cppやstable-diffusion.cppを動かしてみたところ若干遅くなっている部分や、最新のggml-syclの対応で実装自体が遅くなっている部分も多く、今後どうするべぇかちょっと思案しています。一番有効そうなのは、まず処理を安定させるために強制的に同期をとっているのですが、そこを何とかしたいというのが一番の課題と考えています。有効そうな手段はqueueクラスをラップして、色々といければなぁとか、漠然と考えています。

で、遅くなったか早くなったかは正直判断つかないのですが、Flux2Klein4Bモデルの量子化Q8モデルを使用し、テキストエンコードとvaeも全てsyclで動作させた結果、

[INFO ] stable-diffusion.cpp:1322 - running in Flux2 FLOW mode
[INFO ] stable-diffusion.cpp:4494 - generate_image 512x512
[INFO ] denoiser.hpp:579  - get_sigmas with discrete scheduler
[INFO ] stable-diffusion.cpp:3518 - sampling using Euler method
  |##################################################| 298/298 - 332.26MB/s
[INFO ] model_loader.cpp:1232 - loading tensors completed, taking 5.54s (read: 3.78s, memcpy: 0.00s, convert: 0.10s, copy_to_backend: 1.23s)
[INFO ] stable-diffusion.cpp:4233 - get_learned_condition completed, taking 18.65s
[INFO ] stable-diffusion.cpp:4540 - generating image: 1/1 - seed 20260625
  |##################################################| 149/149 - 520.35MB/s
[INFO ] model_loader.cpp:1232 - loading tensors completed, taking 7.88s (read: 5.90s, memcpy: 0.00s, convert: 0.00s, copy_to_backend: 1.65s)
  |==================================================| 4/4 - 66.65s/it
[INFO ] stable-diffusion.cpp:4572 - sampling completed, taking 274.89s
[INFO ] stable-diffusion.cpp:4586 - generating 1 latent images completed, taking 274.89s
[INFO ] stable-diffusion.cpp:4257 - decoding 1 latents
  |##################################################| 140/140 - 314.95MB/s
[INFO ] model_loader.cpp:1232 - loading tensors completed, taking 0.60s (read: 0.40s, memcpy: 0.00s, convert: 0.04s, copy_to_backend: 0.07s)
[INFO ] stable-diffusion.cpp:4277 - latent 1 decoded, taking 27.87s
[INFO ] stable-diffusion.cpp:4281 - decode_first_stage completed, taking 27.87s
[INFO ] stable-diffusion.cpp:4721 - generate_image completed in 321.42s 

生成のオプションとしては -H 512 -W 512 --steps 4 --cfg-scale 1.0 --diffusion-faと言った感じです。

プロンプトを日本語で徐々に長くしていますが、やはり長くなると若干遅くはなるようなので参考値ですがこんな感じですね。5分20秒ぐらいというのはやはりFluxの4Step出力は驚異的ですね。 QwenImageは512x512サイズでも低スペックな環境では1時間以上かかってしまうので(笑)

まぁ今後はもっとテコ入れして局所的にでも手を入れていってみようと思っていますが、ようやくここ1か月ぐらいですか?何もわからないところから結構触れるようになったと思います。 

2026年6月24日水曜日

ぎりぎり動いていたモデルが動かせなく…w

syclで安定して動いてくれるように気づけば結構書き換え続けていますが、そろそろ大元のggmlとマージしなければ…とおもいつつ書き換えたソースをちゃんと保存したうえでgithub上で整理してみました。イマイチ使い方が分からないのと、クライアント上のgitの使い方も良く分からない感じでやっているので漏れているものもありそうですが、ggml_sycl_patchからpullしてmakeが通ったのですが、気づかないうちにベースとなるstable-diffusion.cppもpullしてしまった感じでmakeの動作が変わったようなので、stable-diffusion.cppもpullして整えてからggmlをggml_sycl_patchへ挿げ替えてmakeを通してみました。

2026年6月22日月曜日

心臓に悪いWindowsUpdate

今回のWindowsUpdateはIntelDisplayドライバーの更新がかかった様で、突然画面が真っ暗になって再構築されて再表示されたような動きをしたので精神的に非常に負荷が高かったです…もうね…ほんと…やめてほしいw

ループの形が落ち着いてきたのでここらへんで…

何度も書き直しつつ、再びcpy.cppに展開していたのですが、同じコードをコピペして、必要な修正を少しして、動きを見て…と繰り返すのも飽きてきたので何とかできないかと模索していました。

2026年6月20日土曜日

ループ処理

公開もしていない記事がいくつもあったりしますが、久しぶりにまともに書けそうです。