From 8efc8d064f99e207c7bea8dcb599e20f80ccd5ce Mon Sep 17 00:00:00 2001 From: nimlgen <138685161+nimlgen@users.noreply.github.com> Date: Sat, 13 Jun 2026 14:31:58 +0300 Subject: [PATCH] unique based on opaque in from_buffer (#16609) --- tinygrad/uop/ops.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tinygrad/uop/ops.py b/tinygrad/uop/ops.py index 63749c6d91..844727642c 100644 --- a/tinygrad/uop/ops.py +++ b/tinygrad/uop/ops.py @@ -746,7 +746,8 @@ class UOp(RandMixin, metaclass=UOpMetaClass): return UOp(Ops.BUFFER, dtype, (UOp.unique(num), UOp(Ops.DEVICE, arg=device)), size) @staticmethod def from_buffer(opaque:Buffer, device:str|tuple[str, ...]|None=None): - buffers[uop:=UOp.new_buffer(device or opaque.device, opaque.size, opaque.dtype)] = opaque.ref(1) + if (uop:=UOp.new_buffer(device or opaque.device, opaque.size, opaque.dtype, num=-id(opaque))) not in buffers: buffers[uop] = opaque.ref(1) + else: assert buffers[uop] is opaque return uop @staticmethod def empty(shape:tuple[sint, ...], dtype:DTypeLike|None=None, device:str|tuple[str, ...]|None=None, axis:int|None=None, num=None) -> UOp: