소스 검색

Disable GPU validation by default in production

master
Jan Svabenik 2 일 전
부모
커밋
ed0711cfb9
3개의 변경된 파일25개의 추가작업 그리고 2개의 파일을 삭제
  1. +1
    -0
      README.md
  2. +15
    -2
      internal/demod/gpudemod/gpudemod_windows.go
  3. +9
    -0
      internal/demod/gpudemod/validation_runtime.go

+ 1
- 0
README.md 파일 보기

@@ -49,6 +49,7 @@ This path uses:
Important:
- `gpudemod_kernels.dll` must be present next to `sdrd.exe` or in `internal/demod/gpudemod/build/`
- `build-sdrplay.ps1` prepares the runtime DLL placement and PATH setup for SDRplay + CUDA DLLs
- GPU validation is disabled by default for performance; enable it with `SDR_GPU_VALIDATE=1` when debugging
- older experimental Windows build scripts were removed to avoid confusion

### Linux


+ 15
- 2
internal/demod/gpudemod/gpudemod_windows.go 파일 보기

@@ -435,8 +435,21 @@ func (e *Engine) Demod(iq []complex64, offsetHz float64, bw float64, mode DemodT
e.SetFIR(taps)
}
filtered, ok := e.tryCUDAFIR(shifted, len(taps))
e.lastFIRUsedGPU = ok && ValidateFIR(shifted, taps, filtered, 1e-3)
if !e.lastFIRUsedGPU {
if ok {
if validationEnabled() {
e.lastFIRUsedGPU = ValidateFIR(shifted, taps, filtered, 1e-3)
if !e.lastFIRUsedGPU {
ftaps := make([]float64, len(taps))
for i, v := range taps {
ftaps[i] = float64(v)
}
filtered = dsp.ApplyFIR(shifted, ftaps)
}
} else {
e.lastFIRUsedGPU = true
}
}
if filtered == nil {
ftaps := make([]float64, len(taps))
for i, v := range taps {
ftaps[i] = float64(v)


+ 9
- 0
internal/demod/gpudemod/validation_runtime.go 파일 보기

@@ -0,0 +1,9 @@
//go:build cufft

package gpudemod

import "os"

func validationEnabled() bool {
return os.Getenv("SDR_GPU_VALIDATE") == "1"
}

불러오는 중...
취소
저장