From 205a1212b77e867c9a168441c90a46cc5ff14627 Mon Sep 17 00:00:00 2001 From: chenyu Date: Mon, 9 Feb 2026 13:53:20 -0500 Subject: [PATCH] delegate non Tensor src setitem to assign (#14647) cannot do this for DISK in the unified path --- tinygrad/tensor.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tinygrad/tensor.py b/tinygrad/tensor.py index 39e8a8f762..bbf5da5902 100644 --- a/tinygrad/tensor.py +++ b/tinygrad/tensor.py @@ -1286,9 +1286,10 @@ class Tensor(OpMixin): if is_advanced: raise RuntimeError("advanced setitem is not supported for DISK tensors") self.realize()._getitem(indices).assign(v) return - if not isinstance(v, Tensor): v = Tensor(v, device=self.device, dtype=self.dtype) - if self.requires_grad or v.requires_grad: raise NotImplementedError("setitem with requires_grad is not supported") - if is_advanced: self.assign(self._getitem(indices, v)).realize() + if self.requires_grad or (isinstance(v, Tensor) and v.requires_grad): raise NotImplementedError("setitem with requires_grad is not supported") + if is_advanced: + if not isinstance(v, Tensor): v = Tensor(v, device=self.device, dtype=self.dtype) + self.assign(self._getitem(indices, v)).realize() else: # basic setitem self.realize() if not self.uop.is_writable_view(): raise RuntimeError("setitem target must be a writable view backed by a buffer")