mirror of
https://github.com/ml-explore/mlx.git
synced 2025-06-24 17:31:16 +08:00
Install docs update (#29)
* Add notes about MacOS version restrictions for mlx in install docs * Add notes about Xcode version requirements for building from source in install docs * Let make detect the macosx sdk version being used * Throw error if trying to build metal kernels with macOS <= 13.4 * Add metal-cpp for macOS 14.2
This commit is contained in:
parent
9f4cf2e0fe
commit
2629cc8682
@ -18,7 +18,7 @@ option(MLX_BUILD_METAL "Build metal backend" ON)
|
|||||||
option(BUILD_SHARED_LIBS "Build mlx as a shared library" OFF)
|
option(BUILD_SHARED_LIBS "Build mlx as a shared library" OFF)
|
||||||
|
|
||||||
if(NOT MLX_VERSION)
|
if(NOT MLX_VERSION)
|
||||||
set(MLX_VERSION 0.0.1)
|
set(MLX_VERSION 0.0.3)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# ----------------------------- Lib -----------------------------
|
# ----------------------------- Lib -----------------------------
|
||||||
@ -41,16 +41,19 @@ elseif (MLX_BUILD_METAL)
|
|||||||
message(STATUS "Building METAL sources")
|
message(STATUS "Building METAL sources")
|
||||||
add_compile_definitions(_METAL_)
|
add_compile_definitions(_METAL_)
|
||||||
|
|
||||||
execute_process(COMMAND zsh "-c" "/usr/bin/sw_vers | cut -f2- -d: | sed -n 2p | grep -Eo '[0-9]+.[0-9]+'"
|
execute_process(COMMAND zsh "-c" "/usr/bin/xcrun -sdk macosx --show-sdk-version"
|
||||||
OUTPUT_VARIABLE MACOS_VERSION)
|
OUTPUT_VARIABLE MACOS_VERSION)
|
||||||
|
|
||||||
message(STATUS "Detected macOS version ${MACOS_VERSION}")
|
message(STATUS "Building with SDK for MacOS version ${MACOS_VERSION}")
|
||||||
if (${MACOS_VERSION} GREATER_EQUAL 14.0)
|
|
||||||
|
if (${MACOS_VERSION} GREATER_EQUAL 14.2)
|
||||||
|
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS14.2_iOS17.2.zip)
|
||||||
|
elseif (${MACOS_VERSION} GREATER_EQUAL 14.0)
|
||||||
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS14_iOS17-beta.zip)
|
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS14_iOS17-beta.zip)
|
||||||
elseif (${MACOS_VERSION} GREATER_EQUAL 13.3)
|
elseif (${MACOS_VERSION} GREATER_EQUAL 13.3)
|
||||||
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS13.3_iOS16.4.zip)
|
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS13.3_iOS16.4.zip)
|
||||||
else()
|
else()
|
||||||
set(METAL_CPP_URL https://developer.apple.com/metal/cpp/files/metal-cpp_macOS13_iOS16.zip)
|
message(FATAL_ERROR "MLX requires MacOS >= 13.4 to be built with MLX_BUILD_METAL=ON" )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
|
@ -11,6 +11,10 @@ silicon computer is
|
|||||||
|
|
||||||
pip install mlx
|
pip install mlx
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
MLX is only available on devices running MacOS >= 13.3
|
||||||
|
It is highly recommended to use MacOS 14 (Sonoma)
|
||||||
|
|
||||||
Build from source
|
Build from source
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
@ -19,6 +23,7 @@ Build Requirements
|
|||||||
|
|
||||||
- A C++ compiler with C++17 support (e.g. Clang >= 5.0)
|
- A C++ compiler with C++17 support (e.g. Clang >= 5.0)
|
||||||
- `cmake <https://cmake.org/>`_ -- version 3.24 or later, and ``make``
|
- `cmake <https://cmake.org/>`_ -- version 3.24 or later, and ``make``
|
||||||
|
- Xcode >= 14.3 (Xcode >= 15.0 for MacOS 14 and above)
|
||||||
|
|
||||||
|
|
||||||
Python API
|
Python API
|
||||||
@ -111,3 +116,21 @@ should point to the path to the built metal library.
|
|||||||
- ON
|
- ON
|
||||||
* - MLX_BUILD_PYTHON_BINDINGS
|
* - MLX_BUILD_PYTHON_BINDINGS
|
||||||
- OFF
|
- OFF
|
||||||
|
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you have multiple Xcode installations and wish to use
|
||||||
|
a specific one while building, you can do so by adding the
|
||||||
|
following environment variable before building
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
export DEVELOPER_DIR="/path/to/Xcode.app/Contents/Developer/"
|
||||||
|
|
||||||
|
Further, you can use the following command to find out which
|
||||||
|
MacOS SDK will be used
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
xcrun -sdk macosx --show-sdk-version
|
||||||
|
Loading…
Reference in New Issue
Block a user