MCPcopy
hub / github.com/tinygrad/tinygrad / exec

Method exec

tinygrad/runtime/ops_amd.py:423–431  ·  view source on GitHub ↗
(self, prg:AMDProgram, args_state:CLikeArgsState, global_size:tuple[sint, ...], local_size:tuple[sint, ...])

Source from the content-addressed store, hash-verified

421
422class AMDComputeAQLQueue(AMDComputeQueue):
423 def exec(self, prg:AMDProgram, args_state:CLikeArgsState, global_size:tuple[sint, ...], local_size:tuple[sint, ...]):
424 self.bind_args_state(args_state)
425 if prg.dev.sqtt_enabled: self.sqtt_setup_exec(prg, global_size)
426 self._q.append(pkt:=hsa.hsa_kernel_dispatch_packet_t(header=AQL_HDR | (hsa.HSA_PACKET_TYPE_KERNEL_DISPATCH << hsa.HSA_PACKET_HEADER_TYPE),
427 setup=3<<hsa.HSA_KERNEL_DISPATCH_PACKET_SETUP_DIMENSIONS, private_segment_size=prg.private_segment_size,
428 group_segment_size=prg.group_segment_size, kernel_object=prg.aql_prog_addr, kernarg_address=args_state.buf.va_addr))
429 self.bind_sints_to_mem(*local_size, mem=(pkt_view:=MMIOInterface(addr=ctypes.addressof(pkt), nbytes=ctypes.sizeof(pkt))), fmt='H', offset=4)
430 self.bind_sints_to_mem(*[l * g for l,g in zip(local_size, global_size)], mem=pkt_view, fmt='I', offset=12)
431 return self
432
433 def _pm4_pkt(self, addr:sint, cnt:int) -> bytes:
434 return bytes(array.array('I', [AQL_HDR | (hsa.HSA_PACKET_TYPE_VENDOR_SPECIFIC << hsa.HSA_PACKET_HEADER_TYPE) | (1 << 16),

Callers

nothing calls this directly

Calls 5

MMIOInterfaceClass · 0.90
bind_args_stateMethod · 0.80
sqtt_setup_execMethod · 0.80
appendMethod · 0.80
bind_sints_to_memMethod · 0.80

Tested by

no test coverage detected