MCPcopy Index your code
hub / github.com/tinygrad/tinygrad / copy

Method copy

tinygrad/runtime/ops_amd.py:474–484  ·  view source on GitHub ↗
(self, dest:HCQBuffer, src:HCQBuffer, copy_size:int)

Source from the content-addressed store, hash-verified

472 self.internal_cmd_sizes.append(len(arr))
473
474 def copy(self, dest:HCQBuffer, src:HCQBuffer, copy_size:int):
475 copied, copy_commands = 0, (copy_size + self.max_copy_size - 1) // self.max_copy_size
476
477 for _ in range(copy_commands):
478 step_copy_size = min(copy_size - copied, self.max_copy_size)
479
480 self.q(self.sdma.SDMA_OP_COPY | self.sdma.SDMA_PKT_COPY_LINEAR_HEADER_SUB_OP(self.sdma.SDMA_SUBOP_COPY_LINEAR),
481 self.sdma.SDMA_PKT_COPY_LINEAR_COUNT_COUNT(step_copy_size - 1), 0, *data64_le(src.va_addr + copied), *data64_le(dest.va_addr + copied))
482
483 copied += step_copy_size
484 return self
485
486 def signal(self, signal:AMDSignal, value:sint=0):
487 fence_flags = self.sdma.SDMA_PKT_FENCE_HEADER_MTYPE(3) if self.dev.target[0] != 9 else 0

Callers 1

_copyoutMethod · 0.45

Calls 2

qMethod · 0.95
data64_leFunction · 0.90

Tested by

no test coverage detected