Skip to content

Commit 95a6eba

Browse files
authored
opencl: fix leak in Adreno q8_0 path (ggml-org#21212)
1 parent 12dbf1d commit 95a6eba

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

ggml/src/ggml-opencl/ggml-opencl.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9612,6 +9612,9 @@ static void ggml_cl_mul_mat_q8_0_f32_adreno(ggml_backend_t backend, const ggml_t
96129612
cl_mem B_image1d;
96139613
cl_mem B_sub_buffer;
96149614
cl_mem S_image1d;
9615+
// for B transpose
9616+
cl_mem B_image1d_trans = nullptr;
9617+
cl_mem B_d = nullptr;
96159618

96169619
cl_mem D_image1d;
96179620
cl_mem D_sub_buffer;
@@ -9703,9 +9706,6 @@ static void ggml_cl_mul_mat_q8_0_f32_adreno(ggml_backend_t backend, const ggml_t
97039706
global_work_size[2] = 1;
97049707
} else {
97059708
cl_ulong offsetd = extrad->offset + dst->view_offs;
9706-
cl_mem B_image1d_trans = nullptr;
9707-
// for B transpose
9708-
cl_mem B_d = nullptr;
97099709
int padding;
97109710

97119711
//how many extra elements beyond multiple of 8
@@ -9800,6 +9800,12 @@ static void ggml_cl_mul_mat_q8_0_f32_adreno(ggml_backend_t backend, const ggml_t
98009800
CL_CHECK(clReleaseMemObject(S_image1d));
98019801
CL_CHECK(clReleaseMemObject(D_sub_buffer));
98029802
CL_CHECK(clReleaseMemObject(D_image1d));
9803+
if (B_image1d_trans) {
9804+
CL_CHECK(clReleaseMemObject(B_image1d_trans));
9805+
}
9806+
if (B_d) {
9807+
CL_CHECK(clReleaseMemObject(B_d));
9808+
}
98039809
#else
98049810
GGML_UNUSED(backend);
98059811
GGML_UNUSED(src0);

0 commit comments

Comments
 (0)