Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Jan Svabenik 9576e2c26d chore: rename module to sdr-wideband-suite před 12 hodinami
..
build Checkpoint current working SDR pipeline state před 1 dnem
native Checkpoint current working SDR pipeline state před 1 dnem
README.md docs: split CUDA build paths by platform před 2 dny
batch.go Implement streaming recording redesign před 1 dnem
batch_runner.go Implement streaming recording redesign před 1 dnem
batch_runner_other.go Checkpoint current working SDR pipeline state před 1 dnem
batch_runner_test.go chore: rename module to sdr-wideband-suite před 12 hodinami
batch_runner_windows.go chore: rename module to sdr-wideband-suite před 12 hodinami
doc.go docs: add initial CUDA demod kernel source před 2 dny
errors.go Introduce reusable gpudemod batch runner před 2 dny
gpudemod.go chore: rename module to sdr-wideband-suite před 12 hodinami
gpudemod_cufft_test.go build: wire CUDA demod package through nvcc and MSVC před 2 dny
gpudemod_stub.go Add GPU shift-filter-decimate path for signal extraction před 2 dny
gpudemod_test.go feat: prepare CUDA demod launch boundary před 2 dny
gpudemod_windows.go chore: rename module to sdr-wideband-suite před 12 hodinami
kernels.cu feat: add demod validation and GPU mode telemetry před 2 dny
validation.go chore: rename module to sdr-wideband-suite před 12 hodinami
validation_extra.go chore: rename module to sdr-wideband-suite před 12 hodinami
validation_extra_test.go feat: add demod validation and GPU mode telemetry před 2 dny
validation_runtime.go Disable GPU validation by default in production před 2 dny
validation_test.go chore: rename module to sdr-wideband-suite před 12 hodinami
windows_bridge.go feat: parallelize mixed-bandwidth GPU batch demod před 2 dny

README.md

gpudemod

Phase 1 CUDA demod scaffolding.

Current state

  • Standard Go builds use gpudemod_stub.go (!cufft).
  • cufft builds allocate GPU buffers and cross the CGO/CUDA launch boundary.
  • If CUDA launch wrappers are not backed by compiled kernels yet, the code falls back to CPU DSP.
  • The shifted IQ path is already wired so a successful GPU freq-shift result can be copied back and reused immediately.
  • Build orchestration should now be considered OS-specific; see docs/build-cuda.md.

First real kernel

kernels.cu contains the first candidate implementation:

  • gpud_freq_shift_kernel

This is not compiled automatically yet in the current environment because the machine currently lacks a CUDA compiler toolchain in PATH (nvcc not found).

Next machine-side step

On a CUDA-capable dev machine with toolchain installed:

  1. Compile kernels.cu into an object file and archive it into a linkable library
    • helper script: tools/build-gpudemod-kernel.ps1
  2. On Jan's Windows machine, the working kernel-build path currently relies on nvcc + MSVC cl.exe in PATH
  3. Link gpudemod_kernels.lib into the cufft build
  4. Replace gpud_launch_freq_shift(...) stub body with the real kernel launch
  5. Validate copied-back shifted IQ against dsp.FreqShift
  6. Only then move the next stage (FM discriminator) onto the GPU

Why this is still useful

The runtime/buffer/recorder/fallback structure is already in place, so once kernel compilation is available, real acceleration can be inserted without another architecture rewrite.