From c9064dded732d81f90b34e6b33d4fbd77cbfa058 Mon Sep 17 00:00:00 2001 From: lhez Date: Sun, 27 Sep 2026 03:08:39 -0700 Subject: [PATCH] opencl: refine bin kernel loading condition (#29503) --- ggml/src/ggml-opencl/ggml-opencl.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ggml/src/ggml-opencl/ggml-opencl.cpp b/ggml/src/ggml-opencl/ggml-opencl.cpp index 19cd02583e..e93d73344d 100644 --- a/ggml/src/ggml-opencl/ggml-opencl.cpp +++ b/ggml/src/ggml-opencl/ggml-opencl.cpp @@ -1186,7 +1186,7 @@ struct ggml_backend_opencl_context { return nullptr; } - size_t sz; + size_t sz = 0; const void * kernel_bin = get_adreno_bin_kernel_func( kernel_name.c_str(), device_name.c_str(), driver_version.c_str(), &sz); if (bin_size) { @@ -3881,7 +3881,7 @@ static void load_cl_kernels(ggml_backend_opencl_context *backend_ctx) { backend_ctx->kernel_gemv_noshuffle_q4_0_f32_32b_trans = nullptr; backend_ctx->kernel_gemm_noshuffle_q4_0_f32_32b_trans_ila_a8_bin = nullptr; backend_ctx->kernel_gemm_noshuffle_q4_0_q8_1_dp4a_ila_a8_bin = nullptr; - if (backend_ctx->adreno_gen == ADRENO_GPU_GEN::X2E) { + { { std::string opts = std::string("-cl-std=") + opencl_c_std + " -cl-mad-enable " @@ -4381,8 +4381,8 @@ static void load_cl_kernels(ggml_backend_opencl_context *backend_ctx) { backend_ctx->kernel_gemv_noshuffle_q4_k_f32_32b_trans = nullptr; backend_ctx->kernel_gemm_noshuffle_q4_k_f32_32b_trans_ila_a8_bin = nullptr; backend_ctx->kernel_gemm_noshuffle_q4_k_q8_1_dp4a_ila_a8_bin = nullptr; - if (backend_ctx->adreno_gen == ADRENO_GPU_GEN::X2E) { - { + { + if (backend_ctx->has_vector_subgroup_broadcast) { std::string opts = std::string("-cl-std=") + opencl_c_std + " -cl-mad-enable " " -DSIMDGROUP_WIDTH=" + @@ -4430,8 +4430,8 @@ static void load_cl_kernels(ggml_backend_opencl_context *backend_ctx) { backend_ctx->kernel_gemv_noshuffle_q6_k_f32_32b_trans = nullptr; backend_ctx->kernel_gemm_noshuffle_q6_k_f32_32b_trans_ila_a8_bin = nullptr; backend_ctx->kernel_gemm_noshuffle_q6_k_q8_1_dp4a_ila_a8_bin = nullptr; - if (backend_ctx->adreno_gen == ADRENO_GPU_GEN::X2E) { - { + { + if (backend_ctx->has_vector_subgroup_broadcast) { std::string opts = std::string("-cl-std=") + opencl_c_std + " -cl-mad-enable " " -DSIMDGROUP_WIDTH=" + @@ -4479,8 +4479,8 @@ static void load_cl_kernels(ggml_backend_opencl_context *backend_ctx) { backend_ctx->kernel_gemv_noshuffle_q5_k_f32_32b_trans = nullptr; backend_ctx->kernel_gemm_noshuffle_q5_k_f32_32b_trans_ila_a8_bin = nullptr; backend_ctx->kernel_gemm_noshuffle_q5_k_q8_1_dp4a_ila_a8_bin = nullptr; - if (backend_ctx->adreno_gen == ADRENO_GPU_GEN::X2E) { - { + { + if (backend_ctx->has_vector_subgroup_broadcast) { std::string opts = std::string("-cl-std=") + opencl_c_std + " -cl-mad-enable " " -DSIMDGROUP_WIDTH=" +