在 C++ 中使用 MLX

在 C++ 中使用 MLX#

你可以在使用 CMake 的 C++ 项目中使用 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 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

根据你安装 MLX 的方式,你可能需要告诉 CMake 库的位置。

如果你使用 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