This document provides instructions on how to do a bare metal install of AMD's Implementation of Gromacs with HIP in a Linux environment.
CPUs | GPUs | Operating Systems | ROCm™ Driver |
---|---|---|---|
X86_64 CPU(s) | AMD Instinct MI200 GPU(s) AMD Instinct MI100 GPU(s) |
Ubuntu 20.04 Ubuntu 22.04 RHEL8 RHEL9 SLES 15 sp4 |
ROCm v5.x compatibility ROCm v6.x compatibility |
For ROCm installation procedures and validation checks, see:
Application | Minimum | Recommended |
---|---|---|
Git | Latest | Latest |
ROCm | 5.3.0 | latest |
CMAKE | 3.22.2 | Latest |
OpenMPI (Optional) | 4.0.3 | 5.0.3 |
UCX (Optional) | 1.13.0 | 1.16.0 |
- Validate the Cluster/System has all of the above applications, with system path, library, and include environments set correctly. If you are unsure, the Dockerfile has examples of all useful configurations listed after the
ENV
commands. - Clone the GROMACS repository into your workspace. Use the 4947-hip-feature-enablement feature enablement branch to use the version with all supported features enabled..
git clone -b 4947-hip-feature-enablement https://gitlab.com/gromacs/gromacs.git
- Navigate to the
gromacs
folder and create a build folder within the workspace to build the code in.
cd gromacs
mkdir build
cd build
- Run cmake command. The variable
OPEN_MPI_ENABLED
has been included, please set it accordingly. By default GROMACS will build for a number of current AMD CDNA and RDNA architectures. You can change this by setting theGMX_HIP_TARGET_ARCH
variable to the exact architecture you want to build for
- Threaded MPI (Recommended):
off
- For OpenMPI:
on
cmake -DCMAKE_BUILD_TYPE=Release \
-DGMX_BUILD_OWN_FFTW=ON \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DGMX_MPI=${OPEN_MPI_ENABLED} \
-DGMX_GPU=HIP \
-DREGRESSIONTEST_DOWNLOAD=OFF \
..
- Complete the install with the following make commands
make -j $(nproc)
make install
- Adding Gromacs system environment variables
export GMX_ENABLE_DIRECT_GPU_COMM=1
export GMX_FORCE_UPDATE_DEFAULT_GPU=1
export ROC_ACTIVE_WAIT_TIMEOUT=0
export AMD_DIRECT_DISPATCH=1
Optional, By default Gomacs is installed to: /usr/local/gromacs
Adding Gromacs to the system PATH and Library path can be done as follows:
export PATH=$PATH:/user/local/gromacs/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/user/local/gromacs/lib
Your access and use of this application is subject to the terms of the applicable component-level license identified below. To the extent any subcomponent in this container requires an offer for corresponding source code, AMD hereby makes such an offer for corresponding source code form, which will be made available upon request. By accessing and using this application, you are agreeing to fully comply with the terms of this license. If you do not agree to the terms of this license, do not access or use this application.
The application is provided in a container image format that includes the following separate and independent components:
Package | License | URL |
---|---|---|
Ubuntu | Creative Commons CC-BY-SA Version 3.0 UK License | Ubuntu Legal |
CMAKE | OSI-approved BSD-3 clause | CMake License |
OpenMPI | BSD 3-Clause | OpenMPI License OpenMPI Dependencies Licenses |
OpenUCX | BSD 3-Clause | OpenUCX License |
ROCm | Custom/MIT/Apache V2.0/UIUC OSL | ROCm Licensing Terms |
Gromacs | LGPL 2.1 | Gromacs Gromacs License |
Additional third-party content in this container may be subject to additional licenses and restrictions. The components are licensed to you directly by the party that owns the content pursuant to the license terms included with such content and is not licensed to you by AMD. ALL THIRD-PARTY CONTENT IS MADE AVAILABLE BY AMD “AS IS” WITHOUT A WARRANTY OF ANY KIND. USE OF THE CONTAINER IS DONE AT YOUR SOLE DISCRETION AND UNDER NO CIRCUMSTANCES WILL AMD BE LIABLE TO YOU FOR ANY THIRD-PARTY CONTENT. YOU ASSUME ALL RISK AND ARE SOLELY RESPONSIBLE FOR ANY DAMAGES THAT MAY ARISE FROM YOUR USE OF THE CONTAINER.
The GROMACS source code and selected set of binary packages are available here: www.gromacs.org. GROMACS is Free Software, available under the GNU Lesser General Public License (LGPL), version 2.1. You can redistribute it and/or modify it under the terms of the LGPL as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
The information contained herein is for informational purposes only, and is subject to change without notice. While every precaution has been taken in the preparation of this document, it may contain technical inaccuracies, omissions and typographical errors, and AMD is under no obligation to update or otherwise correct this information. Advanced Micro Devices, Inc. makes no representations or warranties with respect to the accuracy or completeness of the contents of this document, and assumes no liability of any kind, including the implied warranties of noninfringement, merchantability or fitness for particular purposes, with respect to the operation or use of AMD hardware, software or other products described herein. No license, including implied or arising by estoppel, to any intellectual property rights is granted by this document. Terms and limitations applicable to the purchase or use of AMD’s products are as set forth in a signed agreement between the parties or in AMD's Standard Terms and Conditions of Sale. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
© 2021-2024 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo, Instinct, Radeon Instinct, ROCm, and combinations thereof are trademarks of Advanced Micro Devices, Inc.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
All other trademarks and copyrights are property of their respective owners and are only mentioned for informative purposes.