Giter Site home page Giter Site logo

compile relion 5 error about relion HOT 21 CLOSED

ShixinYang avatar ShixinYang commented on May 27, 2024
compile relion 5 error

from relion.

Comments (21)

estrozi avatar estrozi commented on May 27, 2024 2

Just for completion, I checked that just by removing --std=c++11 from

set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++11")

in cmake/BuildTypes.cmake does not fix the compilation problem.

Thank YOU very much for fixing it. What you do is extremely appreciated !

from relion.

estrozi avatar estrozi commented on May 27, 2024 1

I'm really sorry about that. But I was not deleting and recreating the build2 directory every time.
I did it now and if I change the cmake/BuildTypes.cmake to have
set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++14")
instead of
set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++11")
it works.

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

You should not put sudo. It is necessary only for the last step, make install.

Did you make sure you deactivate conda before running cmake and make?

from relion.

ShixinYang avatar ShixinYang commented on May 27, 2024

You should not put sudo. It is necessary only for the last step, make install.

Did you make sure you deactivate conda before running cmake and make?

I also try to install without "sudo". The same problem occurs. In addition, I did deactivate conda before running 'cmake' and 'make'

from relion.

estrozi avatar estrozi commented on May 27, 2024

Hi, I had the same problem during compilation of relion5. My workaround was to edit the CMakeLists.txt and replace 14 by 11 for the stdc++ options (lines 78 and 387).

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

As explained in the document, RELION 5.0 needs C++14 standard. Using C++11 might cause unexpected problems.

-- The C compiler identification is GNU 11.4.0

GCC 11.4 supports C++14.

However, nvcc might be picking up an older GCC installed somewhere else.
It is also possible that you are using a GCC binary at one location but using header files for another version of GCC at another place.

from relion.

estrozi avatar estrozi commented on May 27, 2024

Thanks ! I reverted to c++14 and I got another (better?) workaround (worked for me) by adding:

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} --std c++14")

to the CMakeLists.txt after line 387

set(CMAKE_CXX_FLAGS "-fPIC -std=c++14 ${CMAKE_CXX_FLAGS}")

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

This might be related to another unresolved problem #1032.

from relion.

ShixinYang avatar ShixinYang commented on May 27, 2024

Thanks ! I reverted to c++14 and I got another (better?) workaround (worked for me) by adding:

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} --std c++14")

to the CMakeLists.txt after line 387

set(CMAKE_CXX_FLAGS "-fPIC -std=c++14 ${CMAKE_CXX_FLAGS}")

This works for me. Thanks!

from relion.

estrozi avatar estrozi commented on May 27, 2024

Thanks for trying to fix this. However, after I did a "git pull" today (I saw the changes you did) I got the following the error(s) at the second "make -j 4" step:
(PS: The only differences between my system and the one of ShixinYang is that I have cuda 12.3 and driver 545.23.08)

============================================================

#>cmake -DPYTHON_EXE_PATH=/home/estrozi/miniconda3/envs/relion-5.0/bin/python3 ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.

-- BUILD TYPE set to the default type: 'Release'
-- Setting fallback CUDA_ARCH=50
-- CUDA enabled - Building CUDA-accelerated version of RELION
-- Setting cpu precision to double
-- Setting accelerated code precision to single
-- Using cuda wrapper to compile....
-- Cuda version is >= 7.5 and single-precision build, enable double usage warning.
-- MPI_INCLUDE_PATH : /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi
-- MPI_LIBRARIES : /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so;/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
-- MPI_CXX_INCLUDE_PATH : /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi
-- MPI_CXX_LIBRARIES : /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so;/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
-- CMAKE_C_COMPILER : /usr/bin/cc
-- CMAKE_CXX_COMPILER : /usr/bin/c++
-- MPI_C_COMPILER : /usr/bin/mpicc
-- MPI_CXX_COMPILER : /usr/bin/mpicxx
-- CMAKE_CXX_COMPILER_ID : GNU
-- Could NOT find FLTK (missing: FLTK_LIBRARIES)
-- No FLTK installation was found
-- Found previously built non-system FLTK libraries that will be used.
-- FLTK_INCLUDE_DIR: /home/estrozi/relion5/relion/external/fltk/include
-- FLTK_LIBRARIES: /home/estrozi/relion5/relion/external/fltk/lib/libfltk.so
-- Found FFTW
-- FFTW_PATH: /usr/include
-- FFTW_INCLUDES: /usr/include
-- FFTW_LIBRARIES: /usr/lib/x86_64-linux-gnu/libfftw3f.so;/usr/lib/x86_64-linux-gnu/libfftw3.so
-- Using Python executable: /home/estrozi/miniconda3/envs/relion-5.0/bin/python3
-- Will try to find Torch home directory...
-- Using Torch home: /home/estrozi/.cache/torch
-- Will attempts to download model weights for dependent packages...
Attempting to download weights for class ranker...
Model (v1.0) loaded successfully from checkpoint /home/estrozi/.cache/torch/hub/checkpoints/relion_class_ranker/v1.0.ckpt
No project directory was specified... exiting!
Attempting to download weights for Blush...
Blush model (v1.0) loaded successfully from checkpoint /home/estrozi/.cache/torch/hub/checkpoints/relion_blush/v1.0.ckpt
No job target was specified for Blush regularization... exiting!
Attempting to download weights for ModelAngelo...
Please make sure you have set the environment variable TORCH_HOME
to a suitable directory, visible to all relevant users!
Successful!
Path to model is /home/estrozi/.cache/torch/hub/checkpoints/model_angelo_v1.0/nucleotides
Please make sure you have set the environment variable TORCH_HOME
to a suitable directory, visible to all relevant users!
Successful!
Path to model is /home/estrozi/.cache/torch/hub/checkpoints/model_angelo_v1.0/nucleotides_no_seq
-- Successfully downloaded model weights
-- Building static libs (larger build size and binaries)
Running apps/CMakeLists.txt...
-- CMAKE_BINARY_DIR:/home/estrozi/relion5/relion/build2
-- Git commit ID: ebebfde
-- CMAKE_C_FLAGS : -std=c99 -fopenmp
-- CMAKE_CXX_FLAGS : -fPIC -std=c++14 -fopenmp
-- Configuring done
-- Generating done
-- Build files have been written to: /home/estrozi/relion5/relion/build2

#>make -j 4
[ 0%] Building NVCC (Device) object src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/relion_jaz_gpu_util_generated_test00.cu.o
[ 0%] Built target copy_scripts
/usr/include/c++/11/bits/stl_iterator_base_funcs.h(86): error: statement may not appear in a constexpr function
typename iterator_traits<_InputIterator>::difference_type __n = 0;
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(89): error: statement may not appear in a constexpr function
++__first;
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(90): error: statement may not appear in a constexpr function
++__n;
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(87): error: statement may not appear in a constexpr function
while (__first != __last)
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(147): error: a constexpr function cannot have a nonliteral return type "void"
__advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(158): error: a constexpr function cannot have a nonliteral return type "void"
__advance(_BidirectionalIterator& __i, _Distance __n,
^

/usr/include/c++/11/bits/stl_iterator_base_funcs.h(174): error: a constexpr function cannot have a nonliteral return type "void"
__advance(_RandomAccessIterator& __i, _Distance __n,
^

/usr/include/c++/11/bits/stl_algobase.h(235): error: statement may not appear in a constexpr function
if (__b < __a)
^

/usr/include/c++/11/bits/stl_algobase.h(237): error: a constexpr function must contain exactly one return statement
return __a;
^

/usr/include/c++/11/bits/stl_algobase.h(259): error: statement may not appear in a constexpr function
if (__a < __b)
^

/usr/include/c++/11/bits/stl_algobase.h(261): error: a constexpr function must contain exactly one return statement
return __a;
^

/usr/include/c++/11/bits/stl_algobase.h(281): error: statement may not appear in a constexpr function
if (__comp(__b, __a))
^

/usr/include/c++/11/bits/stl_algobase.h(283): error: a constexpr function must contain exactly one return statement
return __a;
^

/usr/include/c++/11/bits/stl_algobase.h(303): error: statement may not appear in a constexpr function
if (__comp(__a, __b))
^

/usr/include/c++/11/bits/stl_algobase.h(305): error: a constexpr function must contain exactly one return statement
return __a;
^

/usr/include/c++/11/bits/char_traits.h(102): error: a constexpr function cannot have a nonliteral return type "void"
assign(char_type& __c1, const char_type& __c2)
^

/usr/include/c++/11/bits/char_traits.h(161): error: a constexpr function must contain exactly one return statement
return 1;
^

/usr/include/c++/11/bits/char_traits.h(160): error: statement may not appear in a constexpr function
else if (lt(__s2[__i], __s1[__i]))
^

/usr/include/c++/11/bits/char_traits.h(158): error: statement may not appear in a constexpr function
if (lt(__s1[__i], __s2[__i]))
^

/usr/include/c++/11/bits/char_traits.h(157): error: statement may not appear in a constexpr function
for (std::size_t __i = 0; __i < __n; ++__i)
^

/usr/include/c++/11/bits/char_traits.h(162): error: a constexpr function must contain exactly one return statement
return 0;
^

/usr/include/c++/11/bits/char_traits.h(170): error: statement may not appear in a constexpr function
std::size_t __i = 0;
^

/usr/include/c++/11/bits/char_traits.h(172): error: statement may not appear in a constexpr function
++__i;
^

/usr/include/c++/11/bits/char_traits.h(171): error: statement may not appear in a constexpr function
while (!eq(__p[__i], char_type()))
^

/usr/include/c++/11/bits/char_traits.h(182): error: statement may not appear in a constexpr function
if (eq(__s[__i], __a))
^

/usr/include/c++/11/bits/char_traits.h(181): error: statement may not appear in a constexpr function
for (std::size_t __i = 0; __i < __n; ++__i)
^

/usr/include/c++/11/bits/char_traits.h(184): error: a constexpr function must contain exactly one return statement
return 0;
^

/usr/include/c++/11/bits/stl_function.h(432): error: statement may not appear in a constexpr function
if (__builtin_is_constant_evaluated())
^

/usr/include/c++/11/bits/stl_function.h(438): error: a constexpr function must contain exactly one return statement
return (long unsigned int)__x > (long unsigned int)__y;
^

/usr/include/c++/11/bits/stl_function.h(451): error: statement may not appear in a constexpr function
if (__builtin_is_constant_evaluated())
^

/usr/include/c++/11/bits/stl_function.h(457): error: a constexpr function must contain exactly one return statement
return (long unsigned int)__x < (long unsigned int)__y;
^

/usr/include/c++/11/bits/stl_function.h(470): error: statement may not appear in a constexpr function
if (__builtin_is_constant_evaluated())
^

/usr/include/c++/11/bits/stl_function.h(476): error: a constexpr function must contain exactly one return statement
return (long unsigned int)__x >= (long unsigned int)__y;
^

/usr/include/c++/11/bits/stl_function.h(489): error: statement may not appear in a constexpr function
if (__builtin_is_constant_evaluated())
^

/usr/include/c++/11/bits/stl_function.h(495): error: a constexpr function must contain exactly one return statement
return (long unsigned int)__x <= (long unsigned int)__y;
^

/usr/include/c++/11/bits/stl_function.h(551): error: expected an identifier
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(551): error: "auto" is not allowed here
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(552): error: expected a ";"
_S_cmp(_Tp&& __t, _Up&& __u, false_type)
^

/usr/include/c++/11/bits/stl_function.h(570): error: a template argument list is not allowed in a declaration of a primary template
struct __not_overloaded2<_Tp, _Up, __void_t<
^

/usr/include/c++/11/bits/stl_function.h(576): error: __not_overloaded2 is not a template
struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
^

/usr/include/c++/11/bits/stl_function.h(613): error: expected an identifier
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(613): error: "auto" is not allowed here
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(614): error: expected a ";"
_S_cmp(_Tp&& __t, _Up&& __u, false_type)
^

/usr/include/c++/11/bits/stl_function.h(632): error: a template argument list is not allowed in a declaration of a primary template
struct __not_overloaded2<_Tp, _Up, __void_t<
^

/usr/include/c++/11/bits/stl_function.h(638): error: __not_overloaded2 is not a template
struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
^

/usr/include/c++/11/bits/stl_function.h(675): error: expected an identifier
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(675): error: "auto" is not allowed here
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(676): error: expected a ";"
_S_cmp(_Tp&& __t, _Up&& __u, false_type)
^

/usr/include/c++/11/bits/stl_function.h(694): error: a template argument list is not allowed in a declaration of a primary template
struct __not_overloaded2<_Tp, _Up, __void_t<
^

/usr/include/c++/11/bits/stl_function.h(700): error: __not_overloaded2 is not a template
struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
^

/usr/include/c++/11/bits/stl_function.h(737): error: expected an identifier
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(737): error: "auto" is not allowed here
static constexpr decltype(auto)
^

/usr/include/c++/11/bits/stl_function.h(738): error: expected a ";"
_S_cmp(_Tp&& __t, _Up&& __u, false_type)
^

/usr/include/c++/11/bits/stl_function.h(756): error: a template argument list is not allowed in a declaration of a primary template
struct __not_overloaded2<_Tp, _Up, __void_t<
^

/usr/include/c++/11/bits/stl_function.h(762): error: __not_overloaded2 is not a template
struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
^

/usr/include/c++/11/bits/stl_construct.h(146): error: a constexpr function cannot have a nonliteral return type "void"
_Destroy(_Tp* __pointer)
^

/usr/include/c++/11/bits/alloc_traits.h(251): error: statement may not appear in a constexpr function
{ __a.construct(__p, std::forward<_Args>(__args)...); }
^

/usr/include/c++/11/bits/alloc_traits.h(261): error: statement may not appear in a constexpr function
::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
^

/usr/include/c++/11/bits/alloc_traits.h(272): error: statement may not appear in a constexpr function
{ __a.destroy(__p); }
^

/usr/include/c++/11/bits/alloc_traits.h(276): error: a constexpr function cannot have a nonliteral return type "void"
_S_destroy(_Alloc2&, _Tp* __p, ...)
^

/usr/include/c++/11/bits/alloc_traits.h(678): error: a constexpr function cannot have a nonliteral return type "void"
__alloc_on_copy(_Alloc& __one, const _Alloc& __two)
^

/usr/include/c++/11/bits/alloc_traits.h(710): error: a constexpr function cannot have a nonliteral return type "void"
__alloc_on_move(_Alloc& __one, _Alloc& __two)
^

/usr/include/c++/11/bits/alloc_traits.h(737): error: a constexpr function cannot have a nonliteral return type "void"
__alloc_on_swap(_Alloc& __one, _Alloc& __two)
^

/usr/include/c++/11/ext/alloc_traits.h(85): error: statement may not appear in a constexpr function
_Base_type::construct(__a, std::__to_address(__p),
^

/usr/include/c++/11/ext/alloc_traits.h(95): error: statement may not appear in a constexpr function
{ _Base_type::destroy(__a, std::__to_address(__p)); }
^

/usr/include/c++/11/ext/alloc_traits.h(100): error: a constexpr function cannot have a nonliteral return type "void"
static constexpr void _S_on_swap(_Alloc& __a, _Alloc& __b)
^

/usr/include/c++/11/bits/charconv.h(52): error: statement may not appear in a constexpr function
unsigned __n = 1;
^

/usr/include/c++/11/bits/charconv.h(53): error: statement may not appear in a constexpr function
const unsigned __b2 = __base * __base;
^

/usr/include/c++/11/bits/charconv.h(54): error: statement may not appear in a constexpr function
const unsigned __b3 = __b2 * __base;
^

/usr/include/c++/11/bits/charconv.h(55): error: statement may not appear in a constexpr function
const unsigned long __b4 = __b3 * __base;
^

/usr/include/c++/11/bits/charconv.h(58): error: statement may not appear in a constexpr function
if (__value < (unsigned)__base) return __n;
^

/usr/include/c++/11/bits/charconv.h(59): error: a constexpr function must contain exactly one return statement
if (__value < __b2) return __n + 1;
^

/usr/include/c++/11/bits/charconv.h(59): error: statement may not appear in a constexpr function
if (__value < __b2) return __n + 1;
^

/usr/include/c++/11/bits/charconv.h(60): error: a constexpr function must contain exactly one return statement
if (__value < __b3) return __n + 2;
^

/usr/include/c++/11/bits/charconv.h(60): error: statement may not appear in a constexpr function
if (__value < __b3) return __n + 2;
^

/usr/include/c++/11/bits/charconv.h(61): error: a constexpr function must contain exactly one return statement
if (__value < __b4) return __n + 3;
^

/usr/include/c++/11/bits/charconv.h(61): error: statement may not appear in a constexpr function
if (__value < __b4) return __n + 3;
^

/usr/include/c++/11/bits/charconv.h(62): error: statement may not appear in a constexpr function
__value /= __b4;
^

/usr/include/c++/11/bits/charconv.h(63): error: statement may not appear in a constexpr function
__n += 4;
^

/usr/include/c++/11/bits/charconv.h(56): error: statement may not appear in a constexpr function
for (;;)
^

80 errors detected in the compilation of "/home/estrozi/relion5/relion/src/jaz/cuda/test00.cu".
CMake Error at relion_jaz_gpu_util_generated_test00.cu.o.Release.cmake:280 (message):
Error generating file
/home/estrozi/relion5/relion/build2/src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/./relion_jaz_gpu_util_generated_test00.cu.o

make[2]: *** [src/apps/CMakeFiles/relion_jaz_gpu_util.dir/build.make:341: src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/relion_jaz_gpu_util_generated_test00.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:411: src/apps/CMakeFiles/relion_jaz_gpu_util.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

Did you delete your old build directory before running cmake?
Please also paste the result of grep CUDA_NVCC_FLAGS CMakeCache.txt.

from relion.

estrozi avatar estrozi commented on May 27, 2024

No, I was making a "build2" folder.

Here is the grep result:

===========================
#>grep CUDA_NVCC_FLAGS CMakeCache.txt
CUDA_NVCC_FLAGS:STRING=
CUDA_NVCC_FLAGS_BENCHMARKING:STRING='-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 '
CUDA_NVCC_FLAGS_DEBUG:STRING=-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11
CUDA_NVCC_FLAGS_MINSIZEREL:STRING=
CUDA_NVCC_FLAGS_PROFILING:STRING=-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 -lineinfo
CUDA_NVCC_FLAGS_RELEASE:STRING=-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 --disable-warnings
CUDA_NVCC_FLAGS_RELWITHDEBINFO:STRING=-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11
//ADVANCED property for variable: CUDA_NVCC_FLAGS
CUDA_NVCC_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_DEBUG
CUDA_NVCC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_MINSIZEREL
CUDA_NVCC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_RELEASE
CUDA_NVCC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CUDA_NVCC_FLAGS_RELWITHDEBINFO
CUDA_NVCC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

Did you revert your manual changes to files (if any)?

If the problem persists, what happens if you remove --std=c++11 from

    set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++11")

in cmake/BuildTypes.cmake?

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

Or, change the above line to:

    set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++14")

This is basically the same as your solution; before my commit today, variables set in BuildTypes.cmake were not properly passed to the compiler. This is why you had to set it in CMakeList.txt before.

from relion.

estrozi avatar estrozi commented on May 27, 2024

Yes, I removed my manual change from CMakeList.txt
If I remove the --std=c++11 or if I replace by c++14 in cmake/BuildTypes.cmake I got the same errors.

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

That is very strange... Did you delete your build directory for every trial?

The fact that you have

CUDA_NVCC_FLAGS_RELEASE:STRING=-arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 --disable-warnings

indicates that my commit today is working properly.

Can you run VERBOSE=1 make -j1 and paste the last line containing nvcc?
That is the command actually executed. We would like to see what compiler options are passed to NVCC.

from relion.

estrozi avatar estrozi commented on May 27, 2024

I have been working inside a new build2 directory. I never deleted my working (and still under use) original build directory (compilation fixed with my workarround).

I checked that the fact that I change that line in cmake/BuildTypes.cmake does not seem to have any effect on the CMakeCache.txt created.

With VERBOSE=1 I got the following nvcc command:

/usr/local/cuda/bin/nvcc /home/estrozi/relion5/relion/src/jaz/cuda/test00.cu -c -o /home/estrozi/relion5/relion/build2/src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/./relion_jaz_gpu_util_generated_test00.cu.o -ccbin /usr/bin/cc -m64 -DINSTALL_LIBRARY_DIR=/usr/local/lib/ -DSOURCE_DIR=/home/estrozi/relion5/relion/src/ -DACC_HIP=3 -DACC_CUDA=2 -DACC_CPU=1 -D_CUDA_ENABLED -DHAVE_SINCOS -DHAVE_TIFF -DHAVE_PNG -DHAVE_JPEG -Xcompiler ,"-fPIC","-std=c++14","-fopenmp","-O3","-DNDEBUG" -arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 --disable-warnings -DNVCC -I/usr/local/cuda/include -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -I/home/estrozi/relion5/relion -I/usr/include -I/home/estrozi/relion5/relion/external/fltk/include -I/usr/include/x86_64-linux-gnu

from relion.

estrozi avatar estrozi commented on May 27, 2024

By executing the command above with the option --std=c++11 replaced by --std=c++14 makes it pass.

from relion.

estrozi avatar estrozi commented on May 27, 2024

or if I change the "Xcompiler" from -std=c++14 to -std=c++11 and keep the --std=c++11. It also passes.

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

I have been working inside a new build2 directory. I never deleted my working (and still under use) original build directory (compilation fixed with my workarround).

This is OK but please remove everything inside the build2 directory before you try a new condition.

/usr/local/cuda/bin/nvcc /home/estrozi/relion5/relion/src/jaz/cuda/test00.cu -c -o /home/estrozi/relion5/relion/build2/src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/./relion_jaz_gpu_util_generated_test00.cu.o -ccbin /usr/bin/cc -m64 -DINSTALL_LIBRARY_DIR=/usr/local/lib/ -DSOURCE_DIR=/home/estrozi/relion5/relion/src/ -DACC_HIP=3 -DACC_CUDA=2 -DACC_CPU=1 -D_CUDA_ENABLED -DHAVE_SINCOS -DHAVE_TIFF -DHAVE_PNG -DHAVE_JPEG -Xcompiler ,"-fPIC","-std=c++14","-fopenmp","-O3","-DNDEBUG" -arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --std=c++11 --disable-warnings -DNVCC -I/usr/local/cuda/include -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -I/home/estrozi/relion5/relion -I/usr/include -I/home/estrozi/relion5/relion/external/fltk/include -I/usr/include/x86_64-linux-gnu

Does it still say --std=c++11 after you change BuildTypes.cmake to c++14, remove everything inside build2 and run cmake?

 set(EXTRA_NVCC_FLAGS "-D__INTEL_COMPILER --default-stream per-thread --std=c++14")

By executing the command above with the option --std=c++11 replaced by --std=c++14 makes it pass.

What happens if you remove --std=c++11 outside Xcompiler?

That is:

/usr/local/cuda/bin/nvcc /home/estrozi/relion5/relion/src/jaz/cuda/test00.cu -c -o /home/estrozi/relion5/relion/build2/src/apps/CMakeFiles/relion_jaz_gpu_util.dir/__/jaz/cuda/./relion_jaz_gpu_util_generated_test00.cu.o -ccbin /usr/bin/cc -m64 -DINSTALL_LIBRARY_DIR=/usr/local/lib/ -DSOURCE_DIR=/home/estrozi/relion5/relion/src/ -DACC_HIP=3 -DACC_CUDA=2 -DACC_CPU=1 -D_CUDA_ENABLED -DHAVE_SINCOS -DHAVE_TIFF -DHAVE_PNG -DHAVE_JPEG -Xcompiler ,"-fPIC","-std=c++14","-fopenmp","-O3","-DNDEBUG" -arch=sm_50 -D__INTEL_COMPILER --default-stream per-thread --disable-warnings -DNVCC -I/usr/local/cuda/include -I/usr/lib/x86_64-linux-gnu/openmpi/include -I/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -I/home/estrozi/relion5/relion -I/usr/include -I/home/estrozi/relion5/relion/external/fltk/include -I/usr/include/x86_64-linux-gnu

from relion.

biochem-fan avatar biochem-fan commented on May 27, 2024

Thank you very much for testing. I pushed this change to the repository.

from relion.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.