Skip to content

Feature Flags

PMetal uses Cargo feature flags to control which crates and capabilities are compiled.

FeatureDefaultCrateDescription
coreYespmetal-coreFoundation types, configs, traits
ggufYespmetal-ggufGGUF format support
metalYespmetal-metalMetal GPU kernels
hubYespmetal-hubHuggingFace Hub integration
mlxYespmetal-mlxMLX backend
modelsYespmetal-modelsLLM architectures
loraYespmetal-loraLoRA/QLoRA
trainerYespmetal-trainerTraining loops (pulls in data, distill)
easyYesHigh-level builders (pulls in trainer, hub, data)
aneYesApple Neural Engine
dataYes*pmetal-dataDataset loading (*via easy)
distillYes*pmetal-distillKnowledge distillation (*via trainer)
lora-metal-fusedNo~2× LoRA training speedup via fused Metal kernels
mergeNopmetal-mergeModel merging strategies
vocoderNopmetal-vocoderBigVGAN neural vocoder
distributedNopmetal-distributedDistributed training
mhcNopmetal-mhcManifold-Constrained Hyper-Connections
serveNopmetal-serveOpenAI-compatible inference server
fullNoAll features
Terminal window
# Default features
cargo install pmetal
# With specific features
cargo install pmetal --features "merge,serve"
# All features
cargo install pmetal --features full
# Minimal build (no ANE)
cargo build --release --no-default-features --features dashboard
[dependencies]
pmetal = { version = "0.1", features = ["easy"] }
# Or specific crates
pmetal-models = "0.1"
pmetal-trainer = "0.1"
pmetal-lora = "0.1"