mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
Moteur : corrections de relecture de FIT_TARGET — -sm tensor coupe aussi --fit, -ngl -1 ne le coupe pas
common/fit.cpp abandonne sur LLAMA_SPLIT_MODE_TENSOR comme sur ROW (« not implemented, abort ») : avec -sm tensor, la marge partait quand même et la note annonçait un --fit-target qui ne servait à rien — de quoi mesurer deux fois le même placement. À l'inverse, -ngl -1 est la valeur par défaut du moteur (celle qu'écrit « auto ») : fit tourne, et la clé était refusée à tort. - fitBlocker : row ou tensor, en drapeau ou en LLAMA_ARG_SPLIT_MODE ; -1 traité comme auto. - tests : -sm tensor, LLAMA_ARG_SPLIT_MODE=tensor, -sm layer, -ngl -1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9aa426a389
commit
a42c184ed2
2 files changed
+18
-3
No files matched your search
@@ -162,7 +162,9 @@ func fitBlocker(cfg map[string]string, extra []string, si serveSysInfo) string {
|
|||||||
ngl = si.ArgEnv["LLAMA_ARG_N_GPU_LAYERS"]
|
ngl = si.ArgEnv["LLAMA_ARG_N_GPU_LAYERS"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ngl = strings.TrimSpace(ngl); ngl != "" && !strings.EqualFold(ngl, "auto") {
|
// -1 est la valeur par défaut du moteur, celle qu'« auto » écrit : fit ne
|
||||||
|
// la prend pas pour un choix de l'utilisateur.
|
||||||
|
if ngl = strings.TrimSpace(ngl); ngl != "" && ngl != "-1" && !strings.EqualFold(ngl, "auto") {
|
||||||
return "couches GPU fixées à " + ngl
|
return "couches GPU fixées à " + ngl
|
||||||
}
|
}
|
||||||
if hasAnyFlag(extra, "-ts", "--tensor-split") || si.ArgEnv["LLAMA_ARG_TENSOR_SPLIT"] != "" {
|
if hasAnyFlag(extra, "-ts", "--tensor-split") || si.ArgEnv["LLAMA_ARG_TENSOR_SPLIT"] != "" {
|
||||||
@@ -175,8 +177,10 @@ func fitBlocker(cfg map[string]string, extra []string, si serveSysInfo) string {
|
|||||||
if sm == "" {
|
if sm == "" {
|
||||||
sm = si.ArgEnv["LLAMA_ARG_SPLIT_MODE"]
|
sm = si.ArgEnv["LLAMA_ARG_SPLIT_MODE"]
|
||||||
}
|
}
|
||||||
if strings.EqualFold(strings.TrimSpace(sm), "row") {
|
// row ET tensor : fit abandonne sur l'une comme sur l'autre (« not
|
||||||
return "-sm row"
|
// implemented », common/fit.cpp).
|
||||||
|
if sm = strings.ToLower(strings.TrimSpace(sm)); sm == "row" || sm == "tensor" {
|
||||||
|
return "-sm " + sm
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,17 @@ func TestFitTargetArgs(t *testing.T) {
|
|||||||
si: serveSysInfo{Help: helpFit, ArgEnv: map[string]string{"LLAMA_ARG_FIT": "off"}}, wantNotes: 1},
|
si: serveSysInfo{Help: helpFit, ArgEnv: map[string]string{"LLAMA_ARG_FIT": "off"}}, wantNotes: 1},
|
||||||
{name: "-sm row : rien",
|
{name: "-sm row : rien",
|
||||||
cfg: map[string]string{"FIT_TARGET": "1024", "EXTRA_ARGS": "-sm row"}, si: fit, wantNotes: 1},
|
cfg: map[string]string{"FIT_TARGET": "1024", "EXTRA_ARGS": "-sm row"}, si: fit, wantNotes: 1},
|
||||||
|
{name: "-sm tensor : fit abandonne aussi, rien",
|
||||||
|
cfg: map[string]string{"FIT_TARGET": "1024", "EXTRA_ARGS": "--split-mode tensor"}, si: fit, wantNotes: 1},
|
||||||
|
{name: "LLAMA_ARG_SPLIT_MODE=tensor : rien",
|
||||||
|
cfg: map[string]string{"FIT_TARGET": "1024"},
|
||||||
|
si: serveSysInfo{Help: helpFit, ArgEnv: map[string]string{"LLAMA_ARG_SPLIT_MODE": "tensor"}}, wantNotes: 1},
|
||||||
|
{name: "-sm layer : fit tourne",
|
||||||
|
cfg: map[string]string{"FIT_TARGET": "1024", "EXTRA_ARGS": "-sm layer"}, si: fit,
|
||||||
|
want: []string{"--fit-target", "1024"}, wantNotes: 1},
|
||||||
|
{name: "-ngl -1 (le défaut du moteur) : fit tourne",
|
||||||
|
cfg: map[string]string{"FIT_TARGET": "1024", "EXTRA_ARGS": "-ngl -1"}, si: fit,
|
||||||
|
want: []string{"--fit-target", "1024"}, wantNotes: 1},
|
||||||
{name: "--device choisi : le placement reste à fit, accepté",
|
{name: "--device choisi : le placement reste à fit, accepté",
|
||||||
cfg: map[string]string{"FIT_TARGET": "1024,3072", "EXTRA_ARGS": "--device CUDA1,CUDA0"}, si: fit,
|
cfg: map[string]string{"FIT_TARGET": "1024,3072", "EXTRA_ARGS": "--device CUDA1,CUDA0"}, si: fit,
|
||||||
want: []string{"--fit-target", "1024,3072"}, wantNotes: 1},
|
want: []string{"--fit-target", "1024,3072"}, wantNotes: 1},
|
||||||
|
|||||||
Reference in new issue
Block a user