Support matrix#
What mojolearn 0.8.41 supports: platforms, Python versions, devices and numeric modes. Release notes
are in Release notes.
mojolearn doctor reports what the installed wheel supports on your machine.
Platforms and wheels#
Platform |
Packages |
GPU backend |
GPU architectures |
CPU |
|---|---|---|---|---|
macOS arm64 |
|
Apple Metal |
Apple silicon, built at the M1 instruction-set floor |
Apple silicon |
Linux x86-64 |
|
NVIDIA CUDA, AMD HIP |
CUDA |
x86-64 |
Both platforms carry the CPU bindings, so both train and predict on a machine with no GPU.
NVIDIA needs only the driver (libcuda); no CUDA toolkit is required. AMD needs the amdgpu driver and
the ROCm HIP runtime (ROCm 6 or 7).
In 0.8.41 the NVIDIA package ships sm_89 code only. A device loads the exact architecture the install
carries, or the highest carried architecture of the same NVIDIA family that does not exceed it, so
other NVIDIA generations (for example A100 and H100) are not served by this release. On AMD the match
must be exact. An architecture the wheel does not carry needs a source build. mojolearn never
substitutes the CPU for a GPU it cannot serve.
Python versions#
CPython 3.10, 3.11, 3.12, 3.13 and 3.14, on both platforms.
Verified devices#
Vendor |
Device |
Architecture |
Backend |
|---|---|---|---|
Apple |
M4 |
Apple silicon |
Metal |
NVIDIA |
RTX 4090 |
|
CUDA |
NVIDIA |
L40S |
|
CUDA |
AMD |
Instinct MI325X |
|
HIP |
AMD |
Instinct MI300X |
|
HIP |
CPU |
x86-64 (Linux) |
x86-64 |
CPU bindings |
CPU |
Apple silicon (macOS) |
arm64 |
CPU bindings |
Other GPUs of a carried architecture (for example the L40, L4 and RTX 6000 Ada on sm_89) load the
same code. Use verify to check them.
Numeric modes#
Mode |
Contract |
|---|---|
|
The default. The same output bits for the same release, input bytes, model state, settings and supported configuration on NVIDIA and AMD GPUs. Apple GPU and CPU results are recorded beside them. |
|
Repeated runs on the same device and build give the same bits. No cross-vendor promise. |
|
Apple GPUs only. Tuned for throughput. No identity or repeatability promise. |
Family |
|
|
|
|---|---|---|---|
Gradient boosting |
yes |
yes |
Apple GPUs |
Random forests |
yes |
yes |
Apple GPUs |
Extra Trees |
yes |
yes |
Apple GPUs |
Other tree models (decision trees, AdaBoost, random-trees embedding, isolation forest) |
yes |
no |
Apple GPUs |
Neural networks, GPU surface |
yes |
no |
Apple GPUs |
Every other family |
yes |
no |
Apple GPUs |
CPU bindings (all families) |
yes |
no |
no |
fast is opt-in, tuned on Apple and runs on Apple GPUs only. Asking a family for a mode it does not ship raises
a named error. Bits may change between releases. See Numeric modes.
The CPU surface#
On a CPU-only install, fit trains on the CPU for every estimator with a CPU binding and refuses by name
otherwise, and saved models predict on the CPU. Every CPU binding is checked bit for bit against the
recorded GPU results. A few gradient boosting training configurations have no CPU path (sample weights,
CTR-encoded categorical columns, and some categorical and eval-set combinations outside symmetric
trees). See Devices and the CPU and
Saving and loading models.
What counts as verified#
A cross-vendor result is accepted only when the same source, input bytes and numeric profile ran on
each vendor, each run recorded its device and toolchain, the raw-bit hashes agree, and refused
configurations are reported as refusals rather than passes. python -m mojolearn verify checks your installed package against the shipped reference
results.