计算化学公社

标题: GROMACS的原生Windows版的编译和安装方法(支持GPU加速) [打印本页]

作者
Author:
sobereva    时间: 2019-1-4 21:09
标题: GROMACS的原生Windows版的编译和安装方法(支持GPU加速)
GROMACS的原生Windows版的编译和安装方法(支持GPU加速)
Compilation and installation methods of the native Windows version of GROMACS (supporting GPU acceleration)

文/Sobereva@北京科音
First release: 2019-Jun-4  Last update: 2021-Jul-10

注1:本文拿2019.1版作为例子进行说明编译过程。本文的纯CPU版的编译方法经测试对于GROMACS 2018、2019各版本都适用,其它版本只要不是太老的应当都可以用,但未经实际测试。本文的编译CUDA GPU加速版的方法经测试对GROMACS 2019.1及之后的2019.x版、2020.x版都适用,不适用于2019.1之前的版本。本文的编译方法对于未来的GROMACS版本以及其它Visual Studio版本是否适用笔者不保证,请自行尝试,如果发现不行,请举一反三试图解决。

注2:如果大家对编译过程不感兴趣,只想立刻直接用笔者编译好的Windows版的GROMACS,请直接看本文第5节,里面有下载地址和安装方法。


1 前言:关于在Windows下使用GROMACS

GROMACS一般都是在Linux下运行,其Linux下的安装方法我在《GROMACS的安装方法》(http://sobereva.com/457)中已经详细交代了,还特意录了视频演示编译过程。在Windows下使用GROMACS有多种方式:

• 使用VMware装Linux虚拟机,并照常以Linux方式编译。装Linux虚拟机十分简单,过程见《在VMware 15中安装CentOS 7.6的完整过程视频演示》(http://sobereva.com/454)。Linux下的所有程序都可以以这种方式使用,而且直接有图形环境。但局限性是VMware客户机支持的CPU核数有限,比如VMware 16最多支持32个核。总的来说笔者极度青睐VMware。

• 在Cygwin下编译。Cygwin提供了类似Linux系统的命令行环境,也提供了程序包管理器和源,相对于使用VMware更轻量级,而且编译出的程序只要提供一些Cygwin的dll文件就可以直接挪到其它Windows机子下用。对于大多数程序Cygwin下编译方式和Linux下一样(gcc、make、cmake等都有),但也有很多情况需要额外折腾,有时编译过程特别迟钝,而且有时候有一些特殊情况,比如笔者在Cygwin下编译GROMACS时必须要求不利用AVX指令集,否则编译会失败。

• Win10的Linux子系统(WSL)。笔者个人不怎么喜欢这东西,用着别扭,这里不多提,和Cygwin在形式上有很大相似之处,鉴于是Windows自带的,以后必然会吞掉Cygwin很大的生存空间。

以上三种方法在原理上都会使得计算性能打一些折扣,但一般也就10~15%左右,这不是重点,共同的严重缺点是不能支持GPU加速(WSL2倒是号称支持,不过我没试过)。在Windows下最完美的运行GROMACS的方法莫过于直接编译原生的Windows版GROMACS,编译出的程序可以拿到任何其它Windows机子上直接用,不需要装额外运行环境,不会像上述三种方法那样会对CPU性能打折扣,而且还能像Linux下一样在跑GROMACS的时候使用GPU加速。

本文目的是详细介绍一下怎么编译原生的Windows版GROMACS,其实过程一点也不复杂(网上有些教别人编译Windows版GROMACS的文章写得很不好,过程十分繁琐,写得不明不白,而且对较新版本还不适用)。

首先提一下,GROMACS需要利用FFT(快速傅立叶变换)库,有三种选择
(1)FFTW库:这是最佳选择,一般都用这个,效率高。在Linux下编译GROMACS可以自动下载FFTW库并安装,但是在Windows下没法实现这点
(2)MKL库:效率和FFTW差不多,需要额外安装,较麻烦,而且占不少硬盘
(3)fftpack库:这是GROMACS自带的,图省事用这个就行了,但是经实测效率比基于FFTW库低百分之十几

下面按照编译过程由简到繁,分为三部分依次说:
(1)编译基于fftpack的纯CPU版
(2)编译基于fftw的纯CPU版
(3)编译基于fftw且支持CUDA加速的版本
本文只涉及编译最常用的单精度版、只能单节点并行的情况。本文编译的都是64bit版本。


2 编译基于fftpack的纯CPU版

如果你对计算效率没什么要求,只需要以尽量简单的方式编译出一个能在Windows下跑的GROMACS,那么只看这一节就够了。下面我们来编译基于fftpack库的GROMACS。

首先安装Visual Studio,这里用的是Visual Studio 2019。Visual Studio最低级的是community(社区)版,是完全免费的。大家在https://visualstudio.microsoft.com/zh-hans/downloads/就可以下载到最新版。下载到的是一个非常小的安装器,启动它就可以在线安装(目前的Visual Studio是没有镜像文件的。虽然也有办法把其组件全部下载后再离线安装,但是会占几十GB硬盘,因此不要考虑离线方式安装)。虽然看起来在线安装好像很耗时,但其实以现在的网速来说总耗时也不算很高。安装Visual Studio的时候应选择“使用C++的桌面开发”,确认“安装详细信息”中“用于CMake的Visual C++工具”是已选中的状态。

将gromacs-2019.1.tar.gz源代码包解压到比如C:\gromacs-2019.1。

在开始菜单里选Visual Studio 2019 - Visual Studio Tools - Developer PowerShell for VS 2019,由此进入编译环境都配置好的命令行窗口。然后依次输入
cd C:\gromacs-2019.1
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=C:/gmx2019.1 -DGMX_FFT_LIBRARY=fftpack -G "Visual Studio 16 2019"
cmake --build . --target INSTALL --config Release

耐心地等待编译好后,会看到出现了C:\gmx2019.1目录,里面就是编译好的可执行文件以及相关文件了,内容和Linux版一样。按照本文第5节的做法将C:\gmx2019.1\bin添加到Path环境变量后,程序就可以用了,用法和Linux版没有任何区别。

当前机子的CPU最高支持什么指令集,默认情况下编译出的GROMACS就是基于什么指令集的。如果比如你的机子的CPU支持AVX2指令集,那么编译出的GROMACS拿到只支持到AVX指令集的CPU上就没法跑,比如mdrun运行时会崩溃。

有几点值得额外说明,有兴趣可以了解一下:

cmake的-G选项代表设置Generator,相当于指定编译环境,可以运行cmake -G查看有哪些Generator可选。"Visual Studio 15 2017 Win64"代表产生出对应于VS2017的64bit平台的解决方案,之后进而编译出的程序就是适合Windows 64bit的版本了。

Visual Studio自带了cmake(因为我们安装VS时选上了),实际上也可以直接去cmake官网上下载独立的cmake程序,里面还带有cmake-gui.exe,提供了cmake的图形界面。网上某些编译Windows版GROMACS的文章用了这个东西,实际上完全多此一举,直接按照上面的做法用命令行输入省事得多。

如果读者打开build目录下的Gromacs.sln解决方案文件,会看到里面有很多不同的工程,其中名为ALL_BUILD的工程对应于编译出最终的可执行文件,而INSTALL的工程对应于不仅编译可执行文件(因为其引用了ALL_BUILD),还将程序安装到CMAKE_INSTALL_PREFIX设的目录,因此上文的语句里用了--target INSTALL。

上面的--config后面跟的是编译时用的配置。名为Release的配置是适合用于发布的,会对代码充分进行优化。

在cmake --build ...的那一步后面再接上比如-j 4代表使用4核并行编译,但是实测发现对编译耗时没有可查觉的影响,和Linux下的情况完全不同。


3 编译基于fftw的纯CPU版

先在此下载FFTW 3.3.8库:http://www.fftw.org/fftw-3.3.8.tar.gz。将之随便解压到某个地方,然后开启Developer PowerShell for VS 2019,进入FFTW库解压的目录(此目录下会看到CMakeLists.txt),运行以下命令
cmake . -DCMAKE_INSTALL_PREFIX=C:\fftw338 -DENABLE_SSE2=ON -DENABLE_AVX=ON -DENABLE_FLOAT=ON -DBUILD_SHARED_LIBS=ON -G "Visual Studio 16 2019"
cmake --build . --target INSTALL --config Release

这样,FFTW库就被装到C:\fftw338目录下了,里面有库文件、头文件等。如果你的CPU支持AVX2指令集,建议把上面命令里-DENABLE_AVX=ON改为-DENABLE_AVX2=ON以获得更好的性能。

接下来的编译过程类似上一节,区别是指定的FFT库不同:
cd C:\gromacs-2019.1
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=C:/gmx2019.1 -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_PREFIX_PATH=C:/fftw338 -G "Visual Studio 16 2019"
cmake --build . --target INSTALL --config Release

编译完成后,手动将C:\fftw338\bin里的fftw3f.dll拷到C:\gmx2019.1\bin目录下,之后将这个目录加入Path环境变量后就可以用了。


4 编译基于fftw且支持CUDA加速的版本

https://developer.nvidia.com/cuda-toolkit下载CUDA toolkit,里面提供了编译CUDA加速程序所需要的库、头文件、编译器等等。为了节约硬盘空间,装CUDA toolkit时只需要选择安装CUDA分类里的Development、Runtime和Visual Studio Integration即可。这里假定装到了自定义的D:\CUDA_toolkit目录下。值得一提的是,编译CUDA版GROMACS的机子并不需要非得有可以实现CUDA加速的GPU,只要装了CUDA toolkit,在什么机子上都可以编译。

按照上一节的做法把FFTW库编译好,然后输入
cd C:\gromacs-2019.1
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=C:/gmx2019.1_GPU -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_PREFIX_PATH=C:/fftw338 -G "Visual Studio 16 2019" -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=D:/CUDA_toolkit
cmake --build . --target INSTALL --config Release

然后和上一节一样把fftw3f.dll拷到新产生的C:\gmx2019.1_GPU\bin目录下,之后将这个目录加入Path环境变量后就可以用了。

如果你编译出的GROMACS要拿到其它没有装CUDA toolkit的机子上用,或者那台机子装的CUDA toolkit是老版本,那么你应当先把D:\CUDA_toolkit\bin\cufft64_10.dll(_后面的数字视CUDA toolkit版本而定)也拷到C:\gmx2019.1_GPU\bin目录下,然后再把这个gmx2019.1_GPU目录拷到其它机子上用。

如果当前机子里有支持CUDA加速的GPU,而且GPU驱动的版本号足够新,满足当前CUDA toolkit版本的要求,那么运行CUDA版GROMACS的时候就会自动识别出兼容的GPU,并提示利用GPU进行运算。如果你的GPU不满足要求或者驱动版本太老,那么CUDA版GROMACS也能运行,只不过是纯粹用CPU来跑。在https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html页面里可以查到各个CUDA toolkit所需要的GPU驱动最低版本号,如果你的GPU能装上满足要求版本的驱动(较新版本的驱动不支持很老的GPU),那么你的GPU就能加速GROMACS运算。

PS:对于用GPU加速的情况,用fftpack还是fftw对计算耗时影响很小,图省事的话基于fftpack编译GPU版也可以。


5 笔者预编译的原生Windows版的安装方法

这里提供笔者编译好的GROMACS Windows 64bit版,在Win7、Win10、Win11下经测试都可以用,都可以单机并行,FFT库都是用的FFTW。

2018.8 CPU版,AVX指令集(15 MB):http://sobereva.com/soft/gmx/gmx2018.8_AVX_win64.rar
2019.6 CUDA GPU加速版,AVX指令集(93 MB):http://sobereva.com/soft/gmx/gmx2019.6_AVX_CUDA_win64.rar
2020.3 CUDA GPU加速版,AVX指令集(93 MB):http://sobereva.com/soft/gmx/gmx2020.3_AVX_CUDA_win64.rar
2020.6 CUDA GPU加速版,AVX2指令集(88 MB):http://sobereva.com/soft/gmx/gmx2020.6_AVX2_CUDA_win64.rar(nVidia显卡驱动需>=471.11版)

使用前必须先设置环境变量,将程序的bin目录加入到Path环境变量里。对于Win7来说,过程是:假设预编译版GROMACS压缩包解压到了C:\gmx2019.6,应当进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变量”下面选择Path变量,点击“编辑”,在“变量值”文本框最后加上一个分号,然后再写上GROMACS目录的bin子目录的路径,比如;C:\gmx2019.6\bin\。之后进入Windows的命令行窗口,输入gmx命令的时候就应该出现相关提示信息了,此时就可以像Linux版一样照常使用了。
注:如果你的计算机水平十分糟糕,甚至差到难以按照上面的说明正确设置环境变量,一定要参考演示视频:https://www.bilibili.com/video/av39914815/

如果你的机子里没有装Visual Studio,或者装了但是版本比2019老,应先去https://aka.ms/vs/16/release/VC_redist.x64.exe下载并安装Visual C++ Redistributable,这提供了必备的运行环境,否则启动时会提示缺少dll。

对于上面提供的CUDA GPU加速版,使用者并不需要在机子里安装CUDA toolkit,只要确保nVidia显卡驱动足够新就可以直接使用。如果你的驱动太老导致无法使用,应当先去nVidia官网https://www.nvidia.com/Download/index.aspx下载最新版本驱动并安装。

不要问我怎么双击gmx.exe之后程序闪退(老有人问),因为GROMACS根本就不是靠双击图标来使用的!GROMACS是通过命令行使用的程序,稍微有点最基本GROMACS常识的人都知道不应该双击gmx.exe图标来使用。如果想从0开始系统性学习GROMACS,强烈建议参加北京科音分子动力学与GROMACS培训班,一次性彻底学明白,详见:http://www.keinsci.com/workshop/KGMX_content.html

如果你对Windows下命令行的操作一丁点都没概念,连查看目录下有什么文件(dir命令)、怎么切换路径(cd命令)都不会的话,我强烈建议你先花一点点看这套视频学一遍这些基础:https://www.youtube.com/watch?v= ... xT4JbMu&index=1。没有这些最基本常识的话,什么命令行程序你都没法顺利使用(不限于GROMACS)。

经笔者在2*E5 2696v3(36核)机子上对一个三万多原子的蛋白质+水盒子的测试发现,Windows下纯CPU版的计算速度只有按照《GROMACS的安装方法》(http://sobereva.com/457)方法编译出来的Linux版的60%,估计是微软的编译器没有gcc那么给力所致。GPU版我没有对比测试,但应该速度相差不会这么显著。所以,如果你只用CPU来跑计算,建议还是用Linux系统。


作者
Author:
comboy2008    时间: 2019-1-4 22:23
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变量”下面选择Path变量,点击“编辑”,在“变量值”文本框最后加上一个分号,.....。。。。。。。。。。。很详细!
作者
Author:
sobereva    时间: 2019-1-5 09:26
comboy2008 发表于 2019-1-4 22:23
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变 ...

我每次写帖子都是考虑到初学者理解能力的底限来写的,甚至还担心有人不懂都录了视频。但仍然经常有人不能正确领会...
作者
Author:
yjcmwgk    时间: 2019-1-5 09:35
comboy2008 发表于 2019-1-4 22:23
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变 ...

然后就有人困惑:“控制面板是啥?”
作者
Author:
dalaomao2008    时间: 2019-1-5 12:08
感谢大神,大神辛苦了
作者
Author:
greatzdk    时间: 2019-1-6 13:15
很棒,cmake的gui工具也很好,如此,可以可视化的来选择编译条件。
作者
Author:
lonemen    时间: 2019-1-6 13:15
感谢sob老师!太赞了!
作者
Author:
zsu007    时间: 2019-1-7 21:39
谢谢,可以一试!
作者
Author:
sobereva    时间: 2019-3-29 08:36
彻底重写了本文,将Windows下编译GROMACS的过程终极完美化,增加了基于FFTW库的编译介绍,增加了支持CUDA版本的编译介绍,而且还直接提供了预编译好的直接就能用的CUDA加速版windows 64bit GROMACS 2019.1。
作者
Author:
neocc    时间: 2019-4-21 02:42
本帖最后由 neocc 于 2019-4-21 15:51 编辑

下载社长的CUDA加速版(93.3MB)

D:\CUDA_toolkit目录下装CUDA toolkit时,选择安装CUDA分类里的Development、Runtime和Visual Studio Integration。
把D:\CUDA_toolkit\bin\cufft64_10.dll拷到C:\gmx2019.1_GPU\bin
然后cmd里面输入gmx -version

最后一行依然显示CUDA runtime:       N/A

请问社长这个要如何修改?

注:神船k680e i5 7400  1050ti 4g gddr5

作者
Author:
sobereva    时间: 2019-4-21 06:44
neocc 发表于 2019-4-21 02:42
下载社长的CUDA加速版(93.3MB)

D:\CUDA_toolkit目录下装CUDA toolkit时,选择安装CUDA分类里的Develop ...

dll已经直接提供在我的文件包里了,有这个直接就能跑我编译好的,不需要你额外安装CUDA toolkit从里面提取这个文件。你需要做的是把你的显卡驱动更新到最新,显卡驱动版本和CUDA toolkit版本完全是两码事

作者
Author:
neocc    时间: 2019-4-21 15:51
sobereva 发表于 2019-4-21 06:44
dll已经直接提供在我的文件包里了,有这个直接就能跑我编译好的,不需要你额外安装CUDA toolkit从里面提 ...

好的,谢谢社长

作者
Author:
neocc    时间: 2019-4-24 12:43
请问社长,驱动已经更新到最新,gpu可以跑起来,但是在cmd里面想看NVIDIA-smi,提示failed to initialize NVML:unknown error😂

作者
Author:
sobereva    时间: 2019-7-6 17:09
本贴里编译好的gromacs 2019.1版下载链接已更新为了gromacs 2019.3版
作者
Author:
@Bruce    时间: 2019-7-8 19:30
老师好,请问为什么我用VS2019编译的fftw-3.3.8和gromacs-2019.3都没有bin文件夹?是过程出问题了吗?
作者
Author:
sobereva    时间: 2019-7-9 03:03
@Bruce 发表于 2019-7-8 19:30
老师好,请问为什么我用VS2019编译的fftw-3.3.8和gromacs-2019.3都没有bin文件夹?是过程出问题了吗?

不清楚
反正用VS2017,严格按文中的做法编译,肯定有bin目录
作者
Author:
@Bruce    时间: 2019-7-9 08:16
好的,我用VS2017试试,谢谢老师
作者
Author:
308866814    时间: 2019-7-9 17:04
sobereva 发表于 2019-7-6 17:09
本贴里编译好的gromacs 2019.1版下载链接已更新为了gromacs 2019.3版

恳请社长测试下windows版gpu加速的gromacs与Linux下gpu加速的区别,因为到目前也不确定在windows下跑支持cuda的gromacs速度衰减是不是很显著,谢谢谢谢
作者
Author:
sobereva    时间: 2019-7-10 08:38
308866814 发表于 2019-7-9 17:04
恳请社长测试下windows版gpu加速的gromacs与Linux下gpu加速的区别,因为到目前也不确定在windows下跑支持 ...

我目前手头没条件测试

gmx 2019里已经把几乎所有耗时的部分全都挪到GPU了,而windows和linux下GPU代码部分都是用的相同的nvidia的编译器,原理上不会有多少速度差异
作者
Author:
tjuptz    时间: 2019-8-19 15:03
本帖最后由 tjuptz 于 2019-12-23 14:03 编辑

之前的错误认识,已删除
作者
Author:
liuyuje714    时间: 2019-8-19 17:23
tjuptz 发表于 2019-8-19 15:03
第5节环境变量设置win10下为;C:\gmx2018.4\bin\,少了最后的\就没法识别

不存在这个问题。
作者
Author:
tjuptz    时间: 2019-8-19 17:36
本帖最后由 tjuptz 于 2019-8-19 19:14 编辑
liuyuje714 发表于 2019-8-19 17:23
不存在这个问题。

经核验确实是。
作者
Author:
aken5555    时间: 2019-10-13 16:42
谢谢老师分享,下载了试试去
作者
Author:
lao7    时间: 2019-12-23 12:12
本帖最后由 lao7 于 2019-12-23 13:19 编辑
tjuptz 发表于 2019-8-19 17:36
经核验确实是。

我加了之后仍旧提示错误:提示为:gmx不是内部或者外部命令,也不是可运行的程序或批处理文件。
安装的是win 10下的CPU版本。

作者
Author:
lao7    时间: 2019-12-23 13:17
tjuptz 发表于 2019-8-19 15:03
经核验,确实不需要×第5节环境变量设置win10下为;C:\gmx2018.4\bin\,少了最后的\就没法识别×

× 是个什么东西?
作者
Author:
tjuptz    时间: 2019-12-23 14:04
lao7 发表于 2019-12-23 13:17
× 是个什么东西?

这是我之前的错误认识,你的问题可能重启一下就行了,使环境变量生效
作者
Author:
sobereva    时间: 2020-1-11 01:00
更新了本文提供的预编译的gmx版本,给出了2018.8纯CPU版和2019.5 CUDA GPU加速版
作者
Author:
夏一天    时间: 2020-1-12 14:53
社长大人,能否编译一个基于AVX2指令集编译的gromacs5.1.5 的原生windows CUDA GPU加速版?因为很多程序新版本的不兼容,期待有老版本的WindowsGPU加速版!

作者
Author:
sobereva    时间: 2020-1-12 15:29
夏一天 发表于 2020-1-12 14:53
社长大人,能否编译一个基于AVX2指令集编译的gromacs5.1.5 的原生windows CUDA GPU加速版?因为很多程序新 ...

目前没这个编译打算
作者
Author:
liuyuje714    时间: 2020-1-12 20:27
夏一天 发表于 2020-1-12 14:53
社长大人,能否编译一个基于AVX2指令集编译的gromacs5.1.5 的原生windows CUDA GPU加速版?因为很多程序新 ...

下面链接是基于AVX2_256编译的GROMACS 5.1.5的GPU加速版本,里面有说明,请尽快下载以免链接过期。

https://c-t.work/s/6d35e8dc4f5741
作者
Author:
夏一天    时间: 2020-1-13 16:36
liuyuje714 发表于 2020-1-12 20:27
下面链接是基于AVX2_256编译的GROMACS 5.1.5的GPU加速版本,里面有说明,请尽快下载以免链接过期。

ht ...

大神!请受小弟一拜!真的非常崇拜您!太感谢您的帮助了!小弟跪谢!
作者
Author:
夏一天    时间: 2020-1-20 22:14
liuyuje714 发表于 2020-1-12 20:27
下面链接是基于AVX2_256编译的GROMACS 5.1.5的GPU加速版本,里面有说明,请尽快下载以免链接过期。

ht ...

大神您好,最近我在编译基于avx2_256指令的gromacs2019.5的windowsGPU版时,cuda总是连接不上去。网上说AVX2_256比AVX_256快很多,说可以三路交叉什么的,一直想尝试比较一下,但本人水平有限,请教您能否有时间帮忙编译一下?非常感谢!
作者
Author:
liuyuje714    时间: 2020-1-20 22:21
夏一天 发表于 2020-1-20 22:14
大神您好,最近我在编译基于avx2_256指令的gromacs2019.5的windowsGPU版时,cuda总是连接不上去。网上说A ...

听谁说快很多的?在win下不存在快很多,也不懂你说的交叉是什么东西,win下一般也是单机,多显卡并行显然不要用win,linux才是最好的选择。下面网址是我提供的各种版本的gmx,除了4.6.7,其他都是avx2_256,你如果对性能感兴趣可以自行测试,我并不认为会有大幅提升。https://liuyujie714.com/15.html
作者
Author:
sobereva    时间: 2020-1-21 01:02
夏一天 发表于 2020-1-20 22:14
大神您好,最近我在编译基于avx2_256指令的gromacs2019.5的windowsGPU版时,cuda总是连接不上去。网上说A ...

直接用我文中提供的编译好的2019.5就完了,完全没必要自己编译。
本来GPU大部分计算量就在GPU上,根本没必要编译成AVX2版。更何况我在文中也明确说了AVX2版并不会比AVX版性能有什么明显提升。

作者
Author:
夏一天    时间: 2020-1-21 14:44
liuyuje714 发表于 2020-1-20 22:21
听谁说快很多的?在win下不存在快很多,也不懂你说的交叉是什么东西,win下一般也是单机,多显卡并行显然 ...

多谢大神指导!听网上说的,只是想亲测一下,没有其他意思!多谢您提供的版本链接!
作者
Author:
夏一天    时间: 2020-1-21 14:47
sobereva 发表于 2020-1-21 01:02
直接用我文中提供的编译好的2019.5就完了,完全没必要自己编译。
本来GPU大部分计算量就在GPU上,根本没 ...

是的,多谢您的指点,网上看了很多杂七杂八的帖子,现在明白了,确实计算是在GPU上,和指令集无关。受教了!
作者
Author:
lao7    时间: 2020-4-2 22:38
这里面有个疑问:楼主用的虚拟机装的Gromacs。那么进行GPU显卡加速的时候,VM里面的显卡似乎是虚拟出来的?如何让Gromacs直接调用硬件上的加速显卡呢?是不是linux版本的显卡驱动需要另行安装?
作者
Author:
sobereva    时间: 2020-4-4 05:06
lao7 发表于 2020-4-2 22:38
这里面有个疑问:楼主用的虚拟机装的Gromacs。那么进行GPU显卡加速的时候,VM里面的显卡似乎是虚拟出来的? ...

VMware里面虽然支持硬件加速显示3D物体(性能大打折扣),但完全不支持CUDA GPU加速,没法在vmware里直接用GPU加速跑gmx
作者
Author:
huangjin    时间: 2020-4-4 20:33
感谢老师的分享,老师辛苦了。
作者
Author:
一起搞科研    时间: 2020-7-21 17:26
tjuptz 发表于 2019-12-23 14:04
这是我之前的错误认识,你的问题可能重启一下就行了,使环境变量生效

您好,我用win10,重启了也还是不行,总是提示为:gmx不是内部或者外部命令,也不是可运行的程序或批处理文件。
作者
Author:
tjuptz    时间: 2020-7-21 18:53
一起搞科研 发表于 2020-7-21 17:26
您好,我用win10,重启了也还是不行,总是提示为:gmx不是内部或者外部命令,也不是可运行的程序或批处理 ...

严格按照社长的视频教程做,再有问题得具体把你的操作步骤贴出来了
作者
Author:
一起搞科研    时间: 2020-7-21 23:06
tjuptz 发表于 2020-7-21 18:53
严格按照社长的视频教程做,再有问题得具体把你的操作步骤贴出来了

问题解决了。下次我注意提问方式。谢谢提醒。
作者
Author:
sobereva    时间: 2020-8-16 17:34
文中第五节新加入了2019.6 GPU win64版,这是2019系列的最终版本。还加入了2020.3 GPU win64版,这是当下最新版本。
作者
Author:
永远的奇风镇    时间: 2020-9-9 15:30
“5 笔者预编译的原生Windows版的安装方法 这里提供笔者编译好的GROMACS Windows 64bit版,在Win7、Win10下经测试都可以用,都可以单机并行,是基于AVX指令集编译的,FFT库都是用的FFTW”
请问这个方法需要提前编译好FFT库吗?还是只用安装好93MB的包就行了?
作者
Author:
sobereva    时间: 2020-9-10 03:43
永远的奇风镇 发表于 2020-9-9 15:30
“5 笔者预编译的原生Windows版的安装方法 这里提供笔者编译好的GROMACS Windows 64bit版,在Win7、Win10下 ...

不用自己装FFTW。直接用我编译的gmx就完了
作者
Author:
永远的奇风镇    时间: 2020-9-10 09:20
sobereva 发表于 2020-9-10 03:43
不用自己装FFTW。直接用我编译的gmx就完了

谢谢sob大神
作者
Author:
cheviax    时间: 2020-10-5 21:07
本帖最后由 cheviax 于 2020-10-6 13:18 编辑

sob老师,我在运行第四行命令时报错说Could not create named generator Visual Studio 2019 Win64
安装的版本是vs2019,cudav11.1,gromacs20.3,
会不会是我改错了?
cmake .. -DCMAKE_INSTALL_PREFIX=C:\soft\gmx2020.3_GPU -DGMX_FFT_LIBRARY=fftpack -G "Visual Studio 2019 Win64" -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
作者
Author:
liuyuje714    时间: 2020-10-6 08:14
cheviax 发表于 2020-10-5 21:07
sob老师,我在运行第四行命令时报错说Could not create named generator Visual Studio 2019 Win64
安装的 ...

你犯了两个错误。第一,用vs2019默认的generator是Visual Studio 16 2019,
64位和32位可以用-A选项指定但如果你用的是x64的那个vs终端,就不需要,甚至你不用指定-G选项也可以,默认的就是这个;第二,你用的cuda11,它废除了sm30的支持,你必须修改nvcc cmake那个文件,删掉与30有关的部分才能够编译通过。
作者
Author:
cheviax    时间: 2020-10-6 14:37
liuyuje714 发表于 2020-10-6 08:14
你犯了两个错误。第一,用vs2019默认的generator是Visual Studio 16 2019,
64位和32位可以用-A选项指定 ...

感谢,改成vs 16 2019后确实能往下进行了
不过run.nvcc.cmake文件里搜不到sm或者30,就没管它
然后出现了Configuring incomplete, errors occurred,让看一个log文件,但是log文件里错误和警告都是0……
暂时放弃了,直接用sob老师编译好的那个了
作者
Author:
海人1213    时间: 2020-12-17 11:43
sob老师,我使用了win10的机子,按照视频演示先解压编译好的gmx2019.6_GPU,然后在Path环境变量后面加分号,再把bin的地址复制过去。用win+r的方式打开命令行窗口,但是输入gmx的时候一直不成功,显示的内容如图。下面我该怎么办呀

作者
Author:
mekelleche    时间: 2020-12-17 15:00
How to make the program support the 4 CPU of my PC, in the compilation process.
作者
Author:
mekelleche    时间: 2020-12-17 18:56
How to compile the program in purpose to use all the CPU in my PC.
作者
Author:
sobereva    时间: 2020-12-18 06:04
mekelleche 发表于 2020-12-17 18:56
How to compile the program in purpose to use all the CPU in my PC.

You do not need to do any special thing, the compiled GROMACS utilizes all CPU cores in you machine by default, and you can use -nt option to customize how many cores will be used in the calculation.
作者
Author:
sobereva    时间: 2020-12-18 06:06
海人1213 发表于 2020-12-17 11:43
sob老师,我使用了win10的机子,按照视频演示先解压编译好的gmx2019.6_GPU,然后在Path环境变量后面加分号 ...

重启再试。还不行的话,输入echo %Path%命令看看到底gmx.exe所在目录加入到Path环境变量没有,没有的话肯定是环境变量没设对,没其它的原因。
作者
Author:
海人1213    时间: 2020-12-18 20:33
sobereva 发表于 2020-12-18 06:06
重启再试。还不行的话,输入echo %Path%命令看看到底gmx.exe所在目录加入到Path环境变量没有,没有的话肯 ...

sob老师,我按您说的方法看了一下,环境变量应该是添加上了,如图。
我这种情况还有救吗?

作者
Author:
snljty    时间: 2020-12-18 20:45
海人1213 发表于 2020-12-18 20:33
sob老师,我按您说的方法看了一下,环境变量应该是添加上了,如图。
我这种情况还有救吗?

不知道你怎么编辑的环境变量,你双引号用的不对。Win10的话此电脑→右键单击→属性→高级系统蛇者→环境变量→上面的用户变量或者下面的系统变量→Path→编辑,自己调整一下。先把双引号去了。你这个情况没必要用双引号。
作者
Author:
牧生    时间: 2020-12-22 09:14
本帖最后由 牧生 于 2020-12-22 09:17 编辑
海人1213 发表于 2020-12-18 20:33
sob老师,我按您说的方法看了一下,环境变量应该是添加上了,如图。
我这种情况还有救吗?

可以更简单易懂的,不用管分号。
不要用中文路径

(, 下载次数 Times of downloads: 118)




作者
Author:
海人1213    时间: 2020-12-27 09:39
谢谢各位老师的指点,我已经按照牧生提供的方法给解决了。
作者
Author:
薛定谔没有定    时间: 2021-3-13 17:04
老师你好,我是纯小白,我按照您的步骤安装后,打开bin文件夹中的gmx,可是只会闪过一个黑框,还是打不开,请问这该怎么解决
作者
Author:
牧生    时间: 2021-3-13 22:01
薛定谔没有定 发表于 2021-3-13 17:04
老师你好,我是纯小白,我按照您的步骤安装后,打开bin文件夹中的gmx,可是只会闪过一个黑框,还是打不开, ...

似乎你双击图标了吧??

如果是win10系统,参照57楼,操作结束后,在任意英文路径下,按住shift点右键,打开命令窗口,输入gmx就会有提示了
作者
Author:
azero    时间: 2021-6-1 12:05
PrepareForBuild:
  正在创建目录“x64\Release\release-version-info\”。
  正在创建目录“x64\Release\release-version-info\release-.3F9F699C.tlog\”。
InitializeBuildStatus:
  正在创建“x64\Release\release-version-info\release-.3F9F699C.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。
CustomBuild:
  Generating release version information
  CMake Error at cmake/gmxGenerateVersionInfoRelease.cmake:121 (file):
    file failed to open for reading (No such file or directory):

      C:/gromacs-2020/computed_checksum


C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,
5): error MSB6006: “cmd.exe”已退出,代码为 1。 [C:\gromacs-2020\build\release-version-info.vcxproj]
已完成生成项目“C:\gromacs-2020\build\release-version-info.vcxproj”(默认目标)的操作 - 失败。




求助,编译2020.6版本,这个 C:/gromacs-2020/computed_checksum是什么梗

作者
Author:
yuangenyue    时间: 2021-8-20 18:58
确实要重启一下才行,谢谢大神分享!
作者
Author:
hlfancomeon    时间: 2021-9-17 16:49
非常受用,谢谢社长分享
作者
Author:
sun666    时间: 2021-9-27 17:12
sobereva 发表于 2019-1-5 09:26
我每次写帖子都是考虑到初学者理解能力的底限来写的,甚至还担心有人不懂都录了视频。但仍然经常有人不能 ...

请问老师gromacs2021版有windows版本吗
作者
Author:
sobereva    时间: 2021-9-27 19:58
sun666 发表于 2021-9-27 17:12
请问老师gromacs2021版有windows版本吗


作者
Author:
喵星大佬    时间: 2021-10-15 03:39
本帖最后由 喵星大佬 于 2021-10-15 05:53 编辑

在Win下纯CPU跑就用WSL2就好了,速度和直接用Linux几乎没啥差,只不过注意跑的时候目录一定要是Linux的目录,所以其实如果跑MD的话只用Win+WSL2是完全OK的
作者
Author:
moxxi    时间: 2022-5-14 15:05
卢老师,下载您预编译的“2020.6 CUDA GPU加速版,AVX2指令集”解压并按文章设置环境变量后,运行时显示gromacs是modified的版本,而“2019.6 CUDA GPU加速版,AVX指令集”则在同样操作后没有出现这一显示,请问这个是我环境变量设置的问题吗?(我电脑上的CUDA Toolkit版本是v11.7,fftw版本是3.3.8)
作者
Author:
sobereva    时间: 2022-5-14 16:37
moxxi 发表于 2022-5-14 15:05
卢老师,下载您预编译的“2020.6 CUDA GPU加速版,AVX2指令集”解压并按文章设置环境变量后,运行时显示gro ...

不用管这个
作者
Author:
moxxi    时间: 2022-5-14 18:04
sobereva 发表于 2022-5-14 16:37
不用管这个

哦哦,好的,谢谢老师
作者
Author:
joke122    时间: 2022-9-18 20:13
请问老师,win11能否安装
作者
Author:
sobereva    时间: 2022-9-19 00:36
joke122 发表于 2022-9-18 20:13
请问老师,win11能否安装

just try
作者
Author:
深爱小李    时间: 2022-9-28 16:18
2018.8 CPU版,AVX指令集(15 MB):http://sobereva.com/soft/gmx/gmx2018.8_AVX_win64.rar
2019.6 CUDA GPU加速版,AVX指令集(93 MB):http://sobereva.com/soft/gmx/gmx2019.6_AVX_CUDA_win64.rar
2020.3 CUDA GPU加速版,AVX指令集(93 MB):http://sobereva.com/soft/gmx/gmx2020.3_AVX_CUDA_win64.rar
2020.6 CUDA GPU加速版,AVX2指令集(88 MB):http://sobereva.com/soft/gmx/gmx2020.6_AVX2_CUDA_win64.rar(nVidia显卡驱动需>=471.11版)
请问@sobereva 老师,这三种加速版(尤其最后一种)文中说的是需要N卡才能提供加速还是只有N卡才能正常运行呀,不是N卡的是直接不能用吗,还是只是不能用GPU加速呢?
作者
Author:
夏一天    时间: 2022-9-28 19:10
希望@sobereva 老师继续补充2021 CUDA GPU加速版、2022 CUDA GPU加速版等win版gromacs,完善win平台gromacs软件
作者
Author:
sobereva    时间: 2022-9-29 04:28
夏一天 发表于 2022-9-28 19:10
希望@sobereva 老师继续补充2021 CUDA GPU加速版、2022 CUDA GPU加速版等win版gromacs,完善win平台gromacs ...

新版本gmx在windows下由于编译器兼容性问题不便于编译
用太新的版本也没多大必要
作者
Author:
sobereva    时间: 2022-9-29 04:31
深爱小李 发表于 2022-9-28 16:18
2018.8 CPU版,AVX指令集(15 MB):http://sobereva.com/soft/gmx/gmx2018.8_AVX_win64.rar
2019.6 CUDA  ...

有nVidia的GPU(而且不是性能特烂的低端型号)就用这里的CUDA GPU加速版,没有就用CPU版
作者
Author:
深爱小李    时间: 2022-9-29 10:24
sobereva 发表于 2022-9-29 04:31
有nVidia的GPU(而且不是性能特烂的低端型号)就用这里的CUDA GPU加速版,没有就用CPU版

嗯嗯好的 谢谢老师
作者
Author:
raymond    时间: 2022-11-10 10:51
使用第5步预编译的原生Windows版的安装方法里面的2020.6 CUDA GPU加速版,AVX2指令集(88 MB)版本的GROMACS 是不是就不需要经过第2/3/4步的操作,只要设置好环境变量之后就可以直接使用是吗?
作者
Author:
sobereva    时间: 2022-11-10 11:16
raymond 发表于 2022-11-10 10:51
使用第5步预编译的原生Windows版的安装方法里面的2020.6 CUDA GPU加速版,AVX2指令集(88 MB)版本的GROMAC ...

是。文中说得很明确
作者
Author:
raymond    时间: 2022-11-10 11:25
sobereva 发表于 2022-11-10 11:16
是。文中说得很明确

好的,非常感谢老师
作者
Author:
yaoshi1206    时间: 2023-11-22 10:52
社长有没有编译好的 gmx2023.1 windows版本,工作站上是linux版的gmx2023.1,运行完把结果拷回来,分析处理时用gmx2020.6处理轨迹是,报版本不兼容错误Fatal error:
reading tpx file (md_0_1.tpr) version 127 with version 119 program
作者
Author:
sobereva    时间: 2023-11-22 19:15
yaoshi1206 发表于 2023-11-22 10:52
社长有没有编译好的 gmx2023.1 windows版本,工作站上是linux版的gmx2023.1,运行完把结果拷回来,分析处理 ...

没有
虚拟机里装个2023就完了
作者
Author:
yaoshi1206    时间: 2023-11-22 23:15
sobereva 发表于 2023-11-22 19:15
没有
虚拟机里装个2023就完了

已按社长的博文方法(http://bbs.keinsci.com/thread-11848-1-1.html)编译好windows下cpu版的gmx2023.1,多谢指点!
作者
Author:
uogh    时间: 2023-12-7 07:58
感谢大神!
作者
Author:
PoorChaos    时间: 2023-12-25 10:46
yaoshi1206 发表于 2023-11-22 23:15
已按社长的博文方法(http://bbs.keinsci.com/thread-11848-1-1.html)编译好windows下cpu版的gmx2023.1 ...

分享一个出来
作者
Author:
wilely    时间: 2024-4-2 18:13
我按照第5项下载安装的windows版,里面各种力场文件都有吗》还是自己去下载?
作者
Author:
sobereva    时间: 2024-4-3 02:12
wilely 发表于 2024-4-2 18:13
我按照第5项下载安装的windows版,里面各种力场文件都有吗》还是自己去下载?


作者
Author:
wilely    时间: 2024-4-3 16:15
sobereva 发表于 2024-4-3 02:12

哦,谢谢。我笔记本cpu8核的,要设置吗?
作者
Author:
sobereva    时间: 2024-4-3 16:57
wilely 发表于 2024-4-3 16:15
哦,谢谢。我笔记本cpu8核的,要设置吗?

语义不明

如果是指做动力学用的核数设置,mdrun结合恰当的选项就完了,对windows和linux一样。所有这类常识知识在北京科音分子动力学与GROMACS培训班(http://www.keinsci.com/workshop/KGMX_content.html)里都有详细说明
作者
Author:
wilely    时间: 2024-5-19 18:08
刚学习使用,问个简单问题,模拟所需的top,gro,itp文件都准备好了,要把它们放在在该程序哪个目录下运行了。
作者
Author:
wilely    时间: 2024-5-19 19:57
我安装的软件top目录下,很多itp文件(像ffG431,ffG432)等打开出现error。 (, 下载次数 Times of downloads: 41) 。要怎么办》
作者
Author:
Seyilaxa    时间: 2024-5-19 20:14
wilely 发表于 2024-5-19 19:57
我安装的软件top目录下,很多itp文件(像ffG431,ffG432)等打开出现error。。要怎么办》

这个不是什么error,像文件中说的一样,自带的水模型和其他.itp文件被移到了各个力场的文件夹中,使用时.top中应该include力场文件夹中的.itp。如果是对大分子进行模拟,pdb2gmx能自动生成.top,不需要自己操心,只要按屏幕上的提示选择力场和水模型就行。
作者
Author:
wilely    时间: 2024-5-19 20:38
Seyilaxa 发表于 2024-5-19 20:14
这个不是什么error,像文件中说的一样,自带的水模型和其他.itp文件被移到了各个力场的文件夹中,使用时. ...

好的。谢谢
作者
Author:
wilely    时间: 2024-5-19 20:54
运行时出现错误。是什么问题?
作者
Author:
sobereva    时间: 2024-5-20 02:07
wilely 发表于 2024-5-19 20:54
运行时出现错误。是什么问题?

确保压缩包下载完整,并且尝试放到其它分区、关闭任何防护程序再试
作者
Author:
wilely    时间: 2024-5-25 21:06
Seyilaxa 发表于 2024-5-19 20:14
这个不是什么error,像文件中说的一样,自带的水模型和其他.itp文件被移到了各个力场的文件夹中,使用时. ...

我做有机小分子的模拟。sobtop准备小分子配体top文件。有些力场似乎没有,这个按照包是全的吗?
作者
Author:
Seyilaxa    时间: 2024-5-25 23:44
wilely 发表于 2024-5-25 21:06
我做有机小分子的模拟。sobtop准备小分子配体top文件。有些力场似乎没有,这个按照包是全的吗?

有些力场没有指的是什么,有一些力场属于gmx支持但是不自带,可以下载后解压到top文件夹里
作者
Author:
Christ    时间: 2024-6-7 01:58
各位老师好,我想请问,使用2020.6 CUDA GPU加速版,除了常规的Gromacs的引用,是否还需要引用此网页?因为您这个毕竟是motified的版本。谢谢各位指导!
作者
Author:
sobereva    时间: 2024-6-7 02:13
Christ 发表于 2024-6-7 01:58
各位老师好,我想请问,使用2020.6 CUDA GPU加速版,除了常规的Gromacs的引用,是否还需要引用此网页?因为 ...

不用
作者
Author:
Eudaimonia    时间: 2024-6-16 11:23
请问一下老师,我下载了 2020.6 CUDA GPU加速版,AVX2指令集,显卡型号4070,cuda驱动版本555.85;

在使用的过程中发现cpu占用率100%,显卡占用率0%,看起来是没有调用GPU导致的,这种情况应该怎样解决呢?
作者
Author:
sobereva    时间: 2024-6-16 19:23
Eudaimonia 发表于 2024-6-16 11:23
请问一下老师,我下载了 2020.6 CUDA GPU加速版,AVX2指令集,显卡型号4070,cuda驱动版本555.85;

在使 ...

尝试论坛里其他人编译的更新的gromacs windows GPU版




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3