Wideband autonomous SDR analysis engine forked from sdr-visual-suite
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
Jan Svabenik f27080b8b5 Update web audio player and streamer diagnostics 13 saat önce
..
build Update web audio player and streamer diagnostics 13 saat önce
native Improve GPU phase precision 14 saat önce
README.md docs: split CUDA build paths by platform 4 gün önce
batch.go Implement streaming recording redesign 3 gün önce
batch_runner.go Implement streaming recording redesign 3 gün önce
batch_runner_other.go Checkpoint current working SDR pipeline state 3 gün önce
batch_runner_test.go chore: rename module to sdr-wideband-suite 2 gün önce
batch_runner_windows.go chore: rename module to sdr-wideband-suite 2 gün önce
doc.go docs: add initial CUDA demod kernel source 4 gün önce
errors.go Introduce reusable gpudemod batch runner 4 gün önce
gpudemod.go chore: rename module to sdr-wideband-suite 2 gün önce
gpudemod_cufft_test.go build: wire CUDA demod package through nvcc and MSVC 4 gün önce
gpudemod_stub.go Add GPU shift-filter-decimate path for signal extraction 4 gün önce
gpudemod_test.go feat: prepare CUDA demod launch boundary 4 gün önce
gpudemod_windows.go chore: rename module to sdr-wideband-suite 2 gün önce
kernels.cu Improve GPU phase precision 14 saat önce
validation.go chore: rename module to sdr-wideband-suite 2 gün önce
validation_extra.go chore: rename module to sdr-wideband-suite 2 gün önce
validation_extra_test.go feat: add demod validation and GPU mode telemetry 4 gün önce
validation_runtime.go Disable GPU validation by default in production 4 gün önce
validation_test.go chore: rename module to sdr-wideband-suite 2 gün önce
windows_bridge.go feat: parallelize mixed-bandwidth GPU batch demod 4 gün önce

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.