GROMACS version: 2024.2; AdaptiveCpp version: Latest from github (as of 7-19-2024)
GROMACS modification: No
I’ve recently been using gromacs 2023.4 and gromacs 2024.2 on an HPC system with AMD gpus (M210 and M250); however, after a recent software stack update my latest builds using AdaptiveCpp 0.9.4 weren’t working properly so I decided to take the opportunity to update my builds to the latest version of AdaptiveCpp and use a more up-to-date ROCM (previously I was using ROCM 5.3.0, I am now targeting 5.7.1).
Building AdaptiveCpp seems to go just fine, however, when I try to build gromacs I end up with the following error:
[code] Cmake error:
– Checking for valid AdaptiveCpp/hipSYCL compiler
– Checking for valid AdaptiveCpp/hipSYCL compiler - Success
– Checking for AdaptiveCpp/hipSYCL CUDA target
– Checking for AdaptiveCpp/hipSYCL CUDA target - Disabled
– Checking for AdaptiveCpp/hipSYCL HIP target
– Checking for AdaptiveCpp/hipSYCL HIP target - Disabled
– Checking for AdaptiveCpp/hipSYCL LevelZero target
– Checking for AdaptiveCpp/hipSYCL LevelZero target - Disabled
– Checking for AdaptiveCpp/hipSYCL generic target
– Checking for AdaptiveCpp/hipSYCL generic target - Disabled
CMake Warning at cmake/gmxManageSyclAdaptiveCpp.cmake:197 (message):
AdaptiveCpp/hipSYCL has no GPU targets set! Please, specify target hardware
with -DHIPSYCL_TARGETS CMake option
Call Stack (most recent call first):
cmake/gmxManageSycl.cmake:45 (include)
CMakeLists.txt:704 (include)
[\code]
Below are is my AdaptiveCpp build settings, the top of my acpp-info command, and my gromacs cmake input.
AdaptiveCpp:
(Note using boost 1.84)
git clone git clone “https:// github . com/AdaptiveCpp/AdaptiveCpp” <–note extra spaces were added just for this forum post
cd AdaptiveCpp
mkdir build && cd build
cmake -DWITH_ACCCELERATED_CPU=OFF -DWITH_SSCP_COMPILER=OFF -DAMDDeviceLib_DIR=/opt/rocm-5.7.1/lib/cmake/AMDDeviceLibs
-DAMDGPU_TARGETS=‘hip:gfx90a,gfx906,gfx908’ -DCLANG_EXECUTABLE_PATH=/opt/rocm-5.7.1/llvm/bin/clang++ -DHIP_DIR=/opt/rocm-5.7.1/lib/cmake/hip -DWITH_ROCM_BACKEND=ON
-DCMAKE_INSTALL_PREFIX=‘/home/m/AdaptiveCpp_new/’
acpp-info output (note my head-node, where I am compiling, has an MI210 but my compute node has an MI250x)
=================Backend information===================
Loaded backend 0: HIP
Found device: AMD Instinct MI210
Loaded backend 1: OpenMP
Found device: hipSYCL OpenMP host device
=================Device information===================
***************** Devices for backend HIP *****************
Device 0:
General device information:
Name: AMD Instinct MI210
Backend: HIP
Vendor: AMD
Arch: gfx90a:sramecc+:xnack-
Driver version: 50731921
Is CPU: 0
Is GPU: 1
Gromacs:
cmake -DGMX_MPI=on -DGMX_GPU=SYCL -DGMX_SYCL=ACPP -DCMAKE_INSTALL_PREFIX=/lustre/orion/proj-shared/bie122/gromacs2024.2-7_17 -DGMX_HEFFTE=ON -DCMAKE_C_COMPILER=/opt/rocm-5.7.1/llvm/bin/clang -DCMAKE_CXX_COMPILER=/opt/rocm-5.7.1/llvm/bin/clang++ -DHIPSYCL_TARGETS=‘hip:gfx90a,gfx908,gfx906’ -Dadaptivecpp_DIR=‘/home/m/AdaptiveCpp/lib/cmake/AdaptiveCpp/’ -Dhipsycl_DIR=‘/home/m/AdaptiveCpp/lib/cmake/hipSycl/’ -DACPP_ROCM_PATH=/opt/rocm-5.7.1/ -DGMX_USE_HEFFTE=ON -DGMX_GPU_FFT_LIBRARY=‘rocFFT’
I’ve tried several re-builds of AdaptiveCpp with slight variations, but I consistently find that I acpp-info reports the HIP backend being present, but gromacs can’t seem to find it. Any suggestions?