unique based on opaque in from_buffer (#16609)

This commit is contained in:
nimlgen 2026-06-13 14:31:58 +03:00 committed by GitHub
commit 8efc8d064f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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: