Add mtmd: do not attempt to load a GPU backend if none are available

This commit is contained in:
Iwan Kawrakow
2025-09-26 09:08:48 +03:00
parent 042f595632
commit dbcc01bc43

View File

@@ -408,6 +408,9 @@ struct clip_ctx {
if (!backend_cpu) {
throw std::runtime_error("failed to initialize CPU backend");
}
int n_backend = ggml_backend_reg_get_count();
LOG_INF("%s: have %d back-ends:\n", __func__, n_backend);
for (int i = 0; i < n_backend; ++i) printf(" %d: %s\n", i, ggml_backend_reg_get_name(i));
if (ctx_params.use_gpu) {
auto backend_name = std::getenv("MTMD_BACKEND_DEVICE");
if (backend_name != nullptr) {
@@ -417,7 +420,7 @@ struct clip_ctx {
LOG_WRN("%s: Warning: Failed to initialize \"%s\" backend, falling back to default GPU backend\n", __func__, backend_name);
}
}
if (!backend) {
if (!backend && n_backend > 1) {
backend = ggml_backend_reg_init_backend(1, nullptr);
//backend = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_GPU, nullptr);
//backend = backend ? backend : ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_IGPU, nullptr);