ggml : skip already registered backends and devices (#22296)
Signed-off-by: Adrien Gallouët <angt@huggingface.co>
This commit is contained in:
@@ -181,6 +181,12 @@ struct ggml_backend_registry {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto & entry : backends) {
|
||||||
|
if (entry.reg == reg) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
GGML_LOG_DEBUG("%s: registered backend %s (%zu devices)\n",
|
GGML_LOG_DEBUG("%s: registered backend %s (%zu devices)\n",
|
||||||
__func__, ggml_backend_reg_name(reg), ggml_backend_reg_dev_count(reg));
|
__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) {
|
void register_device(ggml_backend_dev_t device) {
|
||||||
|
for (auto & dev : devices) {
|
||||||
|
if (dev == device) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
GGML_LOG_DEBUG("%s: registered device %s (%s)\n", __func__, ggml_backend_dev_name(device), ggml_backend_dev_description(device));
|
GGML_LOG_DEBUG("%s: registered device %s (%s)\n", __func__, ggml_backend_dev_name(device), ggml_backend_dev_description(device));
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user