diff --git a/internal/loki/backend_serve.go b/internal/loki/backend_serve.go index b65f2ff..c711d98 100644 --- a/internal/loki/backend_serve.go +++ b/internal/loki/backend_serve.go @@ -101,7 +101,6 @@ func cmdServe(args []string) error { llmArgs := []string{bin, "-m", model, - "-ngl", get("NGL", "999"), "-c", get("CTX", "32768"), "-t", get("THREADS", "0"), "-tb", get("THREADS_BATCH", "0"), @@ -110,6 +109,16 @@ func cmdServe(args []string) error { "--host", get("HOST", "0.0.0.0"), "--port", get("PORT", "8080"), } + // NGL=auto : on n'envoie PAS -ngl, et llama.cpp choisit lui-même combien de + // couches tiennent dans la VRAM libre (common_fit_params). Il s'en abstient + // dès que la valeur est imposée — « n_gpu_layers already set by user to 999, + // abort » — d'où des cudaMalloc en échec, un repli partiel sur le CPU et un + // débit effondré alors que le GPU tourne à 100 %. + // Le défaut reste 999 (tout sur le GPU) : omettre -ngl sur un llama.cpp + // antérieur à cet ajustement automatique le ferait tourner 100 % CPU. + if ngl := get("NGL", "999"); !strings.EqualFold(ngl, "auto") { + llmArgs = append(llmArgs, "-ngl", ngl) + } if ktv != "" { llmArgs = append(llmArgs, "-ctk", ktv) } diff --git a/internal/loki/sys_service.go b/internal/loki/sys_service.go index 9a8e80f..4eadd6b 100644 --- a/internal/loki/sys_service.go +++ b/internal/loki/sys_service.go @@ -67,7 +67,7 @@ var configTemplate = []struct{ key, help string }{ {"HOST", "adresse d'écoute du moteur (défaut 0.0.0.0)"}, {"PORT", "port du moteur (défaut 8080)"}, {"CTX", "taille du contexte (défaut 32768)"}, - {"NGL", "couches déportées sur le GPU (défaut 999 = tout)"}, + {"NGL", "couches déportées sur le GPU (défaut 999 = tout ; auto = ce qui tient en VRAM)"}, {"BATCH", "batch (défaut 2048)"}, {"UBATCH", "micro-batch (défaut 512)"}, {"THREADS", "threads CPU, 0 = auto"}, diff --git a/internal/loki/ui/index.html b/internal/loki/ui/index.html index 135758e..68be1ae 100644 --- a/internal/loki/ui/index.html +++ b/internal/loki/ui/index.html @@ -1902,8 +1902,8 @@ button:hover{border-color:var(--dim);color:var(--text)} tok
- Couches sur GPU999 = tout sur le GPU - + Couches sur GPU999 = tout sur le GPU · auto = ce qui tient en VRAM +
Experts MoE sur CPUvide = non diff --git a/internal/loki/ui/src/index.tmpl.html b/internal/loki/ui/src/index.tmpl.html index f69057e..ca2cc5e 100644 --- a/internal/loki/ui/src/index.tmpl.html +++ b/internal/loki/ui/src/index.tmpl.html @@ -720,8 +720,8 @@ tok
- Couches sur GPU999 = tout sur le GPU - + Couches sur GPU999 = tout sur le GPU · auto = ce qui tient en VRAM +
Experts MoE sur CPUvide = non