在 C++ 中使用 MLX

在 C++ 中使用 MLX#

你可以在 C++ 專案中透過 CMake 使用 MLX。

備註

本指南基於以下 在 C++ 中使用 MLX 的範例

首先安裝 MLX:

pip install -U mlx

你也可以從來源碼安裝 MLX Python 軟體包,或只安裝 C++ 程式庫。更多資訊請見 安裝 MLX 的文件

接著在 example.cpp 建立範例程式:

#include <iostream>

#include "mlx/mlx.h"

namespace mx = mlx::core;

int main() {
  auto x = mx::array({1, 2, 3});
  auto y = mx::array({1, 2, 3});
  std::cout << x + y << std::endl;
  return 0;
}

下一步是在 CMakeLists.txt 中設定 CMake 檔案:

cmake_minimum_required(VERSION 3.27)

project(example LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

依你安裝 MLX 的方式,可能需要告訴 CMake MLX 的位置。

如果你透過 Python 安裝 MLX,請把以下內容加入 CMake 檔案:

find_package(
  Python 3.9
  COMPONENTS Interpreter Development.Module
  REQUIRED)
execute_process(
  COMMAND "${Python_EXECUTABLE}" -m mlx --cmake-dir
  OUTPUT_STRIP_TRAILING_WHITESPACE
  OUTPUT_VARIABLE MLX_ROOT)

如果你把 MLX C++ 軟體包安裝到系統路徑,CMake 應該能找到它。若安裝在非標準位置,或 CMake 找不到 MLX,請把 MLX_ROOT 設為 MLX 的安裝位置:

set(MLX_ROOT "/path/to/mlx/")

接著指示 CMake 尋找 MLX:

find_package(MLX CONFIG REQUIRED)

最後把 example.cpp 程式加為可執行檔並連結 MLX。

add_executable(example example.cpp)
target_link_libraries(example PRIVATE mlx)

你可以用以下命令建置範例:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

並用以下命令執行:

./build/example

注意 find_package(MLX CONFIG REQUIRED) 會設定以下變數:

軟體包變數#

變數

說明

MLX_FOUND

若找到 MLX 則為 True

MLX_INCLUDE_DIRS

包含目錄

MLX_LIBRARIES

連結用程式庫

MLX_CXX_FLAGS

額外編譯器旗標

MLX_BUILD_ACCELERATE

若 MLX 以 Accelerate 建置則為 True

MLX_BUILD_METAL

若 MLX 以 Metal 建置則為 True