Skip to content

Commit 32120c1

Browse files
authored
vulkan: prefer host-visible memory buffers on UMA devices (#22930)
* implement UMA host-visible memory * update based on 0cc4m's suggestion
1 parent d5fb104 commit 32120c1

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

ggml/src/ggml-vulkan/ggml-vulkan.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3080,8 +3080,10 @@ static vk_buffer ggml_vk_create_buffer_device(vk_device& device, size_t size) {
30803080
buf = ggml_vk_create_buffer(device, size, {vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent,
30813081
vk::MemoryPropertyFlagBits::eDeviceLocal});
30823082
} else if (device->uma) {
3083-
// Fall back to host memory type
3084-
buf = ggml_vk_create_buffer(device, size, {vk::MemoryPropertyFlagBits::eDeviceLocal,
3083+
// On UMA, prefer host-visible memory so direct tensor borrowing works.
3084+
// If unavailable, fall back to device-local memory.
3085+
buf = ggml_vk_create_buffer(device, size, {vk::MemoryPropertyFlagBits::eDeviceLocal | vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent,
3086+
vk::MemoryPropertyFlagBits::eDeviceLocal,
30853087
vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent});
30863088
} else if (device->disable_host_visible_vidmem) {
30873089
if (device->allow_sysmem_fallback) {

0 commit comments

Comments
 (0)