T31 — oneAPI and Metal extensions
Maintainers usually reply within 1 day
@dmaldona is already working on this.
Since Oct 14, 2026.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 12/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- backend
Research direction
The full spec lives in the T31 section of TASKS.md on main, not in this issue, so read that first. Work cannot start until #117 (T30) is merged, and the relevant code is the oneAPI and Metal extensions plus select_impl and the impl = :ka dense fallbacks. Done means the listed tests pass on the KA CPU backend and the CUDA/AMDGPU runners, with Aqua green and the TASKS.md report filled in.
Written by the indexing model from the issue text.
Description
Task T31 of TASKS.md — milestone M2 — Numeric kernels. The remainder of T23 after PR #113 delivered the AMDGPU extension and the per-backend local-memory cap alone (#112); placed at the end of the chain since it blocks nothing and the owner has no oneAPI/Metal hardware.
Depends on: #117 (T30) must be merged first; tasks are strictly sequential.
Summary (from TASKS.md): the oneAPI extension (oneSparseMatrixCSR adapters, oneMKL dense bindings, max_local_bytes) and the Metal extension (MPS or KA only, 32 KiB cap, Float32 only). Split on 2026-10-27 (PR #136): the #53 owner note (allocation-free impl = :ka dense fallbacks) and the :auto order of #112 moved to T32 (#146), which closes #112 and #53.
Scope and deliverables: the section T31 of TASKS.md on main is the single source of truth; it is not copied here so it cannot drift.
Definition of done:
- Every test listed in the task passes on the KA CPU backend and on the CUDA/AMDGPU self-hosted runners (
Run testsandAquagreen on the PR). - The task's status marker in
TASKS.mdis set and its Report block is filled in honestly. - A PR titled
T31: …from branchtask/T31-<slug>withCloses #118in its body, reviewed by the Claude reviewer withVERDICT: APPROVE. - Out-of-scope bugs or follow-ups found on the way are opened as separate issues (label
found-by-agent), not fixed silently.
How it starts: add the label claude:implement (the pipeline does this automatically after the previous task's PR merges; label on-hold to prevent that).
- Dominant language
- Julia
- Stars
- 4
- Forks
- 0
- Avg merge
- 7h 54m
- Merged PRs (30d)
- 84
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from exanauts/SparseDirectSolver.jl
-
found-by-agent performance upstream
Difficulty 4/5 3-5 days Newbie friendliness 38/100
exanauts/SparseDirectSolver.jl#174 · 1 comment ·
Maintainers usually reply within 1 day
-
bug enhancement metal on-hold performance
Difficulty 5/5 Over a week Newbie friendliness 25/100
exanauts/SparseDirectSolver.jl#168 ·
Maintainers usually reply within 1 day
-
In-front Bunch–Kaufman pivoting for the fused pipeline: state of the closed prototypes #135 and #139Opendesign-record enhancement found-by-agent fused madnlp
Difficulty 5/5 Over a week Newbie friendliness 20/100
exanauts/SparseDirectSolver.jl#167 ·
Maintainers usually reply within 1 day
-
design-record enhancement found-by-agent performance
Difficulty 5/5 Over a week Newbie friendliness 20/100
exanauts/SparseDirectSolver.jl#163 ·
Maintainers usually reply within 1 day
-
api found-by-agent
Difficulty 4/5 1-2 days Newbie friendliness 42/100
exanauts/SparseDirectSolver.jl#159 ·
Maintainers usually reply within 1 day
All issues in exanauts/SparseDirectSolver.jl
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
osrep/Runes2P.jl#153 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
WaterLily-jl/WaterLily-Examples#49 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
documentation invalid
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
JuliaPhysics/BeamletOptics.jl#190 ·
Maintainers usually reply within 1 day