• b11815 7170cad4d0

    sycl: fix CONV_2D wrong results for non-contiguous input (#30363)

    darthrubik released this 2026-10-22 03:19:58 -05:00 | 12 commits to master since this release

    • sycl: fix CONV_2D wrong results for non-contiguous input

    The kernel indexes the input as a contiguous [W, H, C, N] tensor, but
    supports_op claimed the op for any layout. A non-contiguous (e.g. CWHN
    permuted) input was read with the wrong element offsets, silently
    producing wrong results.

    Gate the CONV_2D op on input and kernel contiguity, matching the
    CUDA backend contract, and assert input contiguity in the op.

    test-backend-ops -b SYCL0 -o CONV_2D: goes from 16 failures to 0,
    none.

      2006/2006 tests passed
      Backend SYCL0: OK
    Backend 2/2: CPU
      Skipping
    2/2 backends passed
    OK
    

    Assisted-by: pi (unsloth/Qwen3.8-27B-GGUF:Q4_K_M via llama.cpp)

    • sycl : CONV_2D cwhn=1 support

    Make the SYCL backend compute GGML_OP_CONV_2D correctly for cwhn=1 (CWHN
    channel-order) inputs and kernels, so the previously failing test-
    backend-ops CONV_2D cases pass on SYCL instead of being skipped or
    miscomputed.

    • Implement CWHN layout support in ggml/src/ggml-sycl/conv2d.cpp
      (ggml_sycl_op_conv2d).
    • Update SYCL supports_op for GGML_OP_CONV_2D in
      ggml/src/ggml-sycl/ggml-sycl.cpp to accept both layouts.

    Assisted-by: pi (Greatjedi/Qwen3.8-27B-Intel-Arc-Tuned-GGUF via llama.cpp)

    • sycl docs : update ops for SYCL
    Downloads