mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2025-01-11 21:10:24 +01:00
metal : show all Metal device instances in the system (#2952)
* ggml_metal_init: Show all Metal device instances in the system Also show the default Metal device that was picked. * Update ggml-metal.m --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
parent
21f3d1be86
commit
8b56b4f2c3
18
ggml-metal.m
18
ggml-metal.m
@ -116,10 +116,24 @@ static NSString * const msl_library_source = @"see metal.metal";
|
|||||||
struct ggml_metal_context * ggml_metal_init(int n_cb) {
|
struct ggml_metal_context * ggml_metal_init(int n_cb) {
|
||||||
metal_printf("%s: allocating\n", __func__);
|
metal_printf("%s: allocating\n", __func__);
|
||||||
|
|
||||||
struct ggml_metal_context * ctx = malloc(sizeof(struct ggml_metal_context));
|
// Show all the Metal device instances in the system
|
||||||
|
NSArray * devices = MTLCopyAllDevices();
|
||||||
|
id <MTLDevice> device;
|
||||||
|
NSString * s;
|
||||||
|
for (device in devices) {
|
||||||
|
s = [device name];
|
||||||
|
metal_printf("%s: found device: %s\n", __func__, [s UTF8String]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pick and show default Metal device
|
||||||
|
device = MTLCreateSystemDefaultDevice();
|
||||||
|
s = [device name];
|
||||||
|
metal_printf("%s: picking default device: %s\n", __func__, [s UTF8String]);
|
||||||
|
|
||||||
|
// Configure context
|
||||||
|
struct ggml_metal_context * ctx = malloc(sizeof(struct ggml_metal_context));
|
||||||
|
ctx->device = device;
|
||||||
ctx->n_cb = MIN(n_cb, GGML_METAL_MAX_BUFFERS);
|
ctx->n_cb = MIN(n_cb, GGML_METAL_MAX_BUFFERS);
|
||||||
ctx->device = MTLCreateSystemDefaultDevice();
|
|
||||||
ctx->queue = [ctx->device newCommandQueue];
|
ctx->queue = [ctx->device newCommandQueue];
|
||||||
ctx->n_buffers = 0;
|
ctx->n_buffers = 0;
|
||||||
ctx->concur_list_len = 0;
|
ctx->concur_list_len = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user