Fix GPT2 with OpenCL backend. (#6821)

* Fix GPT2 with OpenCL backend.

* Add test for unaligned copies into OpenCL buffers.
This commit is contained in:
vladov
2024-10-01 01:57:22 -07:00
committed by GitHub
parent a16a8c5958
commit 501cfde7e6
2 changed files with 12 additions and 0 deletions

View File

@@ -74,6 +74,7 @@ class CLAllocator(LRUAllocator):
check(cl.clEnqueueWriteImage(self.device.queue, dest[0], False, (ctypes.c_size_t * 3)(0,0,0),
(ctypes.c_size_t * 3)(dest[1].image.shape[1],dest[1].image.shape[0],1), 0, 0, from_mv(src), 0, None, None))
else:
if ctypes.addressof(ctypes.c_char.from_buffer(src)) % 16: src = memoryview(bytearray(src))
check(cl.clEnqueueWriteBuffer(self.device.queue, dest[0], False, 0, len(src)*src.itemsize, from_mv(src), 0, None, None))
self.device.pending_copyin.append(src) # NOTE: these can't be freed until the GPU actually executes this command
def copyout(self, dest:memoryview, src:Tuple[ctypes._CData, BufferOptions]):