MCPcopy
hub / github.com/tinygrad/tinygrad / AMDQueueDesc

Class AMDQueueDesc

tinygrad/runtime/ops_amd.py:671–691  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

669
670@dataclass
671class AMDQueueDesc:
672 ring: MMIOInterface
673 read_ptr: MMIOInterface
674 write_ptr: MMIOInterface
675 doorbell: MMIOInterface
676 put_value: int = 0
677 params: tuple|None = None # setup_ring params for recovery
678
679 def signal_doorbell(self, dev, doorbell_value:int|None=None):
680 try:
681 self.write_ptr[0] = self.put_value
682
683 # Ensure all prior writes are visible to the GPU.
684 System.memory_barrier()
685
686 # Flush hdp if queue is in dev mem.
687 if dev.is_am() and not dev.is_usb(): dev.iface.dev_impl.gmc.flush_hdp()
688 self.doorbell[0] = self.put_value if doorbell_value is None else doorbell_value
689 except Exception as e:
690 dev.error_state = e
691 raise
692
693class KFDIface:
694 kfd:FileIOInterface|None = None

Callers 2

create_queueMethod · 0.70
create_queueMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…