Skip to content

Block fixed effects sharing refs - #83

Merged
eloualiche merged 3 commits into
FixedEffects:mainfrom
matthieugomez:block-absorption
Aug 27, 2026
Merged

Block fixed effects sharing refs#83
eloualiche merged 3 commits into
FixedEffects:mainfrom
matthieugomez:block-absorption

Conversation

@matthieugomez

@matthieugomez matthieugomez commented Aug 27, 2026

Copy link
Copy Markdown
Member

Terms sharing the same refs (e.g. fe(id) + fe(id)&x) are now absorbed as one block, whitened per group with a rank-revealing transform, so LSMR handles collinear interactions exactly; for scalar fixed effects the operator is unchanged (identical iteration counts).

  • New AbsorptionPlan: block structure, per-group transforms, and whitened rows shared by the CPU, CUDA, and Metal backends
  • Fused gather/scatter kernels over block columns; threaded CPU adjoint gather; fused beta scaling in mul!
  • Benchmarks consolidated under benchmarks/, with new AKM worker-firm and spectrum scripts
  • Version 3.4.0

- Group same-refs terms into blocks and whiten each group with a
  rank-revealing transform (AbsorptionPlan); LSMR runs on the whitened
  operator, with exact handling of collinear interactions
- Fuse gather/scatter kernels across block columns on CPU, CUDA, and
  Metal; thread the CPU adjoint gather
- Support matrix right-hand sides in solve_residuals!
- Reorganize benchmarks/ and add AKM worker-firm benchmarks
- Bump version to 3.4.0
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 63.14700% with 178 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (main@9aab8c8). Learn more about missing BASE report.

Files with missing lines Patch % Lines
ext/MetalExt.jl 0.00% 100 Missing ⚠️
ext/CUDAExt.jl 0.00% 55 Missing ⚠️
src/CPU.jl 83.80% 17 Missing ⚠️
src/AbsorptionPlan.jl 96.44% 6 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #83   +/-   ##
=======================================
  Coverage        ?   66.39%           
=======================================
  Files           ?       12           
  Lines           ?      869           
  Branches        ?        0           
=======================================
  Hits            ?      577           
  Misses          ?      292           
  Partials        ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

@matthieugomez matthieugomez changed the title Absorb fixed effects that share refs as whitened blocks Block fixed effects sharing refs Aug 27, 2026
@eloualiche
eloualiche merged commit bdd9d6c into FixedEffects:main Aug 27, 2026
6 checks passed
@matthieugomez

Copy link
Copy Markdown
Member Author

@JuliaRegistrator register()

@JuliaRegistrator

Copy link
Copy Markdown

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.

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.

3 participants