]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
ggml : skip already registered backends and devices (llama/22296)
authorAdrien Gallouët <redacted>
Tue, 28 Apr 2026 07:02:32 +0000 (09:02 +0200)
committerGeorgi Gerganov <redacted>
Thu, 30 Apr 2026 08:29:21 +0000 (11:29 +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