@@ -7,8 +7,8 @@ class OpenaccCudaCpp(rfm.RegressionTest):
77 def __init__ (self ):
88 super ().__init__ ()
99 self .descr = 'test for OpenACC, CUDA, MPI, and C++'
10- self .valid_systems = ['daint:gpu' , 'dom:gpu' , 'kesch:cn' , 'tsa:cn' ]
11- self .valid_prog_environs = ['PrgEnv-cray' , 'PrgEnv-pgi' , 'PrgEnv-gnu' ]
10+ self .valid_systems = ['daint:gpu' , 'dom:gpu' , 'kesch:cn' , 'tsa:cn' , 'arolla:cn' ]
11+ self .valid_prog_environs = ['PrgEnv-cray' , 'PrgEnv-pgi' , 'PrgEnv-pgi-nompi' , 'PrgEnv- gnu' ]
1212 self .build_system = 'Make'
1313 self .build_system .fflags = ['-O2' ]
1414 if self .current_system .name in ['daint' , 'dom' ]:
@@ -24,9 +24,16 @@ def __init__(self):
2424 self .num_tasks_per_node = 8
2525 self .num_gpus_per_node = 8
2626 self .build_system .options = ['NVCC_FLAGS="-arch=compute_37"' ]
27+ elif self .current_system .name == 'arolla' :
28+ self .exclusive_access = True
29+ self .modules = ['cuda92/toolkit/9.2.88' ]
30+ self .num_tasks = 8
31+ self .num_tasks_per_node = 8
32+ self .num_gpus_per_node = 8
33+ self .build_system .options = ['NVCC_FLAGS="-arch=compute_70"' ]
2734 elif self .current_system .name == 'tsa' :
2835 self .exclusive_access = True
29- self .modules = ['craype-accel-nvidia70' , ' cuda10.0/toolkit/10.0.130' ]
36+ self .modules = ['cuda10.0/toolkit/10.0.130' ]
3037 self .num_tasks = 8
3138 self .num_tasks_per_node = 8
3239 self .num_gpus_per_node = 8
@@ -41,6 +48,11 @@ def __init__(self):
4148 'MV2_USE_CUDA' : '1' ,
4249 'G2G' : '1'
4350 }
51+ elif self .current_system .name in ['arolla' ]:
52+ self .variables = {
53+ 'MV2_USE_CUDA' : '1' ,
54+ 'G2G' : '1'
55+ }
4456 elif self .current_system .name in ['tsa' ]:
4557 self .variables = {
4658 'MV2_USE_CUDA' : '1' ,
@@ -65,19 +77,55 @@ def setup(self, partition, environ, **job_opts):
6577 self .build_system .fflags += ['-ta=tesla,cc35,cuda8.0' ]
6678 self .build_system .ldflags = ['-acc' , '-ta:tesla:cc35,cuda8.0' ,
6779 '-lstdc++' ]
80+ if environ .name == 'PrgEnv-pgi-nompi' :
81+ self .build_system .ldflags += [
82+ '-L/global/opt/nvidia/cudatoolkit/8.0.61/lib64' ,
83+ '-lcublas' , '-lcudart'
84+ ]
85+ elif self .current_system .name == 'arolla' :
86+ self .build_system .fflags += ['-ta=tesla,cc70,cuda10.0' ]
87+ self .build_system .ldflags = ['-acc' , '-ta:tesla:cc70,cuda10.0' ,
88+ '-lstdc++' , '-L/cm/shared/apps/cuda92/toolkit/9.2.88/lib64' ,
89+ '-lcublas' , '-lcudart'
90+ ]
91+ if environ .name == 'PrgEnv-pgi-nompi' :
92+ self .build_system .fflags += [
93+ '-ta=tesla,cc70,cuda9.2' ,
94+ '-I${EBROOTOPENMPI}/include'
95+ ]
96+ self .build_system .ldflags += [
97+ '-L${EBROOTOPENMPI}/lib' , '-lmpi_mpifh' ,
98+ '-L/cm/shared/apps/cuda92/toolkit/9.2.88/lib64' ,
99+ '-lcublas' , '-lcudart'
100+ ]
68101 elif self .current_system .name == 'tsa' :
69102 self .build_system .fflags += ['-ta=tesla,cc70,cuda10.0' ]
70103 self .build_system .ldflags = ['-acc' , '-ta:tesla:cc70,cuda10.0' ,
71- '-lstdc++' '-L/cm/shared/apps/cuda10.0/toolkit/10.0.130/lib64' ,
104+ '-lstdc++' , '-L/cm/shared/apps/cuda10.0/toolkit/10.0.130/lib64' ,
72105 '-lcublas' , '-lcudart'
73106 ]
107+ if environ .name == 'PrgEnv-pgi-nompi' :
108+ self .build_system .fflags += [
109+ '-ta=tesla,cc70,cuda10.0' ,
110+ '-I${EBROOTOPENMPI}/include'
111+ ]
112+ self .build_system .ldflags += [
113+ '-L${EBROOTOPENMPI}/lib' , '-lmpi_mpifh' ,
114+ '-L/cm/shared/apps/cuda10.0/toolkit/10.0.130/lib64' ,
115+ '-lcublas' , '-lcudart'
116+ ]
74117 elif environ .name .startswith ('PrgEnv-gnu' ):
75118 self .build_system .ldflags = ['-lstdc++' ]
76119 if self .current_system .name == 'kesch' :
77120 self .build_system .ldflags += [
78121 '-L/global/opt/nvidia/cudatoolkit/8.0.61/lib64' ,
79122 '-lcublas' , '-lcudart'
80123 ]
124+ if self .current_system .name == 'arolla' :
125+ self .build_system .ldflags += [
126+ '-L/cm/shared/apps/cuda92/toolkit/9.2.88/lib64' ,
127+ '-lcublas' , '-lcudart'
128+ ]
81129 if self .current_system .name == 'tsa' :
82130 self .build_system .ldflags += [
83131 '-L/cm/shared/apps/cuda10.0/toolkit/10.0.130/lib64' ,
0 commit comments