Skip to content

Commit 97a20c0

Browse files
authored
opencl: use max_alloc_size in backend ctx instead of querying again (#12705)
1 parent f01bd02 commit 97a20c0

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

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

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -924,27 +924,24 @@ static ggml_backend_opencl_context * ggml_cl2_init(ggml_backend_dev_t dev) {
924924
// TODO: fixme: these sizes are hardcoded for now.
925925
// they should be allocated based on the model's size
926926
// and the device's max alloc size
927-
size_t max_alloc_size;
928-
CL_CHECK(clGetDeviceInfo(device, CL_DEVICE_MAX_MEM_ALLOC_SIZE, sizeof(size_t), &max_alloc_size, NULL));
929-
930927
// Allocate intermediate buffers and images
931928
size_t required_A_q_d_bytes = 311164928;
932929
size_t required_A_s_d_bytes = 38895616;
933930
size_t required_B_d_bytes = 45088768;
934931

935932
// Ensure buffer sizes do not exceed the maximum allocation size
936-
size_t max_A_q_d_bytes = MIN(required_A_q_d_bytes, max_alloc_size);
937-
size_t max_A_s_d_bytes = MIN(required_A_s_d_bytes, max_alloc_size);
938-
size_t max_B_d_bytes = MIN(required_B_d_bytes, max_alloc_size);
939-
if (required_A_q_d_bytes > max_alloc_size) {
933+
size_t max_A_q_d_bytes = MIN(required_A_q_d_bytes, backend_ctx->max_alloc_size);
934+
size_t max_A_s_d_bytes = MIN(required_A_s_d_bytes, backend_ctx->max_alloc_size);
935+
size_t max_B_d_bytes = MIN(required_B_d_bytes, backend_ctx->max_alloc_size);
936+
if (required_A_q_d_bytes > backend_ctx->max_alloc_size) {
940937
GGML_LOG_WARN("ggml_opencl: A_q_d buffer size reduced from %zu to %zu due to device limitations.\n",
941938
required_A_q_d_bytes, max_A_q_d_bytes);
942939
}
943-
if (required_A_s_d_bytes > max_alloc_size) {
940+
if (required_A_s_d_bytes > backend_ctx->max_alloc_size) {
944941
GGML_LOG_WARN("ggml_opencl: A_s_d buffer size reduced from %zu to %zu due to device limitations.\n",
945942
required_A_s_d_bytes, max_A_s_d_bytes);
946943
}
947-
if (required_B_d_bytes > max_alloc_size) {
944+
if (required_B_d_bytes > backend_ctx->max_alloc_size) {
948945
GGML_LOG_WARN("ggml_opencl: B_d buffer size reduced from %zu to %zu due to device limitations.\n",
949946
required_B_d_bytes, max_B_d_bytes);
950947
}

0 commit comments

Comments
 (0)