src-d / kmcuda

Large scale K-means and K-nn implementation on NVIDIA GPU / CUDA
Other
797 stars 146 forks source link

compile error __builtin_ia32_wrpkru is undefined #72

Closed smujiang closed 5 years ago

smujiang commented 5 years ago

I got this error when I try to compile your code on my own machine. GCC version is 4.8.5 I noticed that some previous Issues are related to gcc version. https://github.com/src-d/kmcuda/issues/25 https://github.com/src-d/kmcuda/issues/44 But I think mine is different.

[ 14%] Building NVCC (Device) object CMakeFiles/KMCUDA.dir/KMCUDA_generated_kmeans.cu.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/pkuintrin.h(35): error: identifier "__builtin_ia32_rdpkru" is undefined

/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/pkuintrin.h(42): error: identifier "__builtin_ia32_wrpkru" is undefined

2 errors detected in the compilation of "/tmp/tmpxft_00025501_00000000-6_kmeans.cpp1.ii". CMake Error at KMCUDA_generated_kmeans.cu.o.Release.cmake:279 (message): Error generating file /people/xxxx/kmcuda/src/CMakeFiles/KMCUDA.dir//./KMCUDA_generated_kmeans.cu.o

make[2]: [CMakeFiles/KMCUDA.dir/KMCUDA_generated_kmeans.cu.o] Error 1 make[1]: [CMakeFiles/KMCUDA.dir/all] Error 2 make: *** [all] Error 2 (WSItools) [xxxx@rcfgpu02 src]$ make clean (WSItools) [xxxx@rcfgpu02 src]$ make [ 14%] Building NVCC (Device) object CMakeFiles/KMCUDA.dir/KMCUDA_generated_transpose.cu.o ptxas info : 0 bytes gmem ptxas info : Compiling entry function '_Z9transposeILb0EEvPKfjjPf' for 'sm_61' ptxas info : Function properties for _Z9transposeILb0EEvPKfjjPf 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 24 registers, 4224 bytes smem, 344 bytes cmem[0] ptxas info : Compiling entry function '_Z9transposeILb1EEvPKfjjPf' for 'sm_61' ptxas info : Function properties for _Z9transposeILb1EEvPKfjjPf 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 24 registers, 4224 bytes smem, 344 bytes cmem[0] ptxas info : Compiling entry function '_Z13copy_sample_tjjtPKfPf' for 'sm_61' ptxas info : Function properties for _Z13copy_sample_tjjtPKfPf 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 7 registers, 352 bytes cmem[0] [ 28%] Building NVCC (Device) object CMakeFiles/KMCUDA.dir/KMCUDA_generated_kmeans.cu.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/pkuintrin.h(35): error: identifier "__builtin_ia32_rdpkru" is undefined

/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/pkuintrin.h(42): error: identifier "__builtin_ia32_wrpkru" is undefined

2 errors detected in the compilation of "/tmp/tmpxft_0002557e_00000000-6_kmeans.cpp1.ii". CMake Error at KMCUDA_generated_kmeans.cu.o.Release.cmake:279 (message): Error generating file /people/xxxx/kmcuda/src/CMakeFiles/KMCUDA.dir//./KMCUDA_generated_kmeans.cu.o

make[2]: [CMakeFiles/KMCUDA.dir/KMCUDA_generated_kmeans.cu.o] Error 1 make[1]: [CMakeFiles/KMCUDA.dir/all] Error 2 make: *** [all] Error 2

vmarkovtsev commented 5 years ago

Hi @smujiang As the README states, you need an OpenMP 4.0 compatible compiler. https://www.openmp.org/resources/openmp-compilers-tools/

smujiang commented 5 years ago

thanks for you quick answer.