Skip to content

S22 Portable Backends

S22 aims to make the same MPSBoost estimator interface run on more machines.

Does not replace native CPU

The MPSBoost native CPU backend remains:

  • the correctness oracle
  • the default CPU backend
  • the Apple Silicon path when no GPU is available or the workload is small
  • the test baseline

Portable backends do not replace native CPU. Runtime summaries must report the actual backend and must not change the current native CPU/MPS default path.

Target backends

Planned paths:

  • Apple Silicon: MPSBoost native CPU/MPS
  • Linux CPU: MPSBoost native CPU or sklearn/XGBoost CPU adapter
  • Linux CUDA: XGBoost GPU adapter
  • Windows CPU: sklearn/XGBoost CPU adapter

All external backends must write training_summary_["backend"], so users can see the actual runtime path.

Dependency policy

External backends use optional extras:

  • mpsboost[xgboost]
  • mpsboost[sklearn]
  • mpsboost[cuda]

Default installs remain lightweight.

Current foundation

optional_dependency_status() reports optional extras without importing heavy dependencies. portable_setup_instructions() returns copy-paste installation commands without interactive input. choose_portable_backend(...) records the selected policy and actual backend. The PortableEstimatorAdapter preserves fit, predict, predict_proba, score, get_params, and set_params for the native path. When an explicit external policy is selected but the estimator is not activated for that external runtime, the adapter warns, records both requested and effective backends, and keeps the workflow executable through the native CPU compatibility path.