Skip to content

Commit d2ff79f

Browse files
committed
feat: extend ggml_backend_reg_layla to support Metal backend
1 parent f67fcdb commit d2ff79f

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

ggml/include/ggml-backend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ extern "C" {
202202
//
203203
// Backend registry
204204
//
205-
GGML_API void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon);
205+
GGML_API void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon, bool useMetal);
206206

207207
GGML_API void ggml_backend_device_register(ggml_backend_dev_t device);
208208

ggml/src/ggml-backend-reg.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ struct ggml_backend_reg_entry {
159159
dl_handle_ptr handle;
160160
};
161161

162+
static bool _useMetal = false;
163+
162164
struct ggml_backend_registry {
163165
std::vector<ggml_backend_reg_entry> backends;
164166
std::vector<ggml_backend_dev_t> devices;
@@ -168,7 +170,8 @@ struct ggml_backend_registry {
168170
register_backend(ggml_backend_cuda_reg());
169171
#endif
170172
#ifdef GGML_USE_METAL
171-
register_backend(ggml_backend_metal_reg());
173+
if(_useMetal)
174+
register_backend(ggml_backend_metal_reg());
172175
#endif
173176
#ifdef GGML_USE_SYCL
174177
register_backend(ggml_backend_sycl_reg());
@@ -334,7 +337,7 @@ int is_i8mm_supported()
334337
#endif
335338
}
336339

337-
void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon) {
340+
void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon, bool useMetal) {
338341
if(useVulkan) {
339342
get_reg().load_backend("libggml-vulkan.so", false);
340343
}
@@ -347,6 +350,8 @@ void ggml_backend_reg_layla(bool useVulkan, bool useOpenCL, bool useHexagon) {
347350
get_reg().load_backend("libggml-hexagon.so", false);
348351
}
349352

353+
_useMetal = useMetal;
354+
350355
// load cpu backend depending on feature detection
351356
if(is_i8mm_supported()) {
352357
get_reg().load_backend("libggml-blas.so", false);

0 commit comments

Comments
 (0)