]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
ggml : skip already registered backends and devices (#22296)
authorAdrien Gallouët <redacted>
Tue, 28 Apr 2026 07:02:32 +0000 (09:02 +0200)
committerGitHub <redacted>
Tue, 28 Apr 2026 07:02:32 +0000 (10:02 +0300)
Signed-off-by: Adrien Gallouët <redacted>
ggml/src/ggml-backend-reg.cpp

index 0587109212e596e2f0891707a2da4892b0c2db12..8165ae2c8bbea5105b113348fab4e814820f5ac8 100644 (file)
@@ -181,6 +181,12 @@ struct ggml_backend_registry {
             return;
         }
 
+        for (auto & entry : backends) {
+            if (entry.reg == reg) {
+                return;
+            }
+        }
+
 #ifndef NDEBUG
         GGML_LOG_DEBUG("%s: registered backend %s (%zu devices)\n",
             __func__, ggml_backend_reg_name(reg), ggml_backend_reg_dev_count(reg));
@@ -192,6 +198,12 @@ struct ggml_backend_registry {
     }
 
     void register_device(ggml_backend_dev_t device) {
+        for (auto & dev : devices) {
+            if (dev == device) {
+                return;
+            }
+        }
+
 #ifndef NDEBUG
         GGML_LOG_DEBUG("%s: registered device %s (%s)\n", __func__, ggml_backend_dev_name(device), ggml_backend_dev_description(device));
 #endif