ggmlが結構更新されているようで、llama.cppとstable-diffusion.cppのコンパイルに支障が出そうなのでマージ作業をぼちぼちやっていました。
2026年7月12日日曜日
2026年7月9日木曜日
2026年7月4日土曜日
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月13日土曜日
途中経過
七転八倒しながら結構いい感触を得られています。
原因不明のエラーの調査は進めていないので512x512レベル止まりですが、cpyロジックも手を加えた結果、
vae 24.13s 全体では 322.93s(テキストエンコードはCPU)となりました。
手元のテキストの過去の記録を見てみると…vaeのベストと比べると誤差レベルで遅くなっていますが、全体では20s程度短くなっています。
GGML的にはdup(複製)の中のcpyロジックのf16->f32とf32->f16部分のみ。モデルファイルがQ4_K_M、Q8_0、safetensorsファイルを使っているのでこの辺の変換にも手を加えるともっと実行速度が短くなりそうです。
あと、実際のログを見て効果の高そうな処理から手を加えた方が効果的かなとも。
cpyのロジックを見る限り、正当に処理を実装しているのでとても無駄が多い実装になっています。どうしても計算量を減らそうとするとそのままではあまり効果が出ないので、実データをを踏まえて実装しなおしています。そのため、結構限定的な実装になってはいます。
当面の目標としては512x512で1分ぐらいで出来上がると嬉しいかなぁ…とか思いながら遊んでいますが、vaeベースを考えると 24秒×5=120秒程度ぐらいには行けるのかな?とは感じていますが…メモリ的にテキストエンコードがCPUのままにしているのでこれよりは遅くなりそうかな?
そういえばLocalAIのバージョンアップも行われていますね…SYCLが楽しすぎて全然触れていませんが(笑)
2026年5月13日水曜日
sycl:: と dpct:: の違いは何でしょう?w
namespaceが違うというのはわかるので、違っているような感じなのですが、どこかの定義で一致してるのかな?
ggml/sycl内ではcommon.hppでtypedef sycl::queue_ptr *queue_ptrとか記述があったので、sycl内では特にしていなければsycl::queue_ptrとなっているはずなのですが、dpct::queue_ptrと明示されているところもあるわけでして…
syclとdpctの違いも良く分かってないのですが、sycl2020ではsycl::queue_ptrと記述するのがよろしいようで…ただ、dpctのドキュメントではdpct::を使えという指示が明記されているので、正直悩みますw
2026年5月11日月曜日
dpct::queue_ptrって?
enum ggml_status ggml_backend_graph_compute(ggml_backend_t backend, struct ggml_cgraph * cgraph) {
enum ggml_status err = ggml_backend_graph_compute_async(backend, cgraph);
ggml_backend_synchronize(backend);
return err;
}
結局のところ、いろいろ経由したものの長い旅を経て、ようやくここまでたどり着いた…w
ggml v0.11.1
llama.cppでsyclの実装が結構行われていたのでソースを眺めていたらリリースされました。
SYCL目線でみると、未実装部分の追加が行われているのと、sync関連で少し手が入っている部分があったので…もしかするとこれで上手くいくように…ならないかなw
2026年5月9日土曜日
SYCL とりあえずのデバッグ出力
この昨日llama.cppでb9060がリリースされ、いくつかのメソッドの実装が行われていました。sycl: add FILL, CUMSUM, DIAG, SOLVE_TRI, SSM_SCAN, GATED_DELTA_NET (#22149)
表を見比べるとvulkanやopenCLなどはSYCLよりも未実装な部分が多いのを知りました。
そっちもすごい気になるのですが、