| 1317 | } |
| 1318 | |
| 1319 | static void ggml_cl_pool_free(cl_mem mem, size_t size) { |
| 1320 | scoped_spin_lock lock(g_cl_pool_lock); |
| 1321 | |
| 1322 | for (int i = 0; i < MAX_CL_BUFFERS; ++i) { |
| 1323 | cl_buffer& b = g_cl_buffer_pool[i]; |
| 1324 | if (b.size == 0) { |
| 1325 | b.mem = mem; |
| 1326 | b.size = size; |
| 1327 | return; |
| 1328 | } |
| 1329 | } |
| 1330 | fprintf(stderr, "WARNING: cl buffer pool full, increase MAX_CL_BUFFERS\n"); |
| 1331 | clReleaseMemObject(mem); |
| 1332 | } |
| 1333 | |
| 1334 | void ggml_cl_free_data(const struct ggml_tensor* tensor) { |
| 1335 | if (tensor->backend != GGML_BACKEND_GPU) { |
no test coverage detected