metal: use shared buffers on eGPU (#17866)
* metal: use shared buffers on eGPU With #15906, I noticed on important regression when using metal backend on eGPU. This commit restore the previous behavior and add an option to force its activation. * metal: use shared buffers on eGPU * metal: use shared buffers on eGPU
This commit is contained in:
parent
96a181a933
commit
165caaf5fb
|
|
@ -769,9 +769,16 @@ ggml_metal_device_t ggml_metal_device_init(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
dev->props.use_shared_buffers = dev->props.has_unified_memory;
|
dev->props.use_shared_buffers = dev->props.has_unified_memory;
|
||||||
|
#if TARGET_OS_OSX
|
||||||
|
// In case of eGPU, shared memory may be preferable.
|
||||||
|
dev->props.use_shared_buffers |= [dev->mtl_device location] == MTLDeviceLocationExternal;
|
||||||
|
#endif
|
||||||
if (getenv("GGML_METAL_SHARED_BUFFERS_DISABLE") != NULL) {
|
if (getenv("GGML_METAL_SHARED_BUFFERS_DISABLE") != NULL) {
|
||||||
dev->props.use_shared_buffers = false;
|
dev->props.use_shared_buffers = false;
|
||||||
}
|
}
|
||||||
|
if (getenv("GGML_METAL_SHARED_BUFFERS_ENABLE") != NULL) {
|
||||||
|
dev->props.use_shared_buffers = true;
|
||||||
|
}
|
||||||
|
|
||||||
dev->props.supports_gpu_family_apple7 = [dev->mtl_device supportsFamily:MTLGPUFamilyApple7];
|
dev->props.supports_gpu_family_apple7 = [dev->mtl_device supportsFamily:MTLGPUFamilyApple7];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue