fix(webui): keep ramp-up burns as a single multi-GPU task

buildNvidiaTaskSet only treated ParallelGPUs as a reason to keep all
selected GPUs in one task, so ramp-up (StaggerGPUStart) fell through
to per-model task splitting. When that split left a single GPU in a
task, resolveNvidiaRampPlan silently returned StaggerSeconds=0,
making the ramp-up toggle a no-op.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-08-17 10:59:49 +03:00
co-authored by Claude Sonnet 5
parent b1f165edb3
commit 4ac9863353
+3 -3
View File
@@ -267,9 +267,9 @@ func formatSplitTaskName(baseName, selectionLabel string) string {
} }
func buildNvidiaTaskSet(target string, priority int, createdAt time.Time, params taskParams, baseName string, appRef *app.App, idPrefix string) ([]*Task, error) { func buildNvidiaTaskSet(target string, priority int, createdAt time.Time, params taskParams, baseName string, appRef *app.App, idPrefix string) ([]*Task, error) {
if !shouldSplitHomogeneousNvidiaTarget(target) || params.ParallelGPUs { if !shouldSplitHomogeneousNvidiaTarget(target) || params.ParallelGPUs || params.StaggerGPUStart {
// Parallel mode (or non-splittable target): one task for all selected GPUs. // Parallel mode, ramp-up mode (or non-splittable target): one task for all selected GPUs.
if params.ParallelGPUs && shouldSplitHomogeneousNvidiaTarget(target) { if (params.ParallelGPUs || params.StaggerGPUStart) && shouldSplitHomogeneousNvidiaTarget(target) {
// Resolve the selected GPU indices so ExcludeGPUIndices is applied. // Resolve the selected GPU indices so ExcludeGPUIndices is applied.
gpus, err := apiListNvidiaGPUs(appRef) gpus, err := apiListNvidiaGPUs(appRef)
if err != nil { if err != nil {