Skip to content

Remove SubsetGaussNewtonSolver#991

Open
cdtwigg wants to merge 5 commits intomainfrom
export-D91914618
Open

Remove SubsetGaussNewtonSolver#991
cdtwigg wants to merge 5 commits intomainfrom
export-D91914618

Conversation

@cdtwigg
Copy link
Contributor

@cdtwigg cdtwigg commented Jan 30, 2026

Summary:
Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:

  • SubsetGaussNewtonSolver class and implementation
  • Associated unit tests
  • Python bindings for SubsetGaussNewtonSolver

Differential Revision: D91914618

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

meta-codesync bot commented Jan 30, 2026

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

facebook-github-bot pushed a commit that referenced this pull request Feb 2, 2026
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Reviewed By: cstollmeta

Differential Revision: D91914618
facebook-github-bot pushed a commit that referenced this pull request Feb 3, 2026
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Reviewed By: cstollmeta

Differential Revision: D91914618
facebook-github-bot pushed a commit that referenced this pull request Feb 3, 2026
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Reviewed By: cstollmeta, jeongseok-meta

Differential Revision: D91914618
facebook-github-bot pushed a commit that referenced this pull request Feb 3, 2026
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Reviewed By: cstollmeta, jeongseok-meta

Differential Revision: D91914618
facebook-github-bot pushed a commit that referenced this pull request Feb 4, 2026
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Reviewed By: cstollmeta, jeongseok-meta

Differential Revision: D91914618
Summary:

Update ResizeableMatrix to use AlignedAllocator with 128-byte alignment instead of std::vector's default alignment. This improves cache line efficiency and SIMD performance by ensuring data is properly aligned for AVX-512 operations and avoiding false sharing in multi-threaded scenarios.

Reviewed By: yutingye

Differential Revision: D92361055
…version 2) (#1001)

Summary:

Computing JtJ is completely bottlenecked by the actual matrix multiplication, and this is highly dependent on maximizing the throughput of L3 BLAS operations.  Currently we are filling in the J matrix a block at a time and then computing JtJ on that block, but by using the full J matrix we leave large gaps in the effective J matrix that limit how much of it can fit into cache.  If we instead pack everything tightly into a smaller matrix we may be able to exploit better cache locality.

The reason we use ResizeableMatrix for this is that the regular Eigen matrix class _always_ reallocates every time you resize, which would eliminate all possible speedups.

Reviewed By: yutingye

Differential Revision: D92343862
Summary:

Moved the `padJacobianRows` function to a centralized location in `solver_function.h` as `padToSimdAlignment`. This eliminates code duplication across multiple solver files that each had their own local copy of the same padding logic.

The function pads row counts to multiples of 8 for SIMD alignment, which is required for AVX operations on Jacobian matrices.

Reviewed By: jeongseok-meta

Differential Revision: D92426600
Summary:

Extracted ResizeableMatrix from online_householder_qr.h into its own
header file (resizeable_matrix.h) to reduce dependencies. This allows
solver_function.h to include only the lightweight ResizeableMatrix
class without pulling in all the QR solver machinery.

ResizeableMatrix is a utility class that provides matrix storage that
can be resized without reallocating when shrinking, which is useful
for block-wise Jacobian computations where the block size varies.

Reviewed By: jeongseok-meta

Differential Revision: D92427665
Summary:

Delete SubsetGaussNewtonSolver as all of its functionality has been absorbed by the
standard GaussNewtonSolver. The subset optimization capability that SubsetGaussNewtonSolver
provided is now natively supported by GaussNewtonSolver, making this specialized solver
redundant.

This removes:
- SubsetGaussNewtonSolver class and implementation
- Associated unit tests
- Python bindings for SubsetGaussNewtonSolver

Differential Revision: D91914618
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 meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant