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.

1.2KB

CUDA Build Strategy

Windows: gpudemod DLL split

The recommended Windows CUDA path is now a DLL split for gpudemod:

  1. Build internal/demod/gpudemod/native/exports.cu into gpudemod_kernels.dll using nvcc + MSVC
  2. Build the Go app with MinGW GCC/G++ via CGO
  3. Load gpudemod_kernels.dll at runtime from Go on Windows

This avoids direct static linking of MSVC-built CUDA objects into the MinGW-linked Go binary.

Why

The previous failing paths mixed incompatible toolchains at final link time:

  • MSVC-host CUDA object/library generation
  • MinGW GCC/LD for the Go executable

The DLL split keeps that boundary at runtime instead of link time.

Current Windows build flow

powershell -ExecutionPolicy Bypass -File .\build-cuda-windows.ps1
powershell -ExecutionPolicy Bypass -File .\build-sdrplay.ps1

Runtime expectation

gpudemod_kernels.dll must be available either:

  • next to sdrd.exe, or
  • in internal/demod/gpudemod/build/ during local runs from the repo

The Windows gpudemod loader searches both locations.

Linux

Linux remains the simpler direct-link path and still avoids the Windows mixed-toolchain problem entirely.