Skip to content

Add sequence Cholesky solver (#1396)#1396

Closed
cdtwigg wants to merge 1 commit into
mainfrom
export-D105035576
Closed

Add sequence Cholesky solver (#1396)#1396
cdtwigg wants to merge 1 commit into
mainfrom
export-D105035576

Conversation

@cdtwigg
Copy link
Copy Markdown
Contributor

@cdtwigg cdtwigg commented May 14, 2026

Summary:

Add a separate SequenceCholeskySolver for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before J^T J, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into SequenceSolverBase, exposes read-only SequenceSolverFunction accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, J^T J packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label May 14, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync Bot commented May 14, 2026

@cdtwigg has exported this pull request. If you are a Meta employee, you can view the originating Diff in D105035576.

@meta-codesync meta-codesync Bot changed the title Add sequence Cholesky solver Add sequence Cholesky solver (#1396) May 14, 2026
meta-codesync Bot pushed a commit that referenced this pull request May 14, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch from db53809 to 8622ab2 Compare May 14, 2026 20:58
meta-codesync Bot pushed a commit that referenced this pull request May 14, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch from 8622ab2 to e66aea0 Compare May 14, 2026 21:27
meta-codesync Bot pushed a commit that referenced this pull request May 14, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
meta-codesync Bot pushed a commit that referenced this pull request May 14, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch 2 times, most recently from 6bcccba to f2eea7a Compare May 14, 2026 21:34
meta-codesync Bot pushed a commit that referenced this pull request May 15, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch from f2eea7a to 5e30ec4 Compare May 15, 2026 05:19
meta-codesync Bot pushed a commit that referenced this pull request May 15, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
meta-codesync Bot pushed a commit that referenced this pull request May 15, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch 2 times, most recently from 3415ae4 to 4dbf529 Compare May 15, 2026 06:35
meta-codesync Bot pushed a commit that referenced this pull request May 15, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch 2 times, most recently from a82137d to 125a1aa Compare May 15, 2026 18:41
meta-codesync Bot pushed a commit that referenced this pull request May 15, 2026
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
Summary:

Add a separate `SequenceCholeskySolver` for sequence problems where the existing online-QR solver is too expensive.

The new solver accumulates compact banded normal equations online, packs frame-local and universal columns contiguously before `J^T J`, supports chunked multithreaded accumulation with deterministic boundary and sequence-error handling, and solves the banded system with block LDLT by default. A scalar banded LDLT path remains user-switchable for debugging and benchmarking. Compact normal-equation accumulation defaults to double precision so float error functions can still evaluate residuals and Jacobians in float without losing precision before the double LDLT solve.

This diff also extracts shared sequence-solver helpers into `SequenceSolverBase`, exposes read-only `SequenceSolverFunction` accessors needed by the solver, wires the new solver into Momentum build/fwd generation, adds solver timing counters for normal-equation accumulation and linear solve, and adds a benchmark target that compares QR, block LDLT, scalar LDLT behavior, chunk size, `J^T J` packing, double normal-equation accumulation, and 93-joint larger-character cases.

Reviewed By: cstollmeta

Differential Revision: D105035576
@meta-codesync meta-codesync Bot force-pushed the export-D105035576 branch from 125a1aa to 6d42147 Compare May 15, 2026 21:06
@meta-codesync meta-codesync Bot closed this in 879e212 May 15, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync Bot commented May 15, 2026

This pull request has been merged in 879e212.

@github-actions github-actions Bot deleted the export-D105035576 branch May 15, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot. fb-exported Merged meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant