Kaynağa Gözat

feat: activate validated GPU pipeline stages

master
Jan Svabenik 3 gün önce
ebeveyn
işleme
3e3bc0aaed
2 değiştirilmiş dosya ile 19 ekleme ve 0 silme
  1. BIN
      internal/demod/gpudemod/build/kernels.obj
  2. +19
    -0
      internal/demod/gpudemod/gpudemod.go

BIN
internal/demod/gpudemod/build/kernels.obj Dosyayı Görüntüle


+ 19
- 0
internal/demod/gpudemod/gpudemod.go Dosyayı Görüntüle

@@ -289,24 +289,43 @@ func (e *Engine) Demod(iq []complex64, offsetHz float64, bw float64, mode DemodT
e.lastDecimUsedGPU = false
inputRate := e.sampleRate / decim

e.lastDemodUsedGPU = false
switch mode {
case DemodNFM:
if gpuAudio, ok := e.tryCUDAFMDiscrim(dec); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.NFM{}.Demod(dec, inputRate), inputRate, nil
case DemodWFM:
if gpuAudio, ok := e.tryCUDAFMDiscrim(dec); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.WFM{}.Demod(dec, inputRate), inputRate, nil
case DemodAM:
if gpuAudio, ok := e.tryCUDAAMEnvelope(dec); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.AM{}.Demod(dec, inputRate), inputRate, nil
case DemodUSB:
if gpuAudio, ok := e.tryCUDASSBProduct(dec, 700.0); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.USB{}.Demod(dec, inputRate), inputRate, nil
case DemodLSB:
if gpuAudio, ok := e.tryCUDASSBProduct(dec, -700.0); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.LSB{}.Demod(dec, inputRate), inputRate, nil
case DemodCW:
if gpuAudio, ok := e.tryCUDASSBProduct(dec, 700.0); ok {
e.lastDemodUsedGPU = true
return gpuAudio, inputRate, nil
}
return demod.CW{}.Demod(dec, inputRate), inputRate, nil
default:
return nil, 0, errors.New("unsupported demod type")


Yükleniyor…
İptal
Kaydet