| 209 | self.allocator._copyin(self._buf, mv) |
| 210 | return self |
| 211 | def copyout(self, mv:memoryview) -> memoryview: |
| 212 | mv = flat_mv(mv) |
| 213 | assert len(mv) == self.nbytes, f"size mismatch, {len(mv)=} != {self.dtype=} {self.size=}" |
| 214 | assert self.is_initialized(), "can't copyout unallocated buffer" |
| 215 | self.allocator._copyout(mv, self._buf) |
| 216 | return mv |
| 217 | def view(self, size:int, dtype:DType, offset:int) -> Buffer: |
| 218 | assert offset < self.nbytes, "offset must be less than nbytes" |
| 219 | return Buffer(self.device, size, dtype, base=self.base, offset=self.offset+offset) |