mirror of
https://github.com/ml-explore/mlx.git
synced 2025-09-18 09:58:06 +08:00
fix version and expose command queue getter (#1892)
This commit is contained in:
@@ -17,6 +17,7 @@ target_sources(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/transforms.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/linalg.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/version.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/backend/metal/metal.h)
|
||||
|
||||
if(MSVC)
|
||||
|
@@ -254,9 +254,6 @@ Device::~Device() {
|
||||
|
||||
void Device::new_queue(int index) {
|
||||
auto thread_pool = metal::new_scoped_memory_pool();
|
||||
|
||||
// Multiple threads can ask the device for queues
|
||||
// We lock this as a critical section for safety
|
||||
auto q = device_->newCommandQueue(MAX_BUFFERS_PER_QUEUE);
|
||||
debug_set_stream_queue_label(q, index);
|
||||
if (!q) {
|
||||
@@ -269,6 +266,10 @@ void Device::new_queue(int index) {
|
||||
}
|
||||
}
|
||||
|
||||
MTL::CommandQueue* Device::get_queue(Stream stream) {
|
||||
return get_stream_(stream.index).queue;
|
||||
}
|
||||
|
||||
bool Device::command_buffer_needs_commit(int index) {
|
||||
auto& stream = get_stream_(index);
|
||||
if (stream.buffer_ops > max_ops_per_buffer_ ||
|
||||
|
@@ -178,6 +178,9 @@ class Device {
|
||||
}
|
||||
|
||||
void new_queue(int index);
|
||||
|
||||
MTL::CommandQueue* get_queue(Stream stream);
|
||||
|
||||
MTL::CommandBuffer* get_command_buffer(int index);
|
||||
bool command_buffer_needs_commit(int index);
|
||||
void commit_command_buffer(int index);
|
||||
|
16
mlx/version.cpp
Normal file
16
mlx/version.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
// Copyright © 2025 Apple Inc.
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "mlx/version.h"
|
||||
|
||||
#define STRINGIFY(x) #x
|
||||
#define TOSTRING(x) STRINGIFY(x)
|
||||
|
||||
namespace mlx::core {
|
||||
|
||||
std::string version() {
|
||||
return TOSTRING(MLX_VERSION);
|
||||
}
|
||||
|
||||
} // namespace mlx::core
|
@@ -1,32 +1,20 @@
|
||||
// Copyright © 2023-2024 Apple Inc.
|
||||
// Copyright © 2025 Apple Inc.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#define STRINGIFY(x) #x
|
||||
#define TOSTRING(x) STRINGIFY(x)
|
||||
#define MLX_VERSION_MAJOR 0
|
||||
#define MLX_VERSION_MINOR 24
|
||||
#define MLX_VERSION_PATCH 2
|
||||
#define MLX_VERSION_NUMERIC \
|
||||
(100000 * MLX_VERSION_MAJOR + 1000 * MLX_VERSION_MINOR + MLX_VERSION_PATCH)
|
||||
|
||||
namespace mlx::core {
|
||||
|
||||
constexpr const char* version() {
|
||||
return TOSTRING(MLX_VERSION);
|
||||
}
|
||||
|
||||
constexpr int version_major() {
|
||||
return MLX_VERSION_MAJOR;
|
||||
}
|
||||
|
||||
constexpr int version_minor() {
|
||||
return MLX_VERSION_MINOR;
|
||||
}
|
||||
|
||||
constexpr int version_patch() {
|
||||
return MLX_VERSION_PATCH;
|
||||
}
|
||||
|
||||
constexpr int version_numeric() {
|
||||
return MLX_VERSION_NUMERIC;
|
||||
}
|
||||
/* A string representation of the MLX version in the format
|
||||
* "major.minor.patch".
|
||||
*
|
||||
* For dev builds, the version will include the suffix ".devYYYYMMDD+hash"
|
||||
*/
|
||||
std::string version();
|
||||
|
||||
} // namespace mlx::core
|
||||
|
Reference in New Issue
Block a user