From 4d3224d2ba1d96834d0356736cf66b79d80d62f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Tue, 17 Jun 2025 12:17:46 +0200 Subject: [PATCH 1/3] Mtmd: add a way to select device for vision encoder --- tools/mtmd/clip.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/mtmd/clip.cpp b/tools/mtmd/clip.cpp index 9146c9e9c4481..fe08e41dfc37b 100644 --- a/tools/mtmd/clip.cpp +++ b/tools/mtmd/clip.cpp @@ -384,9 +384,16 @@ struct clip_ctx { if (!backend_cpu) { throw std::runtime_error("failed to initialize CPU backend"); } - backend = ctx_params.use_gpu - ? ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr) - : nullptr; + backend = nullptr; + auto backend_name = std::getenv("MTMD_BACKEND_DEVICE"); + if(backend_name != nullptr && ctx_params.use_gpu) { + backend = ggml_backend_init_by_name(backend_name, nullptr); + } + if(!backend){ + backend = ctx_params.use_gpu + ? ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr) + : nullptr; + } if (backend) { LOG_INF("%s: CLIP using %s backend\n", __func__, ggml_backend_name(backend)); From 9270d9d22b3274f6bce21f680df0ad2a687a0d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Tue, 17 Jun 2025 12:27:10 +0200 Subject: [PATCH 2/3] simplify --- tools/mtmd/clip.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/mtmd/clip.cpp b/tools/mtmd/clip.cpp index fe08e41dfc37b..e26816d5542e4 100644 --- a/tools/mtmd/clip.cpp +++ b/tools/mtmd/clip.cpp @@ -385,14 +385,14 @@ struct clip_ctx { throw std::runtime_error("failed to initialize CPU backend"); } backend = nullptr; - auto backend_name = std::getenv("MTMD_BACKEND_DEVICE"); - if(backend_name != nullptr && ctx_params.use_gpu) { - backend = ggml_backend_init_by_name(backend_name, nullptr); - } - if(!backend){ - backend = ctx_params.use_gpu - ? ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr) - : nullptr; + if(ctx_params.use_gpu) { + auto backend_name = std::getenv("MTMD_BACKEND_DEVICE"); + if(backend_name != nullptr) { + backend = ggml_backend_init_by_name(backend_name, nullptr); + } + if(!backend){ + backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr); + } } if (backend) { From 47e9237ed16b6f28429d52ba7773997485231cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Thu, 26 Jun 2025 12:02:27 +0200 Subject: [PATCH 3/3] format --- tools/mtmd/clip.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/mtmd/clip.cpp b/tools/mtmd/clip.cpp index e26816d5542e4..d04af9ac21e5c 100644 --- a/tools/mtmd/clip.cpp +++ b/tools/mtmd/clip.cpp @@ -385,12 +385,12 @@ struct clip_ctx { throw std::runtime_error("failed to initialize CPU backend"); } backend = nullptr; - if(ctx_params.use_gpu) { + if (ctx_params.use_gpu) { auto backend_name = std::getenv("MTMD_BACKEND_DEVICE"); - if(backend_name != nullptr) { + if (backend_name != nullptr) { backend = ggml_backend_init_by_name(backend_name, nullptr); } - if(!backend){ + if (!backend) { backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr); } }