Skip to content

Add JLArray tests for GPU-like array interface compliance#94

Merged
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:interface-check-20260101-030232
Jan 2, 2026
Merged

Add JLArray tests for GPU-like array interface compliance#94
ChrisRackauckas merged 1 commit intoSciML:masterfrom
ChrisRackauckas-Claude:interface-check-20260101-030232

Conversation

@ChrisRackauckas-Claude
Copy link
Contributor

Summary

This PR adds JLArray-based tests to enhance the interface compliance testing of SimpleDiffEq.jl:

  • Added JLArrays as a test dependency - JLArrays provide GPU-like arrays that catch interface violations such as improper scalar indexing or type hardcoding
  • Added JLArray-based tests to interface_tests.jl - Tests verify that all OOP (out-of-place) solvers correctly support GPU-like arrays
  • Added compat entries for JLArrays (0.1, 0.2, 0.3) and OrdinaryDiffEq (6)

Interface Compliance Results

All OOP solvers correctly support JLArrays:

  • ✅ SimpleEuler (OOP)
  • ✅ SimpleRK4 (OOP)
  • ✅ SimpleTsit5 (OOP)
  • ✅ SimpleATsit5 (OOP)
  • ✅ GPUSimpleTsit5
  • ✅ GPUSimpleATsit5

The IIP (in-place) versions use scalar indexing for performance, which is the expected design - they are CPU-optimized, while the GPU* variants are designed for GPU compatibility.

Pre-existing Interface Compliance

The package already had good interface compliance:

  • ✅ BigFloat support (scalars, vectors, SVector) - tested in existing interface_tests.jl
  • ✅ SVector support - tested in gpu_ode_regression.jl
  • ✅ Proper use of zero(u0) and similar() for type-generic initialization
  • ✅ Broadcasting in OOP versions for GPU compatibility

Test plan

  • Run full test suite locally - all 23 interface tests pass (up from 15)
  • CI tests pass

cc @ChrisRackauckas

🤖 Generated with Claude Code

- Added JLArrays as a test dependency
- Added JLArray-based tests to interface_tests.jl to verify GPU-like
  array compatibility with all OOP (out-of-place) solvers
- Added compat entries for JLArrays and OrdinaryDiffEq

All OOP solvers (SimpleEuler, SimpleRK4, SimpleTsit5, SimpleATsit5,
GPUSimpleTsit5, GPUSimpleATsit5) correctly support JLArrays without
scalar indexing issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 336ac96 into SciML:master Jan 2, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants