The recommended Windows CUDA build path for this repository is:
internal/demod/gpudemod/kernels.cu with nvcc using MinGW g++ as the host compilerinternal/demod/gpudemod/build/libgpudemod_kernels.aThis keeps the CUDA demod kernel library in a GNU-compatible format so Go's MinGW CGO linker can consume it.
The previous failing path mixed:
nvcc + default MSVC host compiler (cl.exe) for CUDA kernelsThat produced unresolved MSVC runtime symbols such as:
__GSHandlerCheck__security_cookie_Init_thread_epochpowershell -ExecutionPolicy Bypass -File .\build-cuda-windows.ps1
powershell -ExecutionPolicy Bypass -File .\build-sdrplay.ps1
libgpudemod_kernels.anvcc must be invoked with -ccbin C:\msys64\mingw64\bin\g++.execuda-mingw/-lgpudemod_kernels-lcufft64_12-lcudart64_13-lstdc++nvcc + MinGW on Windows is not officially supported by NVIDIA. For the kernel launcher style used here (extern "C" functions, limited host C++ surface), it is the most practical path.
CUDA 13.x also drops older GPU targets such as sm_50 and sm_60, so the kernel build script targets sm_75+.
Linux remains the cleanest end-to-end CUDA path:
nvcc + GCC