forked from tinygrad/tinygrad
metal: fix incorrect _free on interpreter exit (#11158)
This commit is contained in:
@@ -198,7 +198,8 @@ class MetalAllocator(LRUAllocator[MetalDevice]):
|
||||
ret = msg("newBufferWithLength:options:", objc_id)(self.dev.sysdevice, ctypes.c_ulong(size), MTLResourceOptions.MTLResourceStorageModeShared)
|
||||
if ret.value is None: raise MemoryError(f"Metal OOM while allocating {size=}")
|
||||
return MetalBuffer(ret, size)
|
||||
def _free(self, opaque:MetalBuffer, options): msg("release")(opaque.buf)
|
||||
def _free(self, opaque:MetalBuffer, options):
|
||||
if msg is not None and libobjc is not None: msg("release")(opaque.buf)
|
||||
def _transfer(self, dest:MetalBuffer, src:MetalBuffer, sz:int, src_dev:MetalDevice, dest_dev:MetalDevice):
|
||||
dest_dev.synchronize()
|
||||
src_command_buffer = msg("commandBuffer", objc_instance)(src_dev.mtl_queue)
|
||||
|
||||
Reference in New Issue
Block a user