* 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
#endif
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) {
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];