Regime-A follow-ups: owed CUDA timings and per-backend local-memory caps
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- julia
- Domain
- backend, performance
Research direction
Run julia --project=bench bench/regimes.jl --backend=cuda with --T=Float32, plus bench/front_bins.jl, on CUDA hardware to produce the owed T04 timing table. Then read src/symbolic/schedule.jl, especially SUBTREE_LOCAL_SIZES, and review T23's backend-extension work. Done means the CUDA timings are recorded and local-memory caps vary by backend, including Metal's 32 KiB limit and AMDGPU's 64 KiB class.
Written by the indexing model from the issue text.
Description
Found while working on: T11 (PR #59)
What: two items from the T11 Report that must not get lost when #59 merges.
- The CUDA timing table owed by T11 (A+B+C vs B+C vs C only on the T04 generated matrices) was not measured: the implementing session has no GPU. Run
julia --project=bench bench/regimes.jl --backend=cuda(and--T=Float32), plusbench/front_bins.jl; the regime thresholds andsubtree_budgetsstay at the T07 defaults until then. - Regime-A
@localmemis static shared memory.SUBTREE_LOCAL_SIZES(src/symbolic/schedule.jl) is now capped at 48 KiB because ptxas rejects more than 48 KiB of static shared data per kernel (review round 1 of #59 removed the 64 KiB class). Metal allows only 32 KiB, so the default 48 KiB budget would fail there; AMDGPU's LDS would allow a 64 KiB class. The caps need to be per backend.
Why it is out of scope: (1) needs CUDA hardware (owner); (2) belongs to T23 (backend extensions), not blocking before it.
Suggested fix or plan change: a backend capability max_local_bytes(backend) used by subtree_local_bytes/the analysis to cap subtree_budgets (and to re-enable 64 KiB on AMDGPU).
- Dominant language
- Julia
- Stars
- 3
- Forks
- 0
- Avg merge
- 3h 2m
- Merged PRs (30d)
- 65
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
-
task
Difficulty 5/5 Over a week Newbie friendliness 12/100
exanauts/SparseDirectSolver.jl#118 ·
Maintainers usually reply within 1 day
-
task
Difficulty 4/5 3-5 days Newbie friendliness 20/100
exanauts/SparseDirectSolver.jl#117 ·
Maintainers usually reply within 1 day
-
task
Difficulty 5/5 Over a week Newbie friendliness 8/100
exanauts/SparseDirectSolver.jl#116 ·
Maintainers usually reply within 1 day
-
task
Difficulty 5/5 Over a week Newbie friendliness 8/100
exanauts/SparseDirectSolver.jl#115 ·
Maintainers usually reply within 1 day
-
found-by-agent triaged
Difficulty 5/5 Over a week Newbie friendliness 12/100
exanauts/SparseDirectSolver.jl#112 · 1 comment ·
Maintainers usually reply within 1 day
All issues in exanauts/SparseDirectSolver.jl
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 2 days
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 66/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
JuliaPy/CondaPkg.jl#232 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
SciML/PETScDiffEq.jl#196 ·
Maintainers usually reply within 1 day
-
Two jump tests solve a different problem than the one they buildPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
SciML/Catalyst.jl#1571 ·
Maintainers usually reply within 1 day