Spaces:
Sleeping
Sleeping
Diego Devesa
commited on
Commit
·
6d7599e
1
Parent(s):
b73266f
llama : accept a list of devices to use to offload a model (llama/10497)
Browse files* llama : accept a list of devices to use to offload a model
* accept `--dev none` to completely disable offloading
* fix dev list with dl backends
* rename env parameter to LLAMA_ARG_DEVICE for consistency
ggml/src/ggml-backend-reg.cpp
CHANGED
|
@@ -253,6 +253,15 @@ void ggml_backend_device_register(ggml_backend_dev_t device) {
|
|
| 253 |
}
|
| 254 |
|
| 255 |
// Backend (reg) enumeration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
size_t ggml_backend_reg_count() {
|
| 257 |
return get_reg().backends.size();
|
| 258 |
}
|
|
@@ -265,7 +274,7 @@ ggml_backend_reg_t ggml_backend_reg_get(size_t index) {
|
|
| 265 |
ggml_backend_reg_t ggml_backend_reg_by_name(const char * name) {
|
| 266 |
for (size_t i = 0; i < ggml_backend_reg_count(); i++) {
|
| 267 |
ggml_backend_reg_t reg = ggml_backend_reg_get(i);
|
| 268 |
-
if (
|
| 269 |
return reg;
|
| 270 |
}
|
| 271 |
}
|
|
@@ -285,7 +294,7 @@ ggml_backend_dev_t ggml_backend_dev_get(size_t index) {
|
|
| 285 |
ggml_backend_dev_t ggml_backend_dev_by_name(const char * name) {
|
| 286 |
for (size_t i = 0; i < ggml_backend_dev_count(); i++) {
|
| 287 |
ggml_backend_dev_t dev = ggml_backend_dev_get(i);
|
| 288 |
-
if (
|
| 289 |
return dev;
|
| 290 |
}
|
| 291 |
}
|
|
|
|
| 253 |
}
|
| 254 |
|
| 255 |
// Backend (reg) enumeration
|
| 256 |
+
static bool striequals(const char * a, const char * b) {
|
| 257 |
+
for (; *a && *b; a++, b++) {
|
| 258 |
+
if (std::tolower(*a) != std::tolower(*b)) {
|
| 259 |
+
return false;
|
| 260 |
+
}
|
| 261 |
+
}
|
| 262 |
+
return *a == *b;
|
| 263 |
+
}
|
| 264 |
+
|
| 265 |
size_t ggml_backend_reg_count() {
|
| 266 |
return get_reg().backends.size();
|
| 267 |
}
|
|
|
|
| 274 |
ggml_backend_reg_t ggml_backend_reg_by_name(const char * name) {
|
| 275 |
for (size_t i = 0; i < ggml_backend_reg_count(); i++) {
|
| 276 |
ggml_backend_reg_t reg = ggml_backend_reg_get(i);
|
| 277 |
+
if (striequals(ggml_backend_reg_name(reg), name)) {
|
| 278 |
return reg;
|
| 279 |
}
|
| 280 |
}
|
|
|
|
| 294 |
ggml_backend_dev_t ggml_backend_dev_by_name(const char * name) {
|
| 295 |
for (size_t i = 0; i < ggml_backend_dev_count(); i++) {
|
| 296 |
ggml_backend_dev_t dev = ggml_backend_dev_get(i);
|
| 297 |
+
if (striequals(ggml_backend_dev_name(dev), name)) {
|
| 298 |
return dev;
|
| 299 |
}
|
| 300 |
}
|