You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add BLISLUFactorization, CudaOffloadLUFactorization, and MetalLUFactorization to default solver choices (#733)
* Add BLISLUFactorization, CudaOffloadLUFactorization, and MetalLUFactorization to default solver choices
- Added new algorithm choices to DefaultAlgorithmChoice enum
- Implemented conditional availability checking for new solvers
- Added throwerror parameter to constructors for compatibility with default solver
- Added fallback init_cacheval implementations for when extensions aren't loaded
- Updated preferences system to recognize new algorithm names
- Added availability checking functions (useblis, usecuda, usemetal)
- Updated DefaultLinearSolverInit struct to include new algorithms
- Added handling in solve! function for new algorithms with proper extension checks
These solvers will only be selected by the default algorithm if:
1. They are available (extensions loaded)
2. They are specified in preferences from autotuning
Modeled implementation after RFLUFactorization pattern with conditional availability.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix CudaOffloadLUFactorization to use @get_cacheval macro
When algorithms are part of the default solver system, they must use the
@get_cacheval macro to properly retrieve cached values from the unified
cache structure. Updated CudaOffloadLUFactorization to follow this pattern.
BLISLUFactorization and MetalLUFactorization were already using the correct
pattern.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Make Metal availability check static and platform-aware
- Updated usemetal() to be a static check that returns false on non-Apple platforms
- Modified MetalLUFactorization constructor to check platform with @static
- Updated test files to skip Metal tests on non-Apple platforms
- This fixes CI failures on Linux where Metal is not available
Following the same pattern as AppleAccelerateLUFactorization for consistency.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: ChrisRackauckas <accounts@chrisrackauckas.com>
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments