Skip to content

Batched eigh for GPUs - #298

Open
kshyatt wants to merge 9 commits into
mainfrom
ksh/batched_eigh
Open

kshyatt wants to merge 9 commits into
mainfrom
ksh/batched_eigh

Conversation

@kshyatt

@kshyatt kshyatt commented Oct 6, 2026

Copy link
Copy Markdown
Member

Still needs AMD support

@kshyatt
kshyatt marked this pull request as draft October 6, 2026 15:19
@kshyatt kshyatt changed the title [WIP] Batched eigh Batched eigh for GPUs Oct 7, 2026
@kshyatt
kshyatt marked this pull request as ready for review October 7, 2026 09:56
@kshyatt
kshyatt requested review from Jutho and lkdvos October 7, 2026 09:57
@codecov

codecov Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.87225% with 105 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
ext/MatrixAlgebraKitAMDGPUExt/yarocsolver.jl 60.37% 84 Missing ⚠️
...ixAlgebraKitAMDGPUExt/MatrixAlgebraKitAMDGPUExt.jl 35.71% 9 Missing ⚠️
...MatrixAlgebraKitCUDAExt/MatrixAlgebraKitCUDAExt.jl 25.00% 6 Missing ⚠️
src/implementations/batched_eigh.jl 97.27% 4 Missing ⚠️
src/interface/batched_eigh.jl 0.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
ext/MatrixAlgebraKitCUDAExt/yacusolver.jl 97.00% <100.00%> (+0.62%) ⬆️
src/MatrixAlgebraKit.jl 100.00% <ø> (ø)
src/batches.jl 98.07% <100.00%> (ø)
src/common/gauge.jl 100.00% <100.00%> (ø)
src/interface/batched_eigh.jl 0.00% <0.00%> (ø)
src/implementations/batched_eigh.jl 97.27% <97.27%> (ø)
...MatrixAlgebraKitCUDAExt/MatrixAlgebraKitCUDAExt.jl 74.35% <25.00%> (-5.65%) ⬇️
...ixAlgebraKitAMDGPUExt/MatrixAlgebraKitAMDGPUExt.jl 69.85% <35.71%> (-3.92%) ⬇️
ext/MatrixAlgebraKitAMDGPUExt/yarocsolver.jl 82.52% <60.37%> (-7.90%) ⬇️

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

kshyatt and others added 7 commits October 29, 2026 09:58
- copy eigenvalues into diagview(Ds[i]) from the (n, b) packed output
- don't zero-pad ragged batched_eigh_vals!, padded zeros interleave with the spectrum
- restrict CUDA ragged eigh support to Jacobi
- remove duplicate supports_pointer_batch definition in AMD extension

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lkdvos and others added 2 commits October 29, 2026 10:30
… SVD

- add a default_eigh_algorithm for vectors of matrices, use AbstractVector in the CUDA ext
- fix the batched_eigh_full docstring
- limit CUSOLVER's batched block size to Jacobi
- move the batched eigh gaugefix! next to the batched SVD ones
- drop the unused BATCHED_EIGH_THRESHOLD, fix typos, match SVD algorithm order
- test ragged batch support per algorithm, drop unused test_trunc options

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- pass an array of pointers for Z to syevx_batched instead of the dense V
- copy the eigenvectors back from each A[i] into its slice of V
- accept a 3D V in heevj_batched!
- free the device pointer arrays after each call

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kshyatt

kshyatt commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

Thanks for picking this back up!

@lkdvos

lkdvos commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

still have some more fixes incoming btw, let's hope this now works

This branch has not been deployed

No deployments
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.

2 participants