mirror of
https://git.adityakumar.xyz/llama.cpp.git
synced 2024-11-09 23:29:44 +00:00
OpenCL: Add release memory (#1741)
* Add opencl release memory * Rename function name
This commit is contained in:
parent
ae9663f188
commit
98ed165574
3 changed files with 16 additions and 1 deletions
|
@ -662,6 +662,15 @@ static void ggml_cl_pool_free(cl_mem mem, size_t size) {
|
||||||
clReleaseMemObject(mem);
|
clReleaseMemObject(mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ggml_cl_free_data(const struct ggml_tensor* tensor) {
|
||||||
|
if (tensor->backend != GGML_BACKEND_GPU) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cl_mem mem = (cl_mem)tensor->data;
|
||||||
|
clReleaseMemObject(mem);
|
||||||
|
}
|
||||||
|
|
||||||
static cl_int ggml_cl_h2d_tensor_2d(cl_command_queue queue, cl_mem dst, size_t offset, const struct ggml_tensor * src, uint64_t i3, uint64_t i2, cl_event* ev) {
|
static cl_int ggml_cl_h2d_tensor_2d(cl_command_queue queue, cl_mem dst, size_t offset, const struct ggml_tensor * src, uint64_t i3, uint64_t i2, cl_event* ev) {
|
||||||
cl_int err;
|
cl_int err;
|
||||||
const uint64_t ne0 = src->ne[0];
|
const uint64_t ne0 = src->ne[0];
|
||||||
|
|
|
@ -16,6 +16,8 @@ void ggml_cl_mul_mat(const struct ggml_tensor * src0, const struct ggml_tensor
|
||||||
void * ggml_cl_host_malloc(size_t size);
|
void * ggml_cl_host_malloc(size_t size);
|
||||||
void ggml_cl_host_free(void * ptr);
|
void ggml_cl_host_free(void * ptr);
|
||||||
|
|
||||||
|
void ggml_cl_free_data(const struct ggml_tensor* tensor);
|
||||||
|
|
||||||
void ggml_cl_transform_tensor(struct ggml_tensor * tensor);
|
void ggml_cl_transform_tensor(struct ggml_tensor * tensor);
|
||||||
void ggml_cl_load_data(const char * fname, struct ggml_tensor * tensor, size_t offset);
|
void ggml_cl_load_data(const char * fname, struct ggml_tensor * tensor, size_t offset);
|
||||||
|
|
||||||
|
|
|
@ -210,7 +210,11 @@ struct llama_model {
|
||||||
for (size_t i = 0; i < tensors_by_name.size(); ++i) {
|
for (size_t i = 0; i < tensors_by_name.size(); ++i) {
|
||||||
ggml_cuda_free_data(tensors_by_name[i].second);
|
ggml_cuda_free_data(tensors_by_name[i].second);
|
||||||
}
|
}
|
||||||
#endif // GGML_USE_CUBLAS
|
#elif defined(GGML_USE_CLBLAST)
|
||||||
|
for (size_t i = 0; i < tensors_by_name.size(); ++i) {
|
||||||
|
ggml_cl_free_data(tensors_by_name[i].second);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue