Procházet zdrojové kódy

feat: add separate decode budget

master
Jan Svabenik před 7 hodinami
rodič
revize
f31f7036ff
5 změnil soubory, kde provedl 7 přidání a 1 odebrání
  1. +1
    -0
      README.md
  2. +1
    -1
      cmd/sdrd/pipeline_runtime.go
  3. +1
    -0
      config.yaml
  4. +2
    -0
      internal/config/config.go
  5. +2
    -0
      internal/pipeline/policy.go

+ 1
- 0
README.md Zobrazit soubor

@@ -79,6 +79,7 @@ Edit `config.yaml` (autosave goes to `config.autosave.yaml`).
- `wideband-aggressive`: min_span_hz=6000, max_span_hz=250000
- `resources.max_refinement_jobs` — processing budget hint
- `resources.max_recording_streams` — recording/streaming budget hint
- `resources.max_decode_jobs` — decode budget hint
- `profiles[]` — named operating profiles/intent metadata

In phase 1, the engine stays backward compatible, but the config model now reflects the intended separation between:


+ 1
- 1
cmd/sdrd/pipeline_runtime.go Zobrazit soubor

@@ -361,7 +361,7 @@ func (rt *dspRuntime) refineSignals(art *spectrumArtifacts, input pipeline.Refin
}
}
maxRecord := rt.cfg.Resources.MaxRecordingStreams
maxDecode := rt.cfg.Resources.MaxRecordingStreams
maxDecode := rt.cfg.Resources.MaxDecodeJobs
enforceDecisionBudgets(decisions, maxRecord, maxDecode)
rt.det.UpdateClasses(signals)
return pipeline.RefinementResult{Signals: signals, Decisions: decisions, Candidates: selectedCandidates}


+ 1
- 0
config.yaml Zobrazit soubor

@@ -69,6 +69,7 @@ resources:
prefer_gpu: true
max_refinement_jobs: 8
max_recording_streams: 16
max_decode_jobs: 16
profiles:
- name: legacy
description: Current single-band legacy behavior


+ 2
- 0
internal/config/config.go Zobrazit soubor

@@ -106,6 +106,7 @@ type ResourceConfig struct {
PreferGPU bool `yaml:"prefer_gpu" json:"prefer_gpu"`
MaxRefinementJobs int `yaml:"max_refinement_jobs" json:"max_refinement_jobs"`
MaxRecordingStreams int `yaml:"max_recording_streams" json:"max_recording_streams"`
MaxDecodeJobs int `yaml:"max_decode_jobs" json:"max_decode_jobs"`
}

type ProfileConfig struct {
@@ -184,6 +185,7 @@ func Default() Config {
PreferGPU: true,
MaxRefinementJobs: 8,
MaxRecordingStreams: 16,
MaxDecodeJobs: 16,
},
Profiles: []ProfileConfig{
{Name: "legacy", Description: "Current single-band pipeline behavior", Pipeline: &PipelineConfig{Mode: "legacy", Goals: PipelineGoalConfig{Intent: "general-monitoring"}}},


+ 2
- 0
internal/pipeline/policy.go Zobrazit soubor

@@ -23,6 +23,7 @@ type Policy struct {
RefinementMaxSpanHz float64 `json:"refinement_max_span_hz"`
RefinementAutoSpan bool `json:"refinement_auto_span"`
PreferGPU bool `json:"prefer_gpu"`
MaxDecodeJobs int `json:"max_decode_jobs"`
}

func PolicyFromConfig(cfg config.Config) Policy {
@@ -47,6 +48,7 @@ func PolicyFromConfig(cfg config.Config) Policy {
RefinementMaxSpanHz: cfg.Refinement.MaxSpanHz,
RefinementAutoSpan: config.BoolValue(cfg.Refinement.AutoSpan, true),
PreferGPU: cfg.Resources.PreferGPU,
MaxDecodeJobs: cfg.Resources.MaxDecodeJobs,
}
}



Načítá se…
Zrušit
Uložit