GROMACS SYCL for NVIDIA GPUs

Yes.

If you are getting errors along the lines of “OpenMP not found”, you might have to add -DCMAKE_C_FLAGS=-isystem/opt/intel/oneapi/compiler/latest/linux/compiler/include/ -DCMAKE_CXX_FLAGS=-isystem/opt/intel/oneapi/compiler/latest/linux/compiler/include/ to your cmake call. Sometimes oneAPI installation might fail to find its own library.

full_output.log (1.6 MB)
CUDA version 12.1

1 Like

Thank you, I am comparing performance of CUDA Vs SYCL and see that SYCl outperformed the benchMEM and other 10 nm and 15 nm water dataset and CUDA was good only for 5 nm dataset.

I have one question is this regard, when running workflows via SYCL are these sub-groups automatically enabled ? and also are there any benchmarking results out ? so that we can compare against it.

Hi!

Sorry for not following up, I could not reproduce the issue with our available software at the time, but we only had CUDA 11.8 installed. I guess you managed to get it working? Did the new oneAPI version fix things?

Sub-groups are hardware property, so they are always enabled :) We do use sub-group level functionality on all GPUs in both CUDA and SYCL, so this should not cause any performance discrepancy.

A very extensive performance review has been recently shared by @Entropy_YU: A series of performance benchmarks for MD Apps, including GROMACS

Here’s the comparison with CUDA from their post:

80-85% is consistent with our internal measurements for systems of similar size (we did not run a thorough comparison)