I just want to point out that the current version of the software (commit 0f763a3) does not compile when using CUDA 13.2 on Ubuntu 24.04 LTS on a machine with an RTX 5070 Ti (sm_120).
Setting in Makefile.inc:
CUDA_PATH ?= /usr/local/cuda-13.2
GPU_ARCH ?= sm_120
and compiling, produces the following errors:
ridolfi@alkaid:(638G) ~/SOFT/dedisp_25Apr2026$ make
mkdir -p include
mkdir -p lib
mkdir -p obj
/usr/local/cuda-13.2/bin/nvcc -c -Xcompiler "-fPIC -Wall" -O3 -g -DDEDISP_DEBUG=0 -arch=sm_120 -Isrc -I/usr/local/cuda-13.2/include -o obj/dedisp.o src/dedisp.cu
src/kernels.cuh(481): error: namespace "thrust" has no member class "unary_function"
: public thrust::unary_function<unsigned int,WordType> {
^
src/kernels.cuh(481): error: class or struct definition is missing
: public thrust::unary_function<unsigned int,WordType> {
^
src/kernels.cuh(510): warning #12-D: parsing restarts here after previous syntax error
};
^
Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"
src/kernels.cuh(529): error: no suitable constructor exists to convert from "const dedisp_word *" to "scrunch_x2_functor<dedisp_word>" (aka "scrunch_x2_functor<unsigned int>")
scrunch_x2_functor<dedisp_word>(d_in, nbits, nsamps));
^
src/kernels.cuh(529): error: expected a ")"
scrunch_x2_functor<dedisp_word>(d_in, nbits, nsamps));
^
src/kernels.cuh(587): error: namespace "thrust" has no member class "unary_function"
: public thrust::unary_function<unsigned int,WordType> {
^
src/kernels.cuh(587): error: class or struct definition is missing
: public thrust::unary_function<unsigned int,WordType> {
^
src/kernels.cuh(638): warning #12-D: parsing restarts here after previous syntax error
};
^
src/kernels.cuh(656): error: no suitable constructor exists to convert from "const dedisp_word *" to "unpack_functor<dedisp_word>" (aka "unpack_functor<unsigned int>")
unpack_functor<dedisp_word>(d_transposed, nsamps,
^
src/kernels.cuh(656): error: expected a ")"
unpack_functor<dedisp_word>(d_transposed, nsamps,
^
8 errors detected in the compilation of "src/dedisp.cu".
make: *** [Makefile:45: lib/libdedisp.so.1.0.1] Error 2
However, when switching to CUDA 12.8, which is also installed alongside CUDA 13.2 on the same system, it compiles fine, returning just warnings.
In Makefile.inc
CUDA_PATH ?= /usr/local/cuda-12.8
GPU_ARCH ?= sm_120
ridolfi@alkaid:(638G) ~/SOFT/dedisp_25Apr2026$ make
mkdir -p include
mkdir -p lib
mkdir -p obj
/usr/local/cuda-12.8/bin/nvcc -c -Xcompiler "-fPIC -Wall" -O3 -g -DDEDISP_DEBUG=0 -arch=sm_120 -Isrc -I/usr/local/cuda-12.8/include -o obj/dedisp.o src/dedisp.cu
src/kernels.cuh:480:67: warning: ‘template<class Argument, class Result> struct thrust::THRUST_200700_1200_NS::unary_function’ is deprecated [-Wdeprecated-declarations]
480 | struct scrunch_x2_functor
| ^
/usr/local/cuda-12.8/include/thrust/functional.h:85:23: note: declared here
85 | struct THRUST_DEPRECATED unary_function
| ^~~~~~~~~~~~~~
src/kernels.cuh:586:63: warning: ‘template<class Argument, class Result> struct thrust::THRUST_200700_1200_NS::unary_function’ is deprecated [-Wdeprecated-declarations]
586 | struct unpack_functor
| ^
/usr/local/cuda-12.8/include/thrust/functional.h:85:23: note: declared here
85 | struct THRUST_DEPRECATED unary_function
| ^~~~~~~~~~~~~~
gcc -shared -Wl,--version-script=libdedisp.version,-soname,libdedisp.so.1 -o lib/libdedisp.so.1.0.1 obj/dedisp.o -L/usr/local/cuda-12.8/lib64 -lcudart -lstdc++
ln -s -f libdedisp.so.1.0.1 lib/libdedisp.so.1
ln -s -f libdedisp.so.1.0.1 lib/libdedisp.so
cp src/dedisp.h include
cp src/DedispPlan.hpp include
I just want to point out that the current version of the software (commit 0f763a3) does not compile when using CUDA 13.2 on Ubuntu 24.04 LTS on a machine with an RTX 5070 Ti (sm_120).
Setting in Makefile.inc:
and compiling, produces the following errors:
However, when switching to CUDA 12.8, which is also installed alongside CUDA 13.2 on the same system, it compiles fine, returning just warnings.
In
Makefile.inc