Skip to content
imaged

Platform & backend support

Platform minimums, precision, and operation support.

Platforms

Platform Minimum Architecture
iOS / iPadOS iOS 18 arm64
macOS macOS 15 arm64 (Apple silicon)
Android API 31 arm64-v8a

Backends

Backend iOS / macOS Android
CPU Accelerate + Slab kernels ARM64 NEON
GPU Metal (MPSGraph) Vulkan 1.1
NPU Apple Neural Engine Qualcomm Hexagon (QNN)

A model can set its preferred backend (per platform) and its precision per backend. With AUTO, Slab uses the model's preference when the device can run it; otherwise it picks the first backend, in the order NPU → GPU → CPU, that the device has and that supports every operation and the requested precision.

Precision

Backend f32 f16 f16:fast int8 int8:static int8:f16
CPU, Android ✓ ✓ ✓
CPU, Apple ✓
GPU, Vulkan ✓ ✓ ✓ ✓ ✓
GPU, Metal ✓ ✓
NPU, Hexagon ✓ ✓ ✓ ✓
NPU, Apple Neural Engine ✓
  • f16: 16-bit storage, 32-bit math. f16:fast: 16-bit storage and math.
  • int8: int8 weights, dynamic activations. int8:static: calibrated activations. int8:f16: int8 weights, 16-bit activations.
  • Weights can also be stored as int8 in any model file (2.4–3.7× smaller).

Supported operations

A model runs on a backend when all of its operations are supported there.

Operator CPU Metal / Neural Engine Vulkan Hexagon
Abs ✓ ✓ ✓ ✓
Add ✓ ✓ ✓ ✓
And ✓ ✓
ArgMax ✓ ✓ ✓ ✓
AveragePool ✓ ✓ ✓ ✓
BatchNormalization ✓ ✓ ✓ ✓
Cast ✓ ✓ ✓
Ceil ✓ ✓ ✓ ✓
Clip ✓ ✓ ✓ ✓
Concat ✓ ✓ ✓ ✓
Conv ✓ ✓ ✓ ✓
ConvTranspose ✓ ✓ ✓ ✓
Cos ✓ ✓ ✓ ✓
CumSum ✓ ✓
DepthToSpace ✓ ✓ ✓
Div ✓ ✓ ✓ ✓
Elu ✓ ✓
Equal ✓ ✓ ✓
Erf ✓ ✓ ✓ ✓
Exp ✓ ✓ ✓ ✓
Expand / Tile ✓ ✓ ✓
Flatten ✓ ✓ ✓ ✓
Floor ✓ ✓ ✓ ✓
Gather ✓ ✓ ✓
GatherND ✓
Gelu ✓ ✓ ✓ ✓
Gemm ✓ ✓ ✓ ✓
GlobalAveragePool ✓ ✓ ✓ ✓
Greater / GreaterOrEqual ✓ ✓
GridSample ✓ ✓
HardSigmoid ✓ ✓ ✓ ✓
HardSwish ✓ ✓ ✓ ✓
Identity / Dropout ✓ ✓ ✓ ✓
InstanceNormalization ✓ ✓ ✓ ✓
LayerNormalization ✓ ✓ ✓ ✓
LeakyRelu ✓ ✓ ✓ ✓
Less / LessOrEqual ✓ ✓
Log ✓ ✓ ✓ ✓
MatMul ✓ ✓ ✓ ✓
Max ✓ ✓ ✓ ✓
MaxPool ✓ ✓ ✓ ✓
Min ✓ ✓ ✓ ✓
Mod ✓ ✓ ✓
Mul ✓ ✓ ✓ ✓
Neg ✓ ✓ ✓ ✓
NonMaxSuppression ✓
Not ✓ ✓ ✓
Or ✓ ✓
Pad ✓ ✓ ✓
PRelu ✓ ✓ ✓ ✓
Reciprocal ✓ ✓ ✓
ReduceMax ✓ ✓ ✓ ✓
ReduceMean ✓ ✓ ✓ ✓
ReduceMin ✓ ✓ ✓ ✓
ReduceProd ✓ ✓ ✓
ReduceSum ✓ ✓ ✓ ✓
Relu ✓ ✓ ✓ ✓
Resize ✓ ✓ ✓ ✓
Round ✓ ✓ ✓ ✓
ScatterND / ScatterElements ✓ ✓
Selu ✓ ✓
Sigmoid ✓ ✓ ✓ ✓
Sin ✓ ✓ ✓ ✓
Slice ✓ ✓ ✓ ✓
Softmax ✓ ✓ ✓ ✓
SpaceToDepth ✓ ✓ ✓
Split ✓ ✓ ✓ ✓
Sqrt / Pow ✓ ✓ ✓ ✓
Sub ✓ ✓ ✓ ✓
Tanh ✓ ✓ ✓ ✓
TopK ✓ ✓
Transpose ✓ ✓ ✓ ✓
Where ✓ ✓ ✓

Shape, Reshape, Squeeze, Unsqueeze, Constant, ConstantOfShape, Range and OneHot are supported on every backend.

Generative models (LLM / VLM)

Metal Vulkan
Text and image + text generation (f16 or int8 weights) ✓ ✓