2026年5月15日金曜日

stable-diffusion.cpp Flux1-schnell "sycl-16" vs. "sycl-32"

今までとてもデリケートなイメージのSYCLですが、ほぼほぼ安定しているので処理が軽いイメージのsycl-16で動かしてみようかと。

で、1024x1024のサイズの出力をしていて、ターミナルのフォントなどを調節しながらいろいろ試していいるうちに気づいたら結構時間がたってて、動作確認すると落ちてました…

1Step目は通過していましたが…orz

なんとな~く64,1024,1024と言う謎のパラメータを思い浮かべ少しゆとりをもって例のcompute処理内の数字を256(根拠のない数字)→60(64だとするとcompute内で処理が増える可能性があるので少しだけ余裕を見た数字。実際には増える最大数とか処理している計算がいくつに膨れ上がるか鑑みて64を超えるようであればwaitするとかそんな感じになると思います)へ変更して再度実行してみました。

結果は上々で、1024x1024でも安定して画像出力までたどり着きました。

が…なんか遅いんですよw節々に表示される数字が…。

モデルのロードは

279.19MB/s
252.69MB/s
282.18MB/s
270.06MB/s

と表示されているのに対してsycl-32では

382.47MB/s
382.74MB/s
401.11MB/s
401.57MB/s

と表示されています。

Ubuntuの中身をよく知らないので、何らかのディスクキャッシュの影響かもしれませんが、多分そうでは無いと感じています。この辺はsycl-32でmakeをかけた後とかも大体こんな数字だった記憶なので。

で、実際のGPUの処理時間については、1Stepあたりの時間はsycl-16が333秒を下回ることは無かったようでした。sycl-32は313秒とかが多かった記憶なので、20秒程度の差が出ています。出力したものを見てもsycl-16ではほぼ30分かかっているのに対し、sycl-32では約28分。2分の差ですが、これもsycl-32の方が早いという結果に。

なんとなく16とついている方が早いという先入観がありましたが、そんなことは無かったみたいですね。ただこの16とか32って何なんでしょうねw消費メモリーも見た目は変わってない気がするんですよねぇ…。

0 件のコメント:

コメントを投稿