Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Regime-A follow-ups: owed CUDA timings and per-backend local-memory caps

Open
#60 0 comments 0 reactions 0 assignees View on GitHub

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

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-by-agent performance triaged

Found while working on: T11 (PR #59)

What: two items from the T11 Report that must not get lost when #59 merges.

  1. 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), plus bench/front_bins.jl; the regime thresholds and subtree_budgets stay at the T07 defaults until then.
  2. Regime-A @localmem is 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from exanauts/SparseDirectSolver.jl

All issues in exanauts/SparseDirectSolver.jl

Similar issues

More Julia issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.