Re: [gmx-users] nvcc fatal: 'avx512f': expected a number

2018-10-24 Thread Mark Abraham
Hi,

On Wed, Oct 24, 2018 at 11:50 AM Ehsan Moravveji 
wrote:

> Dear Mark,
>
> Sincere thanks for your swift reply, and apologies for the duplicate
> message; I realized that my original message had no subject, so, I thought
> it is more proper to send the message with a meaningful topic;
>

OK


> Regarding your comment, I am building GROMACS from source, and without
> intervention from EasyBuild. In order to be transparent, I also put my full
> cmake command arguments in the original message as well. Since some other
> dependencies are installed by EasyBuild as modules, I am setting some of
> the paths in a compatible way on our system, hence e.g. EBROOTCUDA, etc.
>

Then you will have a easier time if you start with a simple invocation,
rather than manually configuring a whole host of things, including CUDA
flags. If e.g. those flags are wrongly escaped for the different wrappers,
then you will get mysterious issues like this :-) So I suggest you start
with

cmake -DGMX_SIMD=AVX_512 -DCUDA_TOOLKIT_ROOT_DIR=whatever

and gradually add the complexity that you think is needed (e.g. MKL, MPI,
NVML...)

To double check your feedback, let me ask the following:
> I am explicitly setting the flag -DGMX_SIMD='AVX_512'. Is it equivalent to
>

That's a GROMACS cmake flag.


> the flag you proposed (-mavx512f), or I have to add the latter to the
>

That's a flag for the compiler. They're not the same. But when the GROMACS
build tries to target AVX512, it checks what flags works and organizes to
use them. I assume that the way you're adding things manually to the CUDA
flags is breaking e.g. the tricks that FindCUDA.cmake has to do in order to
invoke the CUDA compiler.

Mark


> argument list to cmake, too?
>
> Sincere thanks,
> Ehsan
>
>
> On Wed, Oct 24, 2018 at 10:42 AM Mark Abraham 
> wrote:
>
> > Hi,
> >
> > You sent this email yesterday. Please be a little more patient.
> >
> > Unfortunately, I have no idea how EasyBuild works, and suspect that the
> > problem lies in the way it is wrapping arguments that then get passed to
> > nvcc. If you can reproduce this issue with a simple call to cmake with
> > minimal extra stuff, then we can explore whether there's an issue with
> the
> > GROMACS build system. But since -mavx512f is a valid compiler flag that
> > GROMACS checked was valid before using it, I suspect the problem isn't
> > ours.
> >
> > Mark
> >
> > On Wed, Oct 24, 2018 at 9:55 AM Ehsan Moravveji 
> > wrote:
> >
> > > Dear GMX users,
> > >
> > > I would like to share a difficulty installing GROMACS/2018.3 with you,
> > > and kindly ask for your wisdom.
> > >
> > > I use GCC/6.4.0 on a Linux cluster with CentOS 7.5 kernel and GPU
> > > nodes equipped with 4 x P100 Nvidia devices.
> > >
> > >
> > > Below is the cmake configuration that I use, followed by the error (in
> > > boldface font) that I
> > > receive. I am not sure if there is still an extra flag to set to
> resolve
> > > this issue, or some other steps must be taken?
> > >
> > > I appreciate your input.
> > >
> > > --
> > > Kind regards,
> > > Ehsan Moravveji
> > >
> > > ###
> > > cmake "${cwd}/${dir_src}" \
> > >   -DGMX_SIMD='AVX_512' \
> > >   -DBLAS_mkl_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
> > >   -DLAPACK_mkl_lapack_LIBRARY="DIR_MKL_LIB/libmkl_sequential.so" \
> > >   -DBLAS_guide_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
> > >   -DCMAKE_C_COMPILER="${GMX_MPICC}"
> -DCMAKE_CXX_COMPILER="${GMX_MPICXX}"
> > \
> > >   -DMPI_C_COMPILER="${GMX_MPICC}" -DMPI_CXX_COMPILER="${GMX_MPICXX}" \
> > >   -DCMAKE_MPI_C_COMPILER="${GMX_MPICC}"
> > > -DCMAKE_MPI_CXX_COMPILER="${GMX_MPICXX}" \
> > >   -DCMAKE_INSTALL_PREFIX="${dir_install}" \
> > >   -DCMAKE_PREFIX_PATH="${DIR_MKL_LIB}" \
> > >   -DCMAKE_VERBOSE_MAKEFILE=ON \
> > >   -DGMX_MPI=ON \
> > >   -DGMX_GPU=ON \
> > >   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF -DEXTRA_CXX_FLAGS="-std=c++11" \
> > >   -DGMX_USE_NVML=ON -DGMX_BUILD_OWN_FFTW=ON \
> > >   -DHWLOC_INCLUDE_DIRS="${EBROOTHWLOC}/include"
> > > -DHWLOC_LIBRARIES="${EBROOTHWLOC}/lib/libhwloc.so" \
> > >   -DCUDA_HOST_COMPILER="${PATH_NVCC}"
> > > -DNVML_INCLUDE_DIR="${EBROOTCUDA}/include" \
> > >   -DNVML_LIBRARY="${EBROOTCUDA}/lib64/stubs/libnvidia-ml.so" \
> > >   -DCUDA_TOOLKIT_ROOT_DIR="${EBROOTCUDA}"
> > > -DCUDA_SDK_ROOT_DIR="${EBROOTCUDA}" \
> > >   -DCUDA_PROPAGATE_HOST_FLAGS=ON -DCUDA_VERBOSE_BUILD=ON \
> > >   -DGMX_CUDA_TARGET_SM="${SM_VER}"
> -DGMX_CUDA_TARGET_COMPUTE="${SM_VER}"
> > \
> > >   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF \
> > >   -DCUDA_CUDART_LIBRARY="${EBROOTCUDA}/lib64/libcudart.so"
> > > -DCUDA_CUDA_LIBRARY="${EBROOTCUDA}/lib64/libcuda.so" \
> > >
> > >
> > >
> >
> -DCUDA_NVCC_FLAGS="-gencode;arch=compute_${SM_VER},code=compute_${SM_VER};-use_fast_math;-D_FORCE_INLINES"
> > > \
> > >   -DGMX_PREFER_STATIC_LIBS=OFF -DGMX_X11=OFF
> > >
> > > ###
> > >
> > > -- Generating dependency file:
> > >
> > >
> >
> 

Re: [gmx-users] nvcc fatal: 'avx512f': expected a number

2018-10-24 Thread Ehsan Moravveji
Dear Mark,

Sincere thanks for your swift reply, and apologies for the duplicate
message; I realized that my original message had no subject, so, I thought
it is more proper to send the message with a meaningful topic;

Regarding your comment, I am building GROMACS from source, and without
intervention from EasyBuild. In order to be transparent, I also put my full
cmake command arguments in the original message as well. Since some other
dependencies are installed by EasyBuild as modules, I am setting some of
the paths in a compatible way on our system, hence e.g. EBROOTCUDA, etc.

To double check your feedback, let me ask the following:
I am explicitly setting the flag -DGMX_SIMD='AVX_512'. Is it equivalent to
the flag you proposed (-mavx512f), or I have to add the latter to the
argument list to cmake, too?

Sincere thanks,
Ehsan


On Wed, Oct 24, 2018 at 10:42 AM Mark Abraham 
wrote:

> Hi,
>
> You sent this email yesterday. Please be a little more patient.
>
> Unfortunately, I have no idea how EasyBuild works, and suspect that the
> problem lies in the way it is wrapping arguments that then get passed to
> nvcc. If you can reproduce this issue with a simple call to cmake with
> minimal extra stuff, then we can explore whether there's an issue with the
> GROMACS build system. But since -mavx512f is a valid compiler flag that
> GROMACS checked was valid before using it, I suspect the problem isn't
> ours.
>
> Mark
>
> On Wed, Oct 24, 2018 at 9:55 AM Ehsan Moravveji 
> wrote:
>
> > Dear GMX users,
> >
> > I would like to share a difficulty installing GROMACS/2018.3 with you,
> > and kindly ask for your wisdom.
> >
> > I use GCC/6.4.0 on a Linux cluster with CentOS 7.5 kernel and GPU
> > nodes equipped with 4 x P100 Nvidia devices.
> >
> >
> > Below is the cmake configuration that I use, followed by the error (in
> > boldface font) that I
> > receive. I am not sure if there is still an extra flag to set to resolve
> > this issue, or some other steps must be taken?
> >
> > I appreciate your input.
> >
> > --
> > Kind regards,
> > Ehsan Moravveji
> >
> > ###
> > cmake "${cwd}/${dir_src}" \
> >   -DGMX_SIMD='AVX_512' \
> >   -DBLAS_mkl_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
> >   -DLAPACK_mkl_lapack_LIBRARY="DIR_MKL_LIB/libmkl_sequential.so" \
> >   -DBLAS_guide_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
> >   -DCMAKE_C_COMPILER="${GMX_MPICC}" -DCMAKE_CXX_COMPILER="${GMX_MPICXX}"
> \
> >   -DMPI_C_COMPILER="${GMX_MPICC}" -DMPI_CXX_COMPILER="${GMX_MPICXX}" \
> >   -DCMAKE_MPI_C_COMPILER="${GMX_MPICC}"
> > -DCMAKE_MPI_CXX_COMPILER="${GMX_MPICXX}" \
> >   -DCMAKE_INSTALL_PREFIX="${dir_install}" \
> >   -DCMAKE_PREFIX_PATH="${DIR_MKL_LIB}" \
> >   -DCMAKE_VERBOSE_MAKEFILE=ON \
> >   -DGMX_MPI=ON \
> >   -DGMX_GPU=ON \
> >   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF -DEXTRA_CXX_FLAGS="-std=c++11" \
> >   -DGMX_USE_NVML=ON -DGMX_BUILD_OWN_FFTW=ON \
> >   -DHWLOC_INCLUDE_DIRS="${EBROOTHWLOC}/include"
> > -DHWLOC_LIBRARIES="${EBROOTHWLOC}/lib/libhwloc.so" \
> >   -DCUDA_HOST_COMPILER="${PATH_NVCC}"
> > -DNVML_INCLUDE_DIR="${EBROOTCUDA}/include" \
> >   -DNVML_LIBRARY="${EBROOTCUDA}/lib64/stubs/libnvidia-ml.so" \
> >   -DCUDA_TOOLKIT_ROOT_DIR="${EBROOTCUDA}"
> > -DCUDA_SDK_ROOT_DIR="${EBROOTCUDA}" \
> >   -DCUDA_PROPAGATE_HOST_FLAGS=ON -DCUDA_VERBOSE_BUILD=ON \
> >   -DGMX_CUDA_TARGET_SM="${SM_VER}" -DGMX_CUDA_TARGET_COMPUTE="${SM_VER}"
> \
> >   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF \
> >   -DCUDA_CUDART_LIBRARY="${EBROOTCUDA}/lib64/libcudart.so"
> > -DCUDA_CUDA_LIBRARY="${EBROOTCUDA}/lib64/libcuda.so" \
> >
> >
> >
> -DCUDA_NVCC_FLAGS="-gencode;arch=compute_${SM_VER},code=compute_${SM_VER};-use_fast_math;-D_FORCE_INLINES"
> > \
> >   -DGMX_PREFER_STATIC_LIBS=OFF -DGMX_X11=OFF
> >
> > ###
> >
> > -- Generating dependency file:
> >
> >
> /work/GROMACS/gromacs-2018.3-build/src/gromacs/CMakeFiles/libgromacs.dir/mdlib/nbnxn_cuda/libgromacs_generated_nbnxn_cuda.cu.o.NVCC-depend
> > /software/CUDA/9.2.148/bin/nvcc -M -D__CUDACC__
> > /work/GROMACS/gromacs-2018.3/src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu
> -o
> >
> >
> /work/GROMACS/gromacs-2018.3-build/src/gromacs/CMakeFiles/libgromacs.dir/mdlib/nbnxn_cuda/libgromacs_generated_nbnxn_cuda.cu.o.NVCC-depend
> > -ccbin /software/CUDA/9.2.148/bin/nvcc -m64 --std
> > c++11 -Dlibgromacs_EXPORTS -DGMX_DOUBLE=0 -DHAVE_CONFIG_H
> > -DUSE_STD_INTTYPES_H -Xcompiler
> >
> >
> ,\"-mavx512f\",\"-mfma\",\"-fPIC\",\"-O3\",\"-DNDEBUG\",\"-funroll-all-loops\",\"-fexcess-precision=fast\"
> > -gencode arch=compute_60,code=sm_60 -gencode
> > arch=compute_60,code=compute_60 -use_fast_math -gencode
> > arch=compute_60,code=compute_60 -use_fast_math -D_FORCE_INLINES -DNVCC
> > -I/software/CUDA/9.2.148/include
> > -I/work/GROMACS/gromacs-2018.3/src/external/lmfit
> >
> >
> -I/work/GROMACS/gromacs-2018.3-build/src/contrib/fftw/fftwBuild-prefix/include
> > -I/work/GROMACS/gromacs-2018.3-build/src
> > 

Re: [gmx-users] nvcc fatal: 'avx512f': expected a number

2018-10-24 Thread Mark Abraham
Hi,

You sent this email yesterday. Please be a little more patient.

Unfortunately, I have no idea how EasyBuild works, and suspect that the
problem lies in the way it is wrapping arguments that then get passed to
nvcc. If you can reproduce this issue with a simple call to cmake with
minimal extra stuff, then we can explore whether there's an issue with the
GROMACS build system. But since -mavx512f is a valid compiler flag that
GROMACS checked was valid before using it, I suspect the problem isn't ours.

Mark

On Wed, Oct 24, 2018 at 9:55 AM Ehsan Moravveji 
wrote:

> Dear GMX users,
>
> I would like to share a difficulty installing GROMACS/2018.3 with you,
> and kindly ask for your wisdom.
>
> I use GCC/6.4.0 on a Linux cluster with CentOS 7.5 kernel and GPU
> nodes equipped with 4 x P100 Nvidia devices.
>
>
> Below is the cmake configuration that I use, followed by the error (in
> boldface font) that I
> receive. I am not sure if there is still an extra flag to set to resolve
> this issue, or some other steps must be taken?
>
> I appreciate your input.
>
> --
> Kind regards,
> Ehsan Moravveji
>
> ###
> cmake "${cwd}/${dir_src}" \
>   -DGMX_SIMD='AVX_512' \
>   -DBLAS_mkl_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
>   -DLAPACK_mkl_lapack_LIBRARY="DIR_MKL_LIB/libmkl_sequential.so" \
>   -DBLAS_guide_LIBRARY="${DIR_MKL_LIB}/libmkl_rt.so" \
>   -DCMAKE_C_COMPILER="${GMX_MPICC}" -DCMAKE_CXX_COMPILER="${GMX_MPICXX}" \
>   -DMPI_C_COMPILER="${GMX_MPICC}" -DMPI_CXX_COMPILER="${GMX_MPICXX}" \
>   -DCMAKE_MPI_C_COMPILER="${GMX_MPICC}"
> -DCMAKE_MPI_CXX_COMPILER="${GMX_MPICXX}" \
>   -DCMAKE_INSTALL_PREFIX="${dir_install}" \
>   -DCMAKE_PREFIX_PATH="${DIR_MKL_LIB}" \
>   -DCMAKE_VERBOSE_MAKEFILE=ON \
>   -DGMX_MPI=ON \
>   -DGMX_GPU=ON \
>   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF -DEXTRA_CXX_FLAGS="-std=c++11" \
>   -DGMX_USE_NVML=ON -DGMX_BUILD_OWN_FFTW=ON \
>   -DHWLOC_INCLUDE_DIRS="${EBROOTHWLOC}/include"
> -DHWLOC_LIBRARIES="${EBROOTHWLOC}/lib/libhwloc.so" \
>   -DCUDA_HOST_COMPILER="${PATH_NVCC}"
> -DNVML_INCLUDE_DIR="${EBROOTCUDA}/include" \
>   -DNVML_LIBRARY="${EBROOTCUDA}/lib64/stubs/libnvidia-ml.so" \
>   -DCUDA_TOOLKIT_ROOT_DIR="${EBROOTCUDA}"
> -DCUDA_SDK_ROOT_DIR="${EBROOTCUDA}" \
>   -DCUDA_PROPAGATE_HOST_FLAGS=ON -DCUDA_VERBOSE_BUILD=ON \
>   -DGMX_CUDA_TARGET_SM="${SM_VER}" -DGMX_CUDA_TARGET_COMPUTE="${SM_VER}" \
>   -DCUDA_USE_STATIC_CUDA_RUNTIME=OFF \
>   -DCUDA_CUDART_LIBRARY="${EBROOTCUDA}/lib64/libcudart.so"
> -DCUDA_CUDA_LIBRARY="${EBROOTCUDA}/lib64/libcuda.so" \
>
>
> -DCUDA_NVCC_FLAGS="-gencode;arch=compute_${SM_VER},code=compute_${SM_VER};-use_fast_math;-D_FORCE_INLINES"
> \
>   -DGMX_PREFER_STATIC_LIBS=OFF -DGMX_X11=OFF
>
> ###
>
> -- Generating dependency file:
>
> /work/GROMACS/gromacs-2018.3-build/src/gromacs/CMakeFiles/libgromacs.dir/mdlib/nbnxn_cuda/libgromacs_generated_nbnxn_cuda.cu.o.NVCC-depend
> /software/CUDA/9.2.148/bin/nvcc -M -D__CUDACC__
> /work/GROMACS/gromacs-2018.3/src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu -o
>
> /work/GROMACS/gromacs-2018.3-build/src/gromacs/CMakeFiles/libgromacs.dir/mdlib/nbnxn_cuda/libgromacs_generated_nbnxn_cuda.cu.o.NVCC-depend
> -ccbin /software/CUDA/9.2.148/bin/nvcc -m64 --std
> c++11 -Dlibgromacs_EXPORTS -DGMX_DOUBLE=0 -DHAVE_CONFIG_H
> -DUSE_STD_INTTYPES_H -Xcompiler
>
> ,\"-mavx512f\",\"-mfma\",\"-fPIC\",\"-O3\",\"-DNDEBUG\",\"-funroll-all-loops\",\"-fexcess-precision=fast\"
> -gencode arch=compute_60,code=sm_60 -gencode
> arch=compute_60,code=compute_60 -use_fast_math -gencode
> arch=compute_60,code=compute_60 -use_fast_math -D_FORCE_INLINES -DNVCC
> -I/software/CUDA/9.2.148/include
> -I/work/GROMACS/gromacs-2018.3/src/external/lmfit
>
> -I/work/GROMACS/gromacs-2018.3-build/src/contrib/fftw/fftwBuild-prefix/include
> -I/work/GROMACS/gromacs-2018.3-build/src
> -I/work/GROMACS/gromacs-2018.3/src/external/thread_mpi/include
> -I/work/GROMACS/gromacs-2018.3/src
> -I/software/hwloc/1.11.11-GCCcore-6.4.0/include
> -I/work/GROMACS/gromacs-2018.3/src/external/tng_io/include
> -I/work/GROMACS/gromacs-2018.3-build/tng/include*nvcc fatal   :
> 'avx512f': expected a number
> CMake Error at libgromacs_generated_nbnxn_cuda.cu.o.Release.cmake:219
> (message):
>   Error generating
>
>
> /work/GROMACS/gromacs-2018.3-build/src/gromacs/CMakeFiles/libgromacs.dir/mdlib/nbnxn_cuda/./libgromacs_generated_nbnxn_cuda.cu.o*
> --
> 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-requ...@gromacs.org.
>
-- 
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