| MLX |
| === |
|
|
| MLX is a NumPy-like array framework designed for efficient and flexible machine |
| learning on Apple silicon, brought to you by Apple machine learning research. |
|
|
| The Python API closely follows NumPy with a few exceptions. MLX also has a |
| fully featured C++ API which closely follows the Python API. |
|
|
| The main differences between MLX and NumPy are: |
|
|
| - **Composable function transformations**: MLX has composable function |
| transformations for automatic differentiation, automatic vectorization, |
| and computation graph optimization. |
| - **Lazy computation**: Computations in MLX are lazy. Arrays are only |
| materialized when needed. |
| - **Multi-device**: Operations can run on any of the supported devices (CPU, |
| GPU, ...) |
|
|
| The design of MLX is inspired by frameworks like `PyTorch |
| <https://pytorch.org/>`_, `Jax <https://github.com/google/jax>`_, and |
| `ArrayFire <https://arrayfire.org/>`_. A notable difference from these |
| frameworks and MLX is the *unified memory model*. Arrays in MLX live in shared |
| memory. Operations on MLX arrays can be performed on any of the supported |
| device types without performing data copies. Currently supported device types |
| are the CPU and GPU. |
|
|
| .. toctree:: |
| :caption: Install |
| :maxdepth: 1 |
|
|
| install |
|
|
| .. toctree:: |
| :caption: Usage |
| :maxdepth: 1 |
|
|
| usage/quick_start |
| usage/lazy_evaluation |
| usage/unified_memory |
| usage/indexing |
| usage/saving_and_loading |
| usage/function_transforms |
| usage/compile |
| usage/numpy |
| usage/distributed |
| usage/using_streams |
| usage/export |
|
|
| .. toctree:: |
| :caption: Examples |
| :maxdepth: 1 |
|
|
| examples/linear_regression |
| examples/mlp |
| examples/llama-inference |
|
|
| .. toctree:: |
| :caption: Python API Reference |
| :maxdepth: 1 |
|
|
| python/array |
| python/data_types |
| python/devices_and_streams |
| python/export |
| python/ops |
| python/random |
| python/transforms |
| python/fast |
| python/fft |
| python/linalg |
| python/metal |
| python/cuda |
| python/memory_management |
| python/nn |
| python/optimizers |
| python/distributed |
| python/tree_utils |
|
|
| .. toctree:: |
| :caption: C++ API Reference |
| :maxdepth: 1 |
|
|
| cpp/ops |
|
|
| .. toctree:: |
| :caption: Further Reading |
| :maxdepth: 1 |
|
|
| dev/extensions |
| dev/metal_debugger |
| dev/custom_metal_kernels |
| dev/mlx_in_cpp |
|
|