mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	metal : use autoreleasepool to avoid memory leaks (#5437)
There appears to be a known memory leak when using the `MLTCommandBuffer`. It is suggested to use `@autoreleasepool` in [1,2] [1] https://developer.apple.com/forums/thread/662721 [2] https://forums.developer.apple.com/forums/thread/120931 This change-set wraps the `ggml_metal_graph_compute` in a `@autoreleasepool`. This commit addresses https://github.com/ggerganov/llama.cpp/issues/5436
This commit is contained in:
		| @@ -687,6 +687,7 @@ static bool ggml_metal_graph_compute( | |||||||
|         struct ggml_metal_context * ctx, |         struct ggml_metal_context * ctx, | ||||||
|                struct ggml_cgraph * gf) { |                struct ggml_cgraph * gf) { | ||||||
|  |  | ||||||
|  |     @autoreleasepool { | ||||||
|     MTLComputePassDescriptor * edesc = MTLComputePassDescriptor.computePassDescriptor; |     MTLComputePassDescriptor * edesc = MTLComputePassDescriptor.computePassDescriptor; | ||||||
|     edesc.dispatchType = MTLDispatchTypeSerial; |     edesc.dispatchType = MTLDispatchTypeSerial; | ||||||
|  |  | ||||||
| @@ -2272,6 +2273,7 @@ static bool ggml_metal_graph_compute( | |||||||
|         [[MTLCaptureManager sharedCaptureManager] stopCapture]; |         [[MTLCaptureManager sharedCaptureManager] stopCapture]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     } | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ian Bull
					Ian Bull