2026年5月16日土曜日

ggml Sycl16とSycl32の差

実際にビルドしてみて使って見ると少しの差でSycl32の方が早かったわけですが、実際の演算結果の差が出るのかどうか気になったので、stable-diffusion.cppで同じモデルを使用してSYCL16とSYCL32でmakeしたものを同じプロンプトで出力させて比べてみました。

ついでにCPUと比べてもみたいわけですが、犬の看板画像で試した感じだとCPUとSYCLでは結構差が出てた記憶があります。

ようやく出そろいました。SYCL16 / SYCL32 / CPUで出力させてみました。

512x512のサイズならvaeもGPUで動く気がしたので試してみたら、出力されたものが真っ白の物でした…どこかで情報が欠落してしまっているようでw

なので、textencoderとvaeはすべてCPU上で動いています。

SYCL16SYCL32CPU

CPUだけはおでこの模様が異なってたり、首紐が無かったり、輪郭が違っています。SYCL16とSYCL32の違いはfluxの「f」の文字の太さが違っているのと、背景の左側の人が若干異なっている程度です。

ほぼ、同じ結果を得られていますが、「同じ」出力にはならないのが本当に面白いですね。

乱数誤差なのか内部バッファのメモリ形式が異なっていることによる差なのか…要因はいくつか考えられます。

他にもいくつか同じ構成で違うバックエンドで出力させたものがありますがSYCL16とSYCL32はほとんど違いがないですが、やはりどこか違っている部分があります。バグなのか実装の仕様なのかかなり難しい部分ですね。

参考として出力から得られた実行時間はそれぞれ、456.72s / 440.92s / 997.77s。消費電力は1Step目はそれぞれ15W程度かかっていましたが、2~4Stepの間はSYCL16/32は10W。CPUはすべてのステップでGPU電力は0WでしたがCPUだけで15W消費していました。瞬間的に表示上16.01Wとか表示されてはいました。テキストエンコーダとvaeはCPUのみなのでこちらも15W消費している感じです。

出力が真っ白になってしまいましたが、vaeもGPUで動作させた場合はSYCL16は382.46s、SYCL32は366.12sでした。vaeの処理が滑っていただけかもしれないので、あくまでも参考値として残しておきます。
 

2026年5月15日金曜日

The oneAPI toolkits no longer support 32-bit libraries

make時には気づかなかったが、実行時にこんなメッセージが…

The oneAPI toolkits no longer support 32-bit libraries, starting with the 2025.0 toolkit release. See the oneAPI release notes for more details. 

oneAPIツールキットは、2025.0ツールキットリリース以降、32ビットライブラリをサポートしなくなりました。詳細については、oneAPIリリースノートを参照してください。

一応グーグル翻訳から

LocalAI v4.2.4 なんか収集つかなくなってそう…

昨日の昼の時点で4.2.3がリリースされていることに気づき、夜には4.2.4のリリース。
で、手元の環境で動かしてみたのですがチャットを試していますがなんか節々がダメそうw

処理速度と言えば…

生成AIがどんなものか全くわからなかったので、本腰を入れて環境整備をする気にもなれず、かと言って生成AIを動かせる最低限のメモリーを積んでいるPCが無かったので、タイムリーに16GiBのメインメモリーを搭載したミニPCが安かったのでぽちっただけで…w

正直CPUもAMDと悩んだんですよ。でも値段の差でN150と言う選択に(笑)

で、そもそもしょぼい環境で遊んでいるのでそれなりに解っているはずでしたが、ちょっと検索したページの記事を見ると

「FP8版の FLUX.1 [dev] を使用して、20 Stepsで生成しています。サイズは 1440x816 です。筆者の環境では生成に125~140 秒程度かかります」

とサクッと書いてあって、1024x1024で20Stepっていうとdevでもschnellでもほぼ時間は変わらず5~6分程度ですので…ざっくり120分(笑)単位が違うw

画素数の差は1440x816:1024x1024 = 1,175,040:1,048,576 で少ないにもかかわらず、60倍の差がw

 FP8版は使ったことがないのでわかりませんけど…そのうち試してみてもいいかな…たしかになんかちっちゃいサイズのモデルが多いなぁとは感じてはいましたが。

そもそも、チャットで遊べればいいだろうという環境なので、その環境で画像を出力させ始めたのが気の迷いだったという事を思い出させていただきましたw 

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

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

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