Fix some issues using MLX in C++ (#739)

* fix preamble build

* fix some issues with using MLX as a dep in C++
This commit is contained in:
Awni Hannun 2024-02-24 22:20:57 -08:00 committed by GitHub
parent 22364c40b7
commit ac02cf33bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 18 additions and 19 deletions

View File

@ -67,8 +67,6 @@ if (MLX_BUILD_METAL AND NOT METAL_LIB)
set(MLX_BUILD_METAL OFF)
elseif (MLX_BUILD_METAL)
message(STATUS "Building METAL sources")
add_compile_definitions(_METAL_)
# Throw an error if xcrun not found
execute_process(COMMAND zsh "-c" "/usr/bin/xcrun -sdk macosx --show-sdk-version"
OUTPUT_VARIABLE MACOS_VERSION

View File

@ -9,15 +9,15 @@ add_custom_command(
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
${CMAKE_CXX_COMPILER}
${CMAKE_SOURCE_DIR}
${PROJECT_SOURCE_DIR}
${CLANG}
DEPENDS make_compiled_preamble.sh
compiled_preamble.h
${CMAKE_SOURCE_DIR}/mlx/types/half_types.h
${CMAKE_SOURCE_DIR}/mlx/types/fp16.h
${CMAKE_SOURCE_DIR}/mlx/types/bf16.h
${CMAKE_SOURCE_DIR}/mlx/types/complex.h
${PROJECT_SOURCE_DIR}/mlx/types/half_types.h
${PROJECT_SOURCE_DIR}/mlx/types/fp16.h
${PROJECT_SOURCE_DIR}/mlx/types/bf16.h
${PROJECT_SOURCE_DIR}/mlx/types/complex.h
ops.h
)

View File

@ -4,7 +4,7 @@ add_custom_command(
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
${CMAKE_C_COMPILER}
${CMAKE_SOURCE_DIR}
${PROJECT_SOURCE_DIR}
DEPENDS make_compiled_preamble.sh
kernels/compiled_preamble.h
kernels/unary.h

View File

@ -1,4 +1,4 @@
// Copyright © 2023 Apple Inc.
// Copyright © 2023-2024 Apple Inc.
#include <cstdlib>
#include <future>
@ -10,6 +10,10 @@
namespace mlx::core::metal {
bool is_available() {
return true;
}
int max_ops_per_buffer() {
auto get_val = []() {
if (const char* buff_str = std::getenv("MLX_MAX_OPS_PER_BUFFER")) {

View File

@ -1,4 +1,4 @@
// Copyright © 2023 Apple Inc.
// Copyright © 2023-2024 Apple Inc.
#pragma once
@ -11,14 +11,7 @@
namespace mlx::core::metal {
constexpr bool is_available() {
#ifdef _METAL_
return true;
#else
return false;
#endif
}
bool is_available();
bool cache_enabled(void);
void set_cache_enabled(bool enabled);

View File

@ -1,4 +1,4 @@
// Copyright © 2023 Apple Inc.
// Copyright © 2023-2024 Apple Inc.
#include <stdexcept>
@ -6,6 +6,10 @@
namespace mlx::core::metal {
bool is_available() {
return false;
}
void new_stream(Stream) {}
std::shared_ptr<void> new_scoped_memory_pool() {
return nullptr;