Skip to content

[SYCL] IC/ILU NotImplemented in Ginkgo 1.10: discrepancy with Tsai 2023 paper + 34M-cell int32 overflow in ISAI #2015

Description

@heikogleu-dev

Context

Pioneer CFD work: OpenFOAM 13 + OGL + Ginkgo 1.10 SYCL on
Intel Arc Pro B70 Pro (Battlemage Xe2), Ubuntu 26.04, oneAPI 2026.0.

Finding 1: SYCL IC/ILU NotImplemented

Tsai et al. 2023 (Wiley CCPE, doi:10.1002/cpe.7400) explicitly states:

"We have ported the following preconditioner functionality to the DPC++
backend: ... ParILU, ParIC, ParILUT, ParICT, ISAI"

Ginkgo 1.10 release notes state:

"New implementations of the ILU and IC factorization for
CUDA, HIP, OpenMP, and Reference backends."
→ SYCL is absent from this list.

Our measurement confirms:
preconditioner IC with executor sycl → gko::NotImplemented
preconditioner ICT with executor sycl → DEVICE_LOST

Question: Is SYCL IC/ILU in a separate development branch?
What is the roadmap for getting it into a stable release?

Finding 2: ISAI int32 overflow at 34M cells

With ISAI sparsityPower=3, scaling=-1.0 on a 34M-cell CFD mesh
(np=8, ~4.25M cells/rank):
SYCL error: Provided range and/or offset does not fit in int

This suggests the ISAI sparsity pattern generation uses int32 internally,
which overflows at this problem size. ISAI sparsityPower=1 runs but diverges.

Question: Is there a 64-bit index path for ISAI on SYCL?

Finding 3: BJ maxBlockSize > 1 OOM on SYCL

Tested BS=2,4,8,16 — all crash with gko::AllocationError.
GINKGO_JACOBI_FULL_OPTIMIZATIONS=ON does not fix this.
The workspace allocation appears to be O(N × BS²) or worse in SYCL.

Profiling Results (for KIT/Intel interest)

Direct measurement on B70 Pro, 34M cells, np=8, BJ(1):

  • GPU active: 34% of wall clock
  • GPU idle: 66% (MPI AllReduce wait + forced host-buffer copies)
  • When active: 2528 MHz avg (90% of 2800 spec)
  • Kernel launch: 5.6 µs sync (CUDA-par — NOT 100 µs as some docs claim)
  • forceHostBuffer=false: crashes in gko::mpi::all_to_all_v (no GPU-aware MPI for xe)

Full documentation:
https://github.com/heikogleu-dev/Openfoam13---GPU-Offloading-Intel-B70-Pro

Summary Question

With BJ(1) as only working SYCL preconditioner (always hits maxIter=200),
GPU CFD on Battlemage cannot compete with CPU GAMG (5-10 iter).
What is the realistic timeline for SYCL IC or Multigrid becoming
production-ready for distributed CFD workloads?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions