Fix uploading tensor data to device, including 3D, 4D, and non-contiguous tensors. Use correct offsets into data that is already in VRAM. Correct handling of OpenCL events when multiple commands are queued.
Broadcast src0 into src1 across dimensions 2 and 3 when needed. This is required for models that use GQA.