NeuroBrix detects the hardware it runs on when you omit --hardware. Detected is not supported: the table below says what actually executes.
| Level | Hardware |
|---|---|
| Executes today | NVIDIA CUDA with the Triton branch; Apple Silicon via MPS (compiled mode); CPU |
| Written, not lit | AMD ROCm / CDNA; Triton on Apple GPUs (a development branch, not the stable engine) |
| Recognised only | Intel, Tenstorrent, Moore Threads, Biren, Iluvatar, Hygon DCU, Cambricon |
Only Volta (V100) is marked as empirically validated in the engine's vendor configuration; Turing, Ampere, Ada and Hopper have vendor configuration files. A minimum driver version and a minimum compute capability: not documented yet.
| OS | Status |
|---|---|
| Linux | Full |
| Windows | CUDA (Triton is not available on Windows) |
| macOS | Apple Silicon via MPS, compiled mode |
Without --hardware, the engine probes in order: nvidia-smi, ROCm, xpu-smi, tt-smi, other vendor tools, lspci, then PyTorch. CPUs x86_64, ARM64 and RISC-V are recognised. A detected profile is written to default.yml inside the installed package; a process that sees no GPU gets a CPU profile.
Check what your machine looks like to the engine:
neurobrix doctor
Expected result: No blocking problem found and exit code 0, or a list of problems with the fix for each. doctor checks NVIDIA GPUs only; it does not inspect ROCm or MPS devices. See Troubleshooting.
The Prism Hardware Solver evaluates strategies in priority order:
| Priority | Strategy | Description |
|---|---|---|
| 1 | single_gpu |
Everything fits on one GPU |
| 2 | lifecycle |
Component lifecycle management |
| 3 | pipeline_parallel |
Pipeline stages across GPUs |
| 4 | component_placement |
Components on specific GPUs |
| 5 | block_scatter |
Transformer blocks across GPUs |
| 6 | weight_sharding |
Weights sharded across GPUs |
| 7 | component_placement_lazy |
Lazy component placement |
| 8 | lazy_sequential |
Sequential with lazy loading |
| 9 | zero3 |
ZeRO Stage 3 + CPU offload |
The solver estimates memory requirements from safetensors headers without loading tensors, making strategy selection fast.
Automatic dtype selection based on hardware:
| GPU | Recommended Dtype |
|---|---|
| V100, T4 | float16 |
| A100, RTX 30/40 series | float16 or bfloat16 |
| H100 | bfloat16 |
| CPU | float32 |
CPU-only is a supported path: hardware detection selects a CPU profile and small models run without configuration. Install recipe: Install by hardware.
The Prism solver analyses each device's memory and compute capability independently, so mixed GPU configurations are handled by the strategies above.
Use --hardware to name a profile:
neurobrix serve --model <name> --hardware v100-32g
The bundled profile list is in Hardware Profiles.
Next: Hardware Profiles
© 2025–2026 Hocine Benkelaya. NeuroBrix engine released under the Apache License 2.0.
Developed by Hocine Benkelaya · Supported and funded by Neural Network Holding Ltd · Commercial distribution by WizWorks OÜ
Documentation source: GitLab