Opened 11 years ago

Closed 11 years ago

#6234 closed Bugs (fixed)

Boost special function don't compile with CUDA NVCC

Reported by: michael.hirsch@… Owned by: John Maddock
Milestone: To Be Determined Component: math
Version: Boost 1.40.0 Severity: Problem
Keywords: Cc:

Description

I get errors like this

argument of type "_v1di" is incompatible with parameter of type "_attribute((vector_size(8))) long"

if I include special functions and compile using CUDA

executed command:

/usr/bin/nvcc /tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/common/plugin/cuda_compute_engine.cu -c -o /tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/obj-x86_64-linux-gnu/common/./cuda_compute_engine_generated_cuda_compute_engine.cu.o -m64 -DH5Acreate_vers=1 -DH5Dcreate_vers=1 -DH5Dopen_vers=1 -DH5Gcreate_vers=1 -DH5Gopen_vers=1 -DH5Tarray_create_vers=1 -Dcuda_compute_engine_EXPORTS -Xcompiler ,\"-g\",\"-O2\",\"-fPIC\",\"-Wall\",\"-Wno-sign-compare\",\"-fPIC\",\"-O3\",\"-DNDEBUG\",\"-fopenmp\",\"-O3\",\"-s\",\"-finline\",\"-mtune=core2\",\"-mfpmath=sse\",\"-pipe\" --compiler-bindir=/usr/bin/g++-4.4 -DNVCC -I/usr/include -I/usr/lib/nvidia-cuda-toolkit/include -I/usr/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/atkmm-1.6 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cpputil -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/obj-x86_64-linux-gnu -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/include -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/. -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/third-party/libkdtree++ -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/biggles_tracking -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/third-party -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/third-party/jsonbox/include -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/third-party/hashstream -I/tmp/buildd/lola-analysis-suite-0.1.0+svn4738~lucid/common

error message:

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(311): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(311): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(415): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(415): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(572): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(572): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(584): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(697): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(697): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/mmintrin.h(709): error: argument of type "v1di" is incompatible with parameter of type "attribute((vector_size(8))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(745): error: argument of type "const v2sf *" is incompatible with parameter of type "attribute((vector_size(8))) int *"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(752): error: argument of type "v2sf *" is incompatible with parameter of type "attribute((vector_size(8))) int *"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(774): error: argument of type "const v2sf *" is incompatible with parameter of type "attribute((vector_size(8))) int *"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(781): error: argument of type "v2sf *" is incompatible with parameter of type "attribute((vector_size(8))) int *"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(1015): error: identifier "builtin_ia32_vec_set_v4hi" is undefined

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h(1116): error: identifier "builtin_ia32_pshufw" is undefined

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(216): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(223): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(709): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(715): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(727): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(962): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(962): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(986): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(986): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1010): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1010): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1058): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1058): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1130): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1149): error: argument of type "m128i" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1155): error: argument of type "m128i" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1179): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1197): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1197): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1227): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1227): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1233): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1233): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1239): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1239): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1245): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1245): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1251): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1251): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1312): error: identifier "builtin_ia32_vec_ext_v8hi" is undefined

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1318): error: identifier "builtin_ia32_vec_set_v8hi" is undefined

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1424): error: argument of type "v2di *" is incompatible with parameter of type "attribute((vector_size(16))) long *"

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/emmintrin.h(1424): error: argument of type "v2di" is incompatible with parameter of type "attribute((vector_size(16))) long"

Change History (2)

comment:1 by anonymous, 11 years ago

Does commenting out this #include:

#include <boost/math/special_functions/detail/lanczos_sse2.hpp>

at the end of boost/math/special_functions/lanczos.hpp fix things?

comment:2 by John Maddock, 11 years ago

Resolution: fixed
Status: newclosed

(In [76097]) Disable SSE2 instruction support under the CUDA compiler. Fixes #6234.

Note: See TracTickets for help on using tickets.