From a562ee2c6e3581ab3360ddcb6ed00160e4bba1a0 Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Wed, 25 Dec 2024 23:12:55 +0300 Subject: [PATCH] BumpAllocator rename start -> base (#8415) --- tinygrad/runtime/graph/hcq.py | 2 +- tinygrad/runtime/ops_nv.py | 6 +++--- tinygrad/runtime/ops_qcom.py | 2 +- tinygrad/runtime/support/hcq.py | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tinygrad/runtime/graph/hcq.py b/tinygrad/runtime/graph/hcq.py index 352c5476da..a13663e5f8 100644 --- a/tinygrad/runtime/graph/hcq.py +++ b/tinygrad/runtime/graph/hcq.py @@ -31,7 +31,7 @@ class HCQGraph(MultiGraphRunner): # Fill initial arguments. self.ji_args: dict[int, HCQArgsState] = {} - kargs_alloc: dict[Compiled, BumpAllocator] = {dev:BumpAllocator(buf.size, start=cast(int, buf.va_addr)) for dev,buf in self.kernargs_bufs.items()} + kargs_alloc: dict[Compiled, BumpAllocator] = {dev:BumpAllocator(buf.size, base=cast(int, buf.va_addr)) for dev,buf in self.kernargs_bufs.items()} for j,ji in enumerate(jit_cache): if not isinstance(ji.prg, CompiledRunner): continue diff --git a/tinygrad/runtime/ops_nv.py b/tinygrad/runtime/ops_nv.py index ffe370b9a4..43c2556cc5 100644 --- a/tinygrad/runtime/ops_nv.py +++ b/tinygrad/runtime/ops_nv.py @@ -292,8 +292,8 @@ class NVDevice(HCQCompiled[NVSignal]): # TODO: Need a proper allocator for va addresses # 0x1000000000 - 0x2000000000, reserved for system/cpu mappings # VA space is 48bits. - low_uvm_vaddr_allocator: BumpAllocator = BumpAllocator(size=0x1000000000, start=0x1000000000, wrap=False) - uvm_vaddr_allocator: BumpAllocator = BumpAllocator(size=(1 << 48) - 1, start=0x2000000000, wrap=False) + low_uvm_vaddr_allocator: BumpAllocator = BumpAllocator(size=0x1000000000, base=0x1000000000, wrap=False) + uvm_vaddr_allocator: BumpAllocator = BumpAllocator(size=(1 << 48) - 1, base=0x2000000000, wrap=False) host_object_enumerator: int = 0x1000 def _new_gpu_fd(self): @@ -450,7 +450,7 @@ class NVDevice(HCQCompiled[NVSignal]): rmctrl.gpfifo_schedule(self.fd_ctl, self.root, channel_group, bEnable=1) self.cmdq_page:HCQBuffer = self._gpu_alloc(0x200000, cpu_access=True, tag="cmdq") - self.cmdq_allocator = BumpAllocator(size=self.cmdq_page.size, start=cast(int, self.cmdq_page.va_addr), wrap=True) + self.cmdq_allocator = BumpAllocator(size=self.cmdq_page.size, base=cast(int, self.cmdq_page.va_addr), wrap=True) self.cmdq: memoryview = to_mv(cast(int, self.cmdq_page.va_addr), 0x200000).cast("I") self.num_gpcs, self.num_tpc_per_gpc, self.num_sm_per_tpc, self.max_warps_per_sm, self.sm_version = self._query_gpu_info('num_gpcs', diff --git a/tinygrad/runtime/ops_qcom.py b/tinygrad/runtime/ops_qcom.py index 5597e535d6..b6a9563389 100644 --- a/tinygrad/runtime/ops_qcom.py +++ b/tinygrad/runtime/ops_qcom.py @@ -335,7 +335,7 @@ class QCOMDevice(HCQCompiled): self.ctx = kgsl.IOCTL_KGSL_DRAWCTXT_CREATE(self.fd, flags=flags).drawctxt_id self.cmd_buf = self._gpu_alloc(16 << 20) - self.cmd_buf_allocator = BumpAllocator(size=self.cmd_buf.size, start=cast(int, self.cmd_buf.va_addr), wrap=True) + self.cmd_buf_allocator = BumpAllocator(size=self.cmd_buf.size, base=cast(int, self.cmd_buf.va_addr), wrap=True) self.border_color_buf = self._gpu_alloc(0x1000, fill_zeroes=True) diff --git a/tinygrad/runtime/support/hcq.py b/tinygrad/runtime/support/hcq.py index 5f5978e9c9..dd967a2e77 100644 --- a/tinygrad/runtime/support/hcq.py +++ b/tinygrad/runtime/support/hcq.py @@ -15,13 +15,13 @@ ArgsStateType = TypeVar('ArgsStateType', bound='HCQArgsState') QueueType = TypeVar('QueueType', bound='HWQueue') class BumpAllocator: - def __init__(self, size:int, start:int=0, wrap:bool=True): self.size, self.ptr, self.start_off, self.wrap = size, 0, start, wrap + def __init__(self, size:int, base:int=0, wrap:bool=True): self.size, self.ptr, self.base, self.wrap = size, 0, base, wrap def alloc(self, size:int, alignment:int=1) -> int: if round_up(self.ptr, alignment) + size > self.size: if not self.wrap: raise RuntimeError("Out of memory") self.ptr = 0 self.ptr = (res:=round_up(self.ptr, alignment)) + size - return res + self.start_off + return res + self.base class HWQueue(Generic[SignalType, DeviceType, ProgramType, ArgsStateType]): """ @@ -313,7 +313,7 @@ class HCQCompiled(Compiled, Generic[SignalType]): super().__init__(device, allocator, renderer, compiler, runtime, HCQGraph) self.kernargs_page:HCQBuffer = self.allocator.alloc(16 << 20, BufferSpec(cpu_access=True)) - self.kernargs_allocator:BumpAllocator = BumpAllocator(self.kernargs_page.size, start=cast(int, self.kernargs_page.va_addr), wrap=True) + self.kernargs_allocator:BumpAllocator = BumpAllocator(self.kernargs_page.size, base=cast(int, self.kernargs_page.va_addr), wrap=True) self.devices.append(self) def synchronize(self):