1010from options import options
1111from utils .utils import git_clone , download , run , create_build_path
1212from utils .result import Result
13+ from utils .oneapi import get_oneapi
1314import re
1415
1516
@@ -19,7 +20,7 @@ def git_url(self):
1920 return "https://gitlab.com/gromacs/gromacs.git"
2021
2122 def git_tag (self ):
22- return "v2025.1 "
23+ return "v2025.2 "
2324
2425 def grappa_url (self ):
2526 return "https://zenodo.org/record/11234002/files/grappa-1.5k-6.1M_rc0.9.tar.gz"
@@ -60,6 +61,9 @@ def setup(self):
6061 # TODO: Detect the GPU architecture and set the appropriate flags
6162
6263 # Build GROMACS
64+
65+ self .oneapi = get_oneapi ()
66+
6367 run (
6468 [
6569 "cmake" ,
@@ -73,6 +77,7 @@ def setup(self):
7377 f"-DGMX_SYCL_ENABLE_EXPERIMENTAL_SUBMIT_API=ON" ,
7478 f"-DGMX_FFT_LIBRARY=MKL" ,
7579 f"-DGMX_GPU_FFT_LIBRARY=MKL" ,
80+ f"-DMKL_DIR={ self .oneapi .mkl_cmake ()} " ,
7681 f"-DGMX_GPU_NB_CLUSTER_SIZE=8" ,
7782 f"-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1" ,
7883 f"-DGMX_OPENMP=OFF" ,
@@ -82,6 +87,7 @@ def setup(self):
8287 run (
8388 f"cmake --build { self .gromacs_build_path } -j { options .build_jobs } " ,
8489 add_sycl = True ,
90+ ld_library = self .oneapi .ld_libraries (),
8591 )
8692 download (
8793 self .directory ,
@@ -152,6 +158,7 @@ def setup(self):
152158 self .conf_result = run (
153159 cmd_list ,
154160 add_sycl = True ,
161+ ld_library = self .suite .oneapi .ld_libraries (),
155162 )
156163
157164 def run (self , env_vars ):
@@ -192,11 +199,10 @@ def run(self, env_vars):
192199 env_vars ,
193200 add_sycl = True ,
194201 use_stdout = False ,
202+ ld_library = self .suite .oneapi .ld_libraries (),
195203 )
196204
197- if self .type == "pme" and not self ._validate_correctness (
198- options .benchmark_cwd + "/md.log"
199- ):
205+ if not self ._validate_correctness (options .benchmark_cwd + "/md.log" ):
200206 raise ValueError (
201207 f"Validation failed: Conserved energy drift exceeds threshold in { model_dir / 'md.log' } "
202208 )
@@ -237,7 +243,7 @@ def _extract_execution_time(self, log_content):
237243 raise ValueError (f"No numeric value found in the 'Time:' line." )
238244
239245 def _validate_correctness (self , log_file ):
240- threshold = 1e-3 # Define an acceptable energy drift threshold
246+ threshold = 1e-2 # Define an acceptable energy drift threshold
241247
242248 log_file = Path (log_file )
243249 if not log_file .exists ():
0 commit comments