ggml_metal_init : Metal Surpport for --main-gpu ( #8886)
This commit is contained in:
parent
0d72b7562b
commit
066996d2eb
1 changed files with 1 additions and 14 deletions
|
@ -323,33 +323,21 @@ if (sysctlbyname("hw.optional.arm64", NULL, &size_arm, NULL, 0) == 0 && size_arm
|
||||||
[logMessages appendString:@"This Mac is running on an Intel processor."];
|
[logMessages appendString:@"This Mac is running on an Intel processor."];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GGML_METAL_LOG_INFO("%s'%s'\n", __func__, [logMessages UTF8String]);
|
GGML_METAL_LOG_INFO("%s'%s'\n", __func__, [logMessages UTF8String]);
|
||||||
|
|
||||||
|
|
||||||
// Pick and show default Metal device
|
// Pick and show default Metal device
|
||||||
id<MTLDevice> device = MTLCreateSystemDefaultDevice();
|
id<MTLDevice> device = MTLCreateSystemDefaultDevice();
|
||||||
NSString *defaultDeviceName = device.name;
|
NSString *defaultDeviceName = device.name;
|
||||||
GGML_METAL_LOG_INFO("%s: picking default device: %s\n", __func__, [[device name] UTF8String]);
|
GGML_METAL_LOG_INFO("%s: picking default device: %s\n", __func__, [[device name] UTF8String]);
|
||||||
|
|
||||||
|
|
||||||
GGML_METAL_LOG_INFO("%s: Passed GPU at index %d:\n", __func__, deviceIndex);
|
GGML_METAL_LOG_INFO("%s: Passed GPU at index %d:\n", __func__, deviceIndex);
|
||||||
|
NSArray<id<MTLDevice>> *alldevices = MTLCopyAllDevices();
|
||||||
|
|
||||||
NSArray<id<MTLDevice>> *alldevices = MTLCopyAllDevices();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Check if passed device index is within range
|
// Check if passed device index is within range
|
||||||
if (deviceIndex<=(alldevices.count -1)) {
|
if (deviceIndex<=(alldevices.count -1)) {
|
||||||
for (NSUInteger i = 0; i < alldevices.count; i++) {
|
for (NSUInteger i = 0; i < alldevices.count; i++) {
|
||||||
id<MTLDevice> selectgpu = alldevices[i];
|
id<MTLDevice> selectgpu = alldevices[i];
|
||||||
NSString *deviceName = selectgpu.name;
|
NSString *deviceName = selectgpu.name;
|
||||||
// NSLog(@"Device at index %lu: %@", (unsigned long)i, deviceName);
|
|
||||||
if (i == deviceIndex) {
|
if (i == deviceIndex) {
|
||||||
if (![defaultDeviceName isEqualToString:deviceName]) {
|
if (![defaultDeviceName isEqualToString:deviceName]) {
|
||||||
device = selectgpu;
|
device = selectgpu;
|
||||||
// NSLog(@"Device at index %lu: %@", (unsigned long)i, deviceName);
|
|
||||||
GGML_METAL_LOG_INFO("%s: Picking Index GPU Name: %s\n", __func__, [ deviceName UTF8String]);
|
GGML_METAL_LOG_INFO("%s: Picking Index GPU Name: %s\n", __func__, [ deviceName UTF8String]);
|
||||||
}else{
|
}else{
|
||||||
[alldevices release];
|
[alldevices release];
|
||||||
|
@ -360,7 +348,6 @@ if (sysctlbyname("hw.optional.arm64", NULL, &size_arm, NULL, 0) == 0 && size_arm
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Configure context
|
// Configure context
|
||||||
struct ggml_backend_metal_context * ctx = malloc(sizeof(struct ggml_backend_metal_context));
|
struct ggml_backend_metal_context * ctx = malloc(sizeof(struct ggml_backend_metal_context));
|
||||||
ctx->device = device;
|
ctx->device = device;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue