10
10
from options import options
11
11
from utils .utils import git_clone , download , run , create_build_path
12
12
from utils .result import Result
13
+ from utils .oneapi import get_oneapi
13
14
import re
14
15
15
16
@@ -19,7 +20,7 @@ def git_url(self):
19
20
return "https://gitlab.com/gromacs/gromacs.git"
20
21
21
22
def git_tag (self ):
22
- return "v2025.1 "
23
+ return "v2025.2 "
23
24
24
25
def grappa_url (self ):
25
26
return "https://zenodo.org/record/11234002/files/grappa-1.5k-6.1M_rc0.9.tar.gz"
@@ -60,6 +61,9 @@ def setup(self):
60
61
# TODO: Detect the GPU architecture and set the appropriate flags
61
62
62
63
# Build GROMACS
64
+
65
+ self .oneapi = get_oneapi ()
66
+
63
67
run (
64
68
[
65
69
"cmake" ,
@@ -73,6 +77,7 @@ def setup(self):
73
77
f"-DGMX_SYCL_ENABLE_EXPERIMENTAL_SUBMIT_API=ON" ,
74
78
f"-DGMX_FFT_LIBRARY=MKL" ,
75
79
f"-DGMX_GPU_FFT_LIBRARY=MKL" ,
80
+ f"-DMKL_DIR={ self .oneapi .mkl_cmake ()} " ,
76
81
f"-DGMX_GPU_NB_CLUSTER_SIZE=8" ,
77
82
f"-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1" ,
78
83
f"-DGMX_OPENMP=OFF" ,
@@ -82,6 +87,7 @@ def setup(self):
82
87
run (
83
88
f"cmake --build { self .gromacs_build_path } -j { options .build_jobs } " ,
84
89
add_sycl = True ,
90
+ ld_library = self .oneapi .ld_libraries (),
85
91
)
86
92
download (
87
93
self .directory ,
@@ -152,6 +158,7 @@ def setup(self):
152
158
self .conf_result = run (
153
159
cmd_list ,
154
160
add_sycl = True ,
161
+ ld_library = self .suite .oneapi .ld_libraries (),
155
162
)
156
163
157
164
def run (self , env_vars ):
@@ -192,11 +199,10 @@ def run(self, env_vars):
192
199
env_vars ,
193
200
add_sycl = True ,
194
201
use_stdout = False ,
202
+ ld_library = self .suite .oneapi .ld_libraries (),
195
203
)
196
204
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" ):
200
206
raise ValueError (
201
207
f"Validation failed: Conserved energy drift exceeds threshold in { model_dir / 'md.log' } "
202
208
)
@@ -237,7 +243,7 @@ def _extract_execution_time(self, log_content):
237
243
raise ValueError (f"No numeric value found in the 'Time:' line." )
238
244
239
245
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
241
247
242
248
log_file = Path (log_file )
243
249
if not log_file .exists ():
0 commit comments