MCPcopy
hub / github.com/tinygrad/tinygrad / create_queue

Method create_queue

tinygrad/runtime/ops_amd.py:1039–1056  ·  view source on GitHub ↗
(self, queue_type, ring_size, ctx_save_restore_size=0, eop_buffer_size=0, ctl_stack_size=0, debug_memory_size=0, idx=0)

Source from the content-addressed store, hash-verified

1037 self.sqtt_next_cmd_id = itertools.count(0)
1038
1039 def create_queue(self, queue_type, ring_size, ctx_save_restore_size=0, eop_buffer_size=0, ctl_stack_size=0, debug_memory_size=0, idx=0):
1040 ring = self.iface.alloc(ring_size, uncached=True, cpu_access=True)
1041 gart = self.iface.alloc(0x100, uncached=True, cpu_access=True)
1042
1043 if queue_type == kfd.KFD_IOC_QUEUE_TYPE_COMPUTE_AQL:
1044 self.aql_gart = gart
1045 self.aql_desc = hsa.amd_queue_t(queue_properties=hsa.AMD_QUEUE_PROPERTIES_IS_PTR64 | hsa.AMD_QUEUE_PROPERTIES_ENABLE_PROFILING,
1046 read_dispatch_id_field_base_byte_offset=getattr(hsa.amd_queue_t, 'read_dispatch_id').offset,
1047 max_cu_id=(self.cu_cnt * self.xccs) - 1, max_wave_id=self.waves_per_cu - 1)
1048 self.aql_gart.cpu_view().view(fmt='B')[:ctypes.sizeof(self.aql_desc)] = bytes(self.aql_desc)
1049
1050 cwsr_buffer_size = round_up((ctx_save_restore_size + debug_memory_size) * self.xccs, mmap.PAGESIZE)
1051 cwsr_buffer = self.iface.alloc(cwsr_buffer_size) if ctx_save_restore_size else None
1052 eop_buffer = self.iface.alloc(eop_buffer_size) if eop_buffer_size else None
1053
1054 return (self.iface.create_queue(queue_type, ring, gart, rptr=getattr(hsa.amd_queue_t, 'read_dispatch_id').offset,
1055 wptr=getattr(hsa.amd_queue_t, 'write_dispatch_id').offset, eop_buffer=eop_buffer, cwsr_buffer=cwsr_buffer,
1056 ctx_save_restore_size=ctx_save_restore_size, ctl_stack_size=ctl_stack_size, idx=idx))
1057
1058 def sdma_queue(self, idx:int):
1059 if getenv("AMD_DISABLE_SDMA"): return None

Callers 2

__init__Method · 0.95
sdma_queueMethod · 0.95

Calls 5

round_upFunction · 0.90
allocMethod · 0.45
viewMethod · 0.45
cpu_viewMethod · 0.45
create_queueMethod · 0.45

Tested by

no test coverage detected