MCPcopy
hub / github.com/tinygrad/tinygrad / free

Method free

tinygrad/runtime/support/system.py:274–277  ·  view source on GitHub ↗
(self, b:HCQBuffer)

Source from the content-addressed store, hash-verified

272 return HCQBuffer(mapping.va_addr, size, view=barview, meta=PCIAllocationMeta(mapping, cpu_access, hMemory=mapping.paddrs[0][0]), owner=self.dev)
273
274 def free(self, b:HCQBuffer):
275 if b.owner != self.dev: self.dev.iface.dev_impl.mm.unmap_range(b.va_addr, b.size)
276 if b.owner == self.dev and b.meta.mapping.aspace is AddrSpace.PHYS: self.dev_impl.mm.vfree(b.meta.mapping)
277 if b.owner == self.dev and self.is_local() and b.meta.has_cpu_mapping: FileIOInterface.munmap(b.va_addr, b.size)
278
279 def p2p_paddrs(self, paddrs:list[tuple[int,int]]) -> tuple[list[tuple[int,int]], AddrSpace]:
280 return [(p + self.pci_dev.bar_info(self.vram_bar)[0], sz) for p, sz in paddrs], AddrSpace.SYS

Callers 3

_finiMethod · 0.45
_reallocMethod · 0.45
_unmapMethod · 0.45

Calls 4

is_localMethod · 0.95
vfreeMethod · 0.80
munmapMethod · 0.80
unmap_rangeMethod · 0.45

Tested by

no test coverage detected