Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

oneAPI.jl shims: uncaught oneMKL exceptions, batched trsm pointer types, host sync per oneMKL call

Aperta
#148 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
22/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
c, julia
Ambito
performance

Direzione di ricerca

Start by reading ext/SparseDirectSolverOneAPIExt.jl alongside PLAN §2.4, then inspect the oneMKL bindings and the @test_skip in test_api.jl. Reproduce the sytrf abort and the host-synchronizing shim behavior, and separate the upstream oneAPI.jl reports from the T32 benchmark work comparing :ka with oneMKL on regime-C fronts. Done means the upstream limitations are filed and the measurement is sufficient to decide whether :auto should move to :ka or use a width threshold.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

found-by-agent oneapi upstream

Found while working on: T31 (PR #136)

What: limits of oneAPI.jl (main, 94aa6f2) that shape ext/SparseDirectSolverOneAPIExt.jl:
(a) the *_scratchpad_size C shims do not catch oneMKL exceptions, so sytrf (unsupported on the Data Center GPU Max 1550) aborts the process — there is no vendor_sytrf! binding for that reason;
(b) the generated onemklZtrsm_batch_strided binding declares Ptr{ComplexF32} arguments, and the strided-batch trsm bindings take host Ptrs, not ZePtrs — the extension passes typed raw pointers;
(c) every shim ends in wait_and_throw, so each oneMKL call synchronizes the host. On the regime-C :auto path (gemm/syrk/herk/trsm stay on oneMKL) every regime-C front therefore synchronizes, a deviation from PLAN §2.4 (no host synchronization in the numeric phase); :auto keeps LAPACK potrf/getrf on the KA kernels (_auto_vendor_dense);
(d) no cumulative device allocation counter, so device_allocated cannot be checked on oneAPI (@test_skip in test_api.jl).
Batched potrf/getrf report one status per batch, so uniform batches use the KA kernels.

Why it is out of scope: (a), (b), (d) are upstream oneAPI.jl issues; (c) needs a measurement of oneMKL BLAS vs allocation-free :ka per front width, which is T32 (#146) work.

Suggested fix or plan change: report (a), (b), (d) upstream; in T32, measure :ka vs oneMKL BLAS on regime-C fronts and move :auto to :ka (or a width threshold) if the synchronization costs more than the vendor BLAS gains.

Lingua principale
Julia
Stelle
4
Fork
0
Merge medio
7h 54m
PR unite (30g)
84

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di exanauts/SparseDirectSolver.jl

Tutte le issue di exanauts/SparseDirectSolver.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.