この昨日llama.cppでb9060がリリースされ、いくつかのメソッドの実装が行われていました。sycl: add FILL, CUMSUM, DIAG, SOLVE_TRI, SSM_SCAN, GATED_DELTA_NET (#22149)
表を見比べるとvulkanやopenCLなどはSYCLよりも未実装な部分が多いのを知りました。
そっちもすごい気になるのですが、
根本的にllama.cppもggmlを利用しているstable-diffusion.cppも同様な感じに沈黙するので、何もわからないながらも色々と原因を仮定してまずはデバッグ出力を見ることから始めてみました。
stable-diffusion.cppはggmlのデバッグ出力を行うには環境変数に「GGML_SYCL_DEBUG=1」を入れるだけで大量の出力が行われるようになります。
[SYCL][OP] call ggml_sycl_cpy: dst='ggml_runner_final_result_tensor':type=f32;ne=[128, 128, 16, 1];nb=[4, 512, 65536, 1048576] src0=' (view) (reshaped) (permuted) (cont) (reshaped) (permuted) (cont) (reshaped) (view) (cont)(view)':type=f32;ne=[128, 128, 16, 1];nb=[4, 512, 65536, 1048576]
ggml_sycl_cpy: memcpy path
[SYCL][OP] call ggml_sycl_cpy done
[SYCL][OP] call ggml_sycl_dup done
[SYCL] call ggml_backend_sycl_synchronize
沈黙したのはこの直後でGPUが0%になりCPUのスレッドが100%になったまま処理が止まります。
さて…何もわからないので、地味にデバッグログ埋め込みから作業に入りますかねw
0 件のコメント:
コメントを投稿