mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-24 15:38:12 +02:00
Moteur : LOAD_GUARD ne refuse plus sur la seule VRAM NVIDIA (Vulkan, cartes mixtes)
La borne basse des poids en RAM se calculait avec la VRAM de nvidia-smi. Un moteur Vulkan sur une machine NVIDIA + AMD, sans --device, place aussi des poids sur la carte AMD : la borne était fausse et le lancement refusé à tort. Un moteur ROCm à côté d'une carte NVIDIA n'utilise pas du tout celle-ci. - Le refus se décide désormais sur les cartes que le moteur liste lui-même (--list-devices, dans l'environnement du lancement, sélection GPU comprise), toutes additionnées : rien au-delà ne peut recevoir de poids, la borne est sûre. Une carte listée sans servir (iGPU) ne fait que rendre le refus plus rare. - Lu seulement quand un refus se profile sur la VRAM NVIDIA : aucun lancement de plus dans le cas ordinaire. Les cartes de SPLIT_MODE sont reprises si elles sont déjà lues. - Liste illisible, vide ou carte à 0 Mio (déjà pleine) : avertissement, jamais de refus. Même chose dans l'aperçu de l'éditeur, qui reprend la dernière liste complète du moteur (devices.json) sans le lancer. - Le reste ne bouge pas : VRAM inconnue, --device, --rpc, mémoire unifiée. - Tests : faux refus Vulkan évité, nvidia-smi seul n'est qu'un avis, lecture déclenchée seulement avec un refus en vue, somme des cartes (JSON relu). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a4db6d4da1
commit
f0fef91773
5 files changed
+164
-16
No files matched your search
@@ -361,6 +361,10 @@ func cmdServe(args []string) error {
|
||||
probeSideSlotEnv(cfg, &si)
|
||||
// SPLIT_MODE=tensor seulement : cartes listées par CE moteur, dans son ordre.
|
||||
probeSplit(cfg, bin, &si)
|
||||
// LOAD_GUARD : un refus envisagé sur la VRAM NVIDIA se décide sur les
|
||||
// cartes du moteur (Vulkan sur cartes mixtes, ROCm…). Sinon rien n'est lu.
|
||||
normExtra, _ := normalizeLoadFlags(extra, helpSupportsLoadMode(si.Help))
|
||||
probeLoadDevices(cfg, normExtra, bin, &si)
|
||||
spec := specMode(cfg)
|
||||
if spec != "off" && spec != "" {
|
||||
probeSpec(cfg, &si)
|
||||
@@ -489,7 +493,11 @@ type serveSysInfo struct {
|
||||
RAMAvailMiB int64 // RAM libre au lancement
|
||||
VRAMMiB int64 // VRAM NVIDIA des cartes visibles
|
||||
UnifiedMem bool // macOS : RAM et VRAM ne font qu'une (voir loadModeRisk)
|
||||
SlotDir string // dossier de --slot-save-path, créé et vérifié ; vide = pas de drapeau
|
||||
// VRAM des cartes listées par le moteur lui-même (--list-devices), lue
|
||||
// seulement quand LOAD_GUARD envisage un refus (probeLoadDevices) ; 0 =
|
||||
// non lue : un avis au plus, jamais de refus sur la seule VRAM NVIDIA.
|
||||
EngineVRAMMiB int64
|
||||
SlotDir string // dossier de --slot-save-path, créé et vérifié ; vide = pas de drapeau
|
||||
|
||||
// Build d'un moteur officiel (engineBuildTrusted), lu seulement pour un
|
||||
// modèle hybride ou SPEC=auto ; 0 = inconnu ou non lu : ni avis ni drapeau
|
||||
|
||||
Reference in new issue
Block a user