[gmx-users] Status of GROMACS native Windows Builds
Wahab Mirco
Mirco.Wahab at chemie.tu-freiberg.de
Wed Jan 9 16:54:15 CET 2019
There was currently a thread regarding ways of using Gromacs on
Windows systems. This cause me to try to download v.2019 to
a Windows build machine and see what the NATIVE BUILD looks like.
Installed on the Machine and used for the build were:
- Visual Studio 2017 ("Visual Studio 15 Win64" in cmake)
- fftw3f v.3.3.8, compiled in VS 2017 to a static library
- boost 1.69.0
(https://sourceforge.net/projects/boost/files/boost-binaries/)
First, standard Gromacs without GPU acceleration and
without external MPI (thread-MPI only). Using a CMD file:
SET BOOST_ROOT=D:\usr\x64\boost_1_67_0
SET BOOST_LIBRARYDIR=D:\usr\x64\boost_1_67_0\lib
SET BOOST_INCLUDEDIR=D:\usr\x64\boost_1_67_0
cmake -G "Visual Studio 15 Win64" ^
-DCMAKE_INSTALL_PREFIX="D:/Gromacs2019" ^
-DCMAKE_PREFIX_PATH="D:/Usr/x64" ^
-DGMX_GPU=OFF ^
-DGMX_MPI=OFF ^
-DFFTWF_LIBRARY=D:/Usr/x64/lib/libfftwf-3.3.8-vc141.lib ^
-DCMAKE_BUILD_TYPE=Release ^
..\gromacs-2019
and finally:
devenv Gromacs.sln /build Release ^
/project ALL_BUILD /projectconfig Release ^
/project INSTALL
created a 15 MB executable (gmx.exe) running flawlessly on the machine
and appears reliable and fast.
The build machine also has an old GTX-680 4GB with working CUDA 10 and
working OpenCL 1.2. Neither a Cuda-Build nor an OpenCL build would
succeed (see Appendix).
Q: is further support for the windows platform to be expected?
Thanks & Regards
M.
-----------------------------------------------------------------------
Appendix:
CUDA: cmake (3.13.2) would fail creating a makefile by complaining:
-- Check for working NVCC/C compiler combination
CMake Error at cmake/gmxManageNvccConfig.cmake:180 (message):
message called with incorrect number of arguments
Call Stack (most recent call first):
cmake/gmxManageGPU.cmake:204 (include)
CMakeLists.txt:590 (gmx_gpu_setup)
-- Check for working NVCC/C compiler combination - broken
CMake Error at cmake/gmxManageNvccConfig.cmake:185 (message):
CUDA compiler does not seem to be functional.
Call Stack (most recent call first):
cmake/gmxManageGPU.cmake:204 (include)
CMakeLists.txt:590 (gmx_gpu_setup)
OpenCL: cmake detects OpenCL 1.2 and creates a makefile, but compilation
fails at several places:
1>fft_binary_lookup.cpp
1>D:\LibSrc\Gromacs2019\gromacs-2019\src\external\clFFT\src\library\fft_binary_lookup.cpp(123):
error C2664: 'HANDLE
CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)':
cannot convert argument 1 from 'const _Elem *' to 'LPCSTR'
1> with
1> [
1> _Elem=wchar_t
1> ]
1>D:\LibSrc\Gromacs2019\gromacs-2019\src\external\clFFT\src\library\fft_binary_lookup.cpp(129):
note: Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast
1>Done building project "clFFT.vcxproj" -- FAILED.
2
and
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2672: 'std::max': no matching overloaded function found
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2780: '_Ty std::max(std::initializer_list<_Elem>)': expects 1
arguments - 2 provided
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5399):
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2782: 'const _Ty &std::max(const _Ty &,const _Ty &)
noexcept(<expr>)': template parameter '_Ty' is ambiguous
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5385):
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
note: could be 'unsigned long'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
note: or 'size_t'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2784: 'const _Ty &std::max(const _Ty &,const _Ty &)
noexcept(<expr>)': could not deduce template argument for 'const _Ty &'
from 'unsigned long'
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5385):
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2784: '_Ty std::max(std::initializer_list<_Elem>,_Pr)': could not
deduce template argument for 'std::initializer_list<_Elem>' from 'size_t'
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5375):
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr)
noexcept(<expr>)': expects 3 arguments - 2 provided
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5367):
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
error C2789: 'gridLinesPerBlock': an object of const-qualified type must
be initialized
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135):
note: see declaration of 'gridLinesPerBlock'
2>Done building project "libgromacs.vcxproj" -- FAILED.
More information about the gromacs.org_gmx-users
mailing list