MCPcopy
hub / github.com/tinygrad/tinygrad / bind

Method bind

tinygrad/runtime/ops_amd.py:396–405  ·  view source on GitHub ↗
(self, dev:AMDDevice)

Source from the content-addressed store, hash-verified

394 return self
395
396 def bind(self, dev:AMDDevice):
397 self.binded_device = dev
398 self.hw_page = dev.allocator.alloc(len(self._q) * 4, BufferSpec(cpu_access=True, nolru=True, uncached=True))
399 hw_view = self.hw_page.cpu_view().view(fmt='I')
400 for i, value in enumerate(self._q): hw_view[i] = value
401
402 self.indirect_cmd = [self.pm4.PACKET3(self.pm4.PACKET3_INDIRECT_BUFFER, 2), *data64_le(self.hw_page.va_addr),
403 len(self._q) | self.pm4.INDIRECT_BUFFER_VALID]
404 self._q = hw_view
405 return self
406
407 def _submit(self, dev:AMDDevice):
408 cmds = self.indirect_cmd if dev == self.binded_device else self._q

Callers

nothing calls this directly

Calls 5

BufferSpecClass · 0.90
data64_leFunction · 0.90
allocMethod · 0.45
viewMethod · 0.45
cpu_viewMethod · 0.45

Tested by

no test coverage detected