[gmx-developers] Compilation issue for 2022.rc1 on MacBookPro M1 Max

Florian Nachon mailinglist at nachon.net
Sat Feb 5 13:20:23 CET 2022


Hello,

I tried to compile the rc1 with GCC11 and libomp installed with homebrew.

cmake worked fine with these arguments:
cmake .. -DGMX_GPU=OpenCL -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_C_COMPILER=/opt/homebrew/bin/gcc-11 -DCMAKE_CXX_COMPILER=/opt/homebrew/bin/g++-11 -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs

then I got the following error at the make step:

[ 15%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp.o
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_F.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_VF.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_F.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_VgrpF.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_F.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_VF.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_VgrpF.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_VF.cpp.o] Error 1
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_F.cpp.o] Error 1
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombGeom_VgrpF.cpp.o] Error 1
In file included from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd.h:43,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/simd.h:150,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/nbnxm_simd.h:50,
                 from /Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp:49:
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h: In function 'bool gmx::anyTrue(gmx::SimdDBool)':
/Users/florian/Downloads/gromacs-2022-rc1/src/gromacs/simd/impl_arm_neon_asimd/impl_arm_neon_asimd_simd_double.h:402:24: error: invalid 'static_cast' from type 'uint64x2_t' to type 'uint32x4_t'
  402 |     return (vmaxvq_u32(static_cast<uint32x4_t>(a.simdInternal_)) != 0);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_VF.cpp.o] Error 1
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJCombLB_VgrpF.cpp.o] Error 1
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_4xm/kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp.o] Error 1
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [all] Error 2


Any clues? May be a GCC11 specific requirement?

Florian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20220205/b132beb5/attachment-0001.html>


More information about the gromacs.org_gmx-developers mailing list