mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	OpenCL: Add release memory (#1741)
* Add opencl release memory * Rename function name
This commit is contained in:
		 Robert Sung-wook Shin
					Robert Sung-wook Shin
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							ae9663f188
						
					
				
				
					commit
					98ed165574
				
			| @@ -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 | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user