[gmx-users] Compilation issue, MacOS 10.13.5 - Gromacs 2018 - CUDA 9.2

Kevin Boyd kevin.boyd at uconn.edu
Mon Jun 18 20:54:49 CEST 2018


Hi,

In general you're not supposed to mix C compilers. I've had linking
errors in the past, eg with using different versions of GCC between
the -DC_CMAKE_C_COMPILER and -DCUDA_HOST_COMPILER.

See this post for a discussion.

https://www.mail-archive.com/gromacs.org_gmx-users@maillist.sys.kth.se/msg32682.html

Kevin

On Mon, Jun 18, 2018 at 2:14 PM, Владимир Богданов
<bogdanov-vladimir at yandex.ru> wrote:
>
>
> HI,
>
>
>
> I tried to install gromacs with cuda support on MacBook Pro 2015 (macOS
> 10.13.4) + eGPU (nvidia titan xp) many times and always have got errors. I
> didn’t try to install Ubuntu on my MacBook and then install gromacs with
> cuda, but I guess it could work. Excuse me for my English.
>
>
>
> Vlad.
>
>
>
> 15.06.2018, 12:36, "Florian Nachon" <florian.nachon at chemdef.fr>:
>
> Hi,
>
> I’m struggling to install Gormacs 2018 on my MacBook pro (late 2013) with
> cuda support for the NVIDIA GeForce GT 750M.
>
> I’m using Clang-6.0 installed with macports for OpenMP support, and clang
> from Xcode 9.2 for support of cuda 9.2 and cmake stage is fine using :
>
> cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/
> -DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-6.0
> -DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-6.0 -DGMX_SIMD=AVX2_256
> -DCUDA_HOST_COMPILER=/usr/bin/clang -DGMX_FFT_LIBRARY=fftw3
>
>
> But I have apparently a linking issue for gpu_utilstest_cuda at the end of
> the make stage :
>
> Scanning dependencies of target gpu_utilstest_cuda
> [ 98%] Linking CXX shared library
> ../../../../lib/libgpu_utilstest_cuda.dylib
> Undefined symbols for architecture x86_64:
>   "gmx::formatString(char const*, ...)", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "gmx::GromacsException::setInfo(std::__1::type_index const&,
> std::__1::unique_ptr<gmx::internal::IExceptionInfo,
> std::__1::default_delete<gmx::internal::IExceptionInfo> >&&)", referenced
> from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "gmx::GromacsException::GromacsException(gmx::ExceptionInitializer
> const&)", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "gmx::internal::assertHandler(char const*, char const*, char const*, char
> const*, int)", referenced from:
>       gmx::doDeviceTransfers(gmx_gpu_info_t const&, gmx::ArrayRef<char
> const>, gmx::ArrayRef<char>) in
> gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "gmx::internal::IExceptionInfo::~IExceptionInfo()", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>       gmx::ExceptionInfo<gmx::ExceptionInfoLocation_,
> gmx::ThrowLocation>::~ExceptionInfo() in
> gpu_utilstest_cuda_generated_devicetransfers.cu.o
>       gmx::ExceptionInfo<gmx::ExceptionInfoLocation_,
> gmx::ThrowLocation>::~ExceptionInfo() in
> gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "typeinfo for gmx::InternalError", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "typeinfo for gmx::internal::IExceptionInfo", referenced from:
>       typeinfo for gmx::ExceptionInfo<gmx::ExceptionInfoLocation_,
> gmx::ThrowLocation> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   "vtable for gmx::InternalError", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   NOTE: a missing vtable usually means the first non-inline virtual member
> function has no definition.
>   "vtable for gmx::GromacsException", referenced from:
>       gmx::(anonymous namespace)::throwUponFailure(cudaError, char const*)
> in gpu_utilstest_cuda_generated_devicetransfers.cu.o
>       gmx::InternalError::~InternalError() in
> gpu_utilstest_cuda_generated_devicetransfers.cu.o
>   NOTE: a missing vtable usually means the first non-inline virtual member
> function has no definition.
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/build.make:79:
> recipe for target 'lib/libgpu_utilstest_cuda.dylib' failed
> make[2]: *** [lib/libgpu_utilstest_cuda.dylib] Error 1
> CMakeFiles/Makefile2:3382: recipe for target
> 'src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/all' failed
> make[1]: ***
> [src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/all] Error 2
> Makefile:162: recipe for target 'all' failed
> make: *** [all] Error 2
>
>
> Any clue?
>
> Florian
>
>
>
> --
> Gromacs Users mailing list
>
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a
> mail to gmx-users-request at gromacs.org.
>
>
>
> --
> C уважением, Владимир А. Богданов
>
>
> --
> Gromacs Users mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a
> mail to gmx-users-request at gromacs.org.


More information about the gromacs.org_gmx-users mailing list