Skip to content

[Docs] New docs proposal: Dedicated CPU + GPU Hardware Compatibility Matrices + rework current Install Guide #2938

@incertum

Description

@incertum

Proposing to add several hardware compatibility matrices to new documentation combined with more guidance around system dependencies -- what do I need when? What are common hiccups? Kind of expand https://ml-explore.github.io/mlx/build/html/install.html or rework it a bit (already tons of really great guidance in there!).

I could envision:

  • a new / separate and more detailed "Hardware + System Requirements" section.
  • moving all the build instructions to a dedicated "Build from source" guide which points to the requirements guide.
  • moving all pure install instructions to a dedicated "Install mlx" guide which points to the requirements guide.
  • ... and perhaps have a few new tables (such as proposed below).

(1)

Add GitHub badges for supported CPU arch and platform support. Perhaps this could be suitable for the main README.md in the GitHub repo?

macOS
arm64

Linux
x86_64 aarch64


(2)

New doc on https://ml-explore.github.io/mlx/ -> link to it from main README.

macOS GPU Support (Apple Silicon)

GPU acceleration on Apple Silicon leverages the Metal framework.

Supported GPU Architectures

Chip Family Metal GPU Family Status Key Differentiating Features & Capabilities
M1 apple7 TBA
M2 apple8 TBA
M3 apple9 TBA
M4 apple10 TBA
M5 apple11 TBA

(3)

New doc on https://ml-explore.github.io/mlx/ -> link to it from main README.

Linux GPU Support (CUDA)

Supported GPU Architectures

The table below outlines recommended NVIDIA GPU architectures and their specific feature support. A green checkmark (✅) indicates a fully supported and recommended architecture.

Example GPU Architecture (Compute Capability) Status Key Accelerated Data Types
H100 Hopper (sm_90) FP8, TF32, BFLOAT16, FP16, INT8
RTX 4090 Ada Lovelace (sm_89) FP8, TF32, BFLOAT16, FP16, INT8
A100 Ampere (sm_80) TF32, BFLOAT16, FP16, INT8
T4, RTX 2080 Turing (sm_75) FP16, INT8
V100 Volta (sm_70) FP16, INT8

More Questions:

  • Maybe the minimum supported CUDA Toolkit version or the recommended one may even be tied to the GPU or other system aspects? Could the generic guidance of CUDA toolkit >= 12.0 be more nuanced?
  • Some "stuff" we install as part of the mlx CI such as MPI or NCCL seems not listed or mentioned in the current system requirements section?
  • Build from source (system requirements sub-section) seems to lack a section for building mlx natively on Linux.
  • ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions