mirror of
https://github.com/ml-explore/mlx.git
synced 2025-07-15 04:51:13 +08:00
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:
parent
22364c40b7
commit
ac02cf33bd
@ -67,8 +67,6 @@ if (MLX_BUILD_METAL AND NOT METAL_LIB)
|
|||||||
set(MLX_BUILD_METAL OFF)
|
set(MLX_BUILD_METAL OFF)
|
||||||
elseif (MLX_BUILD_METAL)
|
elseif (MLX_BUILD_METAL)
|
||||||
message(STATUS "Building METAL sources")
|
message(STATUS "Building METAL sources")
|
||||||
add_compile_definitions(_METAL_)
|
|
||||||
|
|
||||||
# Throw an error if xcrun not found
|
# Throw an error if xcrun not found
|
||||||
execute_process(COMMAND zsh "-c" "/usr/bin/xcrun -sdk macosx --show-sdk-version"
|
execute_process(COMMAND zsh "-c" "/usr/bin/xcrun -sdk macosx --show-sdk-version"
|
||||||
OUTPUT_VARIABLE MACOS_VERSION
|
OUTPUT_VARIABLE MACOS_VERSION
|
||||||
|
@ -9,15 +9,15 @@ add_custom_command(
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
|
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
|
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
|
||||||
${CMAKE_CXX_COMPILER}
|
${CMAKE_CXX_COMPILER}
|
||||||
${CMAKE_SOURCE_DIR}
|
${PROJECT_SOURCE_DIR}
|
||||||
${CLANG}
|
${CLANG}
|
||||||
|
|
||||||
DEPENDS make_compiled_preamble.sh
|
DEPENDS make_compiled_preamble.sh
|
||||||
compiled_preamble.h
|
compiled_preamble.h
|
||||||
${CMAKE_SOURCE_DIR}/mlx/types/half_types.h
|
${PROJECT_SOURCE_DIR}/mlx/types/half_types.h
|
||||||
${CMAKE_SOURCE_DIR}/mlx/types/fp16.h
|
${PROJECT_SOURCE_DIR}/mlx/types/fp16.h
|
||||||
${CMAKE_SOURCE_DIR}/mlx/types/bf16.h
|
${PROJECT_SOURCE_DIR}/mlx/types/bf16.h
|
||||||
${CMAKE_SOURCE_DIR}/mlx/types/complex.h
|
${PROJECT_SOURCE_DIR}/mlx/types/complex.h
|
||||||
ops.h
|
ops.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ add_custom_command(
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
|
${CMAKE_CURRENT_SOURCE_DIR}/make_compiled_preamble.sh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
|
${CMAKE_CURRENT_BINARY_DIR}/compiled_preamble.cpp
|
||||||
${CMAKE_C_COMPILER}
|
${CMAKE_C_COMPILER}
|
||||||
${CMAKE_SOURCE_DIR}
|
${PROJECT_SOURCE_DIR}
|
||||||
DEPENDS make_compiled_preamble.sh
|
DEPENDS make_compiled_preamble.sh
|
||||||
kernels/compiled_preamble.h
|
kernels/compiled_preamble.h
|
||||||
kernels/unary.h
|
kernels/unary.h
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright © 2023 Apple Inc.
|
// Copyright © 2023-2024 Apple Inc.
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <future>
|
#include <future>
|
||||||
@ -10,6 +10,10 @@
|
|||||||
|
|
||||||
namespace mlx::core::metal {
|
namespace mlx::core::metal {
|
||||||
|
|
||||||
|
bool is_available() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
int max_ops_per_buffer() {
|
int max_ops_per_buffer() {
|
||||||
auto get_val = []() {
|
auto get_val = []() {
|
||||||
if (const char* buff_str = std::getenv("MLX_MAX_OPS_PER_BUFFER")) {
|
if (const char* buff_str = std::getenv("MLX_MAX_OPS_PER_BUFFER")) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright © 2023 Apple Inc.
|
// Copyright © 2023-2024 Apple Inc.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
@ -11,14 +11,7 @@
|
|||||||
|
|
||||||
namespace mlx::core::metal {
|
namespace mlx::core::metal {
|
||||||
|
|
||||||
constexpr bool is_available() {
|
bool is_available();
|
||||||
#ifdef _METAL_
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cache_enabled(void);
|
bool cache_enabled(void);
|
||||||
void set_cache_enabled(bool enabled);
|
void set_cache_enabled(bool enabled);
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright © 2023 Apple Inc.
|
// Copyright © 2023-2024 Apple Inc.
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
namespace mlx::core::metal {
|
namespace mlx::core::metal {
|
||||||
|
|
||||||
|
bool is_available() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void new_stream(Stream) {}
|
void new_stream(Stream) {}
|
||||||
std::shared_ptr<void> new_scoped_memory_pool() {
|
std::shared_ptr<void> new_scoped_memory_pool() {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user