先日から牛歩です(笑)
結構根本的に色々と蹴躓いているので、例のフラグ(-fno-sycl-id-queries-fit-in-int)をどこにセットすればコンパイルに反映してもらえるか少し試してみました。
これが有効になってくれれば、処理が中途半端になったとしても何らかの出力が行われてくれればと言う淡い期待です。
最初はstable-diffusion.cppのCMakeLists.txtに入れてみたのですがどうも無視されているらしいことだけは感じていました。次に狙いを定めたのはggmlのCMakeLists.txt。でもなんかうまくいかず…。よく見るとggml-sycl内にもありますね、CMakeLists.txtが。
この中でtarget_compile_optionsを使っている場所があったので、その次の107行に入れてあげました。
target_compile_options(ggml-sycl PRIVATE "-fno-sycl-id-queries-fit-in-int")
と…万が一、この設定が重複記述できないのであれば…その時にまた考えればいいかという出たとこ勝負感満載でcmakeして実行してみました。
[SYCL] ggml_sycl_op_im2col max_work_group_size:512
[SYCL] im2col_sycl num_blocks:9 OW:1024 N_OH:1024
[SYCL] im2col_sycl global(512, 512, 2304) local(1, 1, 256)
[SYCL][OP] call ggml_sycl_im2col done
[SYCL][OP] call ggml_sycl_mul_mat: dst='node_451':type=f32;ne=[1048576, 128, 1, 1];nb=[4, 4194304, 536870912, 536870912] src0=' (reshaped)':type=f16;ne=[2304, 1048576, 1, 1];nb=[2, 4608, 4831838208, 4831838208] src1=' (reshaped)':type=f16;ne=[2304, 128, 1, 1];nb=[2, 4608, 589824, 589824]
[SYCL] ggml_sycl_op_mul_mat_sycl (1)
[SYCL] ggml_sycl_op_mul_mat_sycl (2)
[SYCL][OP] call ggml_sycl_op_mul_mat_sycl/to_fp32_sycl: dst='node_451':type=f32;ne=[1048576, 128, 1, 1];nb=[4, 4194304, 536870912, 536870912] src0=' (reshaped)':type=f16;ne=[2304, 1048576, 1, 1];nb=[2, 4608, 4831838208, 4831838208] src1=' (reshaped)':type=f16;ne=[2304, 128, 1, 1];nb=[2, 4608, 589824, 589824] : converting src0 to fp32
[SYCL] ggml_sycl_op_mul_mat_sycl consted.
[SYCL] ggml_sycl_op_mul_mat_sycl asserted.
[SYCL] ggml_sycl_op_mul_mat_sycl alloced.
[SYCL] convert_unary_nc_sycl ne02_fdv(1,0,1)
[SYCL] convert_unary_nc_sycl glocal_size(1,1,9437184)
[SYCL] convert_unary_nc_sycl workgroup_size(1,1,256)
[SYCL][OP] call ggml_sycl_op_mul_mat_sycl/to_fp32_sycl done
level_zero backend failed with error: 38 (UR_RESULT_ERROR_OUT_OF_HOST_MEMORY)Exception caught at file:/home/siriuth/stable-diffusion.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp, line:2575
デバッグをたくさん入れているので見慣れない物があるかもしれませんが…とりあえず強制的に半歩ほど進みましたが、これまた今まで見たことのないエラーが…level_zeroかぁ…しかもout of host memoryって…orz
例のフラグを入れて結果が上手く出力されない場合は、どこでおかしくなったのか判断がつかなくなると思うので、最終的には外した方がよさそうな気配がありますが…まぁとりあえず先に進んでもらうのを第一目標にいろいろと手を入れてみようかな…。
0 件のコメント:
コメントを投稿