Skip to content

Commit

Permalink
fix metal build
Browse files Browse the repository at this point in the history
  • Loading branch information
slaren committed Nov 28, 2023
1 parent 6badc40 commit 22ab6a4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/ggml-backend.c
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ static ggml_backend_t get_allocr_backend(ggml_backend_sched_t sched, ggml_talloc
return sched->backends[i];
}
}
assert(false); // should never happen
GGML_UNREACHABLE();
}

// returns the backend that should be used for the node based on the current locations
Expand Down
28 changes: 15 additions & 13 deletions src/ggml-metal.m
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ int ggml_metal_if_optimized(struct ggml_metal_context * ctx) {
const int64_t tsize = ggml_nbytes(t);

// compatibility with ggml-backend
if (t->buffer && t->buffer->buft == ggml_backend_buffer_type_metal) {
if (t->buffer && t->buffer->buft == ggml_backend_metal_buffer_type()) {
struct ggml_backend_metal_buffer_context * buf_ctx = (struct ggml_backend_metal_buffer_context *) t->buffer->context;

const int64_t ioffs = (int64_t) t->data - (int64_t) buf_ctx->data;
Expand Down Expand Up @@ -1747,16 +1747,17 @@ static bool ggml_backend_metal_buffer_type_supports_backend(ggml_backend_buffer_
GGML_UNUSED(buft);
}

static struct ggml_backend_buffer_type ggml_backend_buffer_type_metal = {
/* .iface = */ {
/* .alloc_buffer = */ ggml_backend_metal_buffer_type_alloc_buffer,
/* .get_alignment = */ ggml_backend_metal_buffer_type_get_alignment,
/* .get_alloc_size = */ NULL, // defaults to ggml_nbytes
/* .supports_backend = */ ggml_backend_metal_buffer_type_supports_backend,
}
};

ggml_backend_buffer_type_t ggml_backend_metal_buffer_type(void) {
static struct ggml_backend_buffer_type ggml_backend_buffer_type_metal = {
/* .iface = */ {
/* .alloc_buffer = */ ggml_backend_metal_buffer_type_alloc_buffer,
/* .get_alignment = */ ggml_backend_metal_buffer_type_get_alignment,
/* .get_alloc_size = */ NULL, // defaults to ggml_nbytes
/* .supports_backend = */ ggml_backend_metal_buffer_type_supports_backend,
},
/* .context = */ NULL,
};

return &ggml_backend_buffer_type_metal;
}

Expand All @@ -1777,7 +1778,7 @@ static void ggml_backend_metal_synchronize(ggml_backend_t backend) {
}

static ggml_backend_buffer_type_t ggml_backend_metal_get_default_buffer_type(ggml_backend_t backend) {
return ggml_backend_buffer_type_metal;
return ggml_backend_metal_buffer_type();

UNUSED(backend);
}
Expand Down Expand Up @@ -1850,10 +1851,11 @@ void ggml_backend_metal_set_n_cb(ggml_backend_t backend, int n_cb) {
ggml_metal_set_n_cb(ctx, n_cb);
}

static ggml_backend_t ggml_backend_reg_metal_init(const char * params) {
static ggml_backend_t ggml_backend_reg_metal_init(const char * params, void * user_data) {
return ggml_backend_metal_init();

GGML_UNUSED(params);
GGML_UNUSED(user_data);
}

GGML_BACKEND_REGISTER("Metal", ggml_backend_reg_metal_init, ggml_backend_metal_buffer_type())
GGML_BACKEND_REGISTER("Metal", ggml_backend_reg_metal_init, ggml_backend_metal_buffer_type(), NULL)

0 comments on commit 22ab6a4

Please sign in to comment.