Skip to content

Commit 1d19861

Browse files
authored
Merge pull request #2 from kraushm/19.04
[tsaTDS] 19.04
2 parents e1f7709 + 38bb239 commit 1d19861

File tree

5 files changed

+134
-11
lines changed

5 files changed

+134
-11
lines changed

cscs-checks/mch/automatic_arrays_acc.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class AutomaticArraysCheck(rfm.RegressionTest):
77
def __init__(self):
88
super().__init__()
9-
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn']
9+
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn', 'arolla:cn']
1010
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cce', 'PrgEnv-pgi']
1111
if self.current_system.name in ['daint', 'dom']:
1212
self.modules = ['craype-accel-nvidia60']
@@ -16,9 +16,18 @@ def __init__(self):
1616
# FIXME: workaround -- the variable should not be needed since
1717
# there is no GPUdirect in this check
1818
self.variables = {'MV2_USE_CUDA': '1'}
19+
elif self.current_system.name == 'arolla':
20+
self.exclusive_access = True
21+
self.modules = [
22+
'cuda92/toolkit/9.2.88',
23+
'craype-accel-nvidia70',
24+
]
1925
elif self.current_system.name == 'tsa':
2026
self.exclusive_access = True
21-
self.modules = ['craype-accel-nvidia70', 'cuda10.0/toolkit/10.0.130']
27+
self.modules = [
28+
'cuda10.0/toolkit/10.0.130',
29+
'craype-accel-nvidia70',
30+
]
2231

2332
# This tets requires an MPI compiler, although it uses a single task
2433
self.num_tasks = 1
@@ -36,6 +45,7 @@ def __init__(self):
3645
self.arrays_reference = {
3746
'PrgEnv-cce': {
3847
'kesch:cn': {'time': (2.9E-04, None, 0.15)},
48+
'arolla:cn': {'time': (2.9E-04, None, 0.15)},
3949
'tsa:cn': {'time': (2.9E-04, None, 0.15)},
4050
},
4151
'PrgEnv-cray': {
@@ -47,6 +57,7 @@ def __init__(self):
4757
'daint:gpu': {'time': (6.4E-05, None, 0.15)},
4858
'dom:gpu': {'time': (6.3E-05, None, 0.15)},
4959
'kesch:cn': {'time': (1.4E-04, None, 0.15)},
60+
'arolla:cn': {'time': (1.4E-04, None, 0.15)},
5061
'tsa:cn': {'time': (1.4E-04, None, 0.15)},
5162
}
5263
}
@@ -68,6 +79,8 @@ def setup(self, partition, environ, **job_opts):
6879
self.build_system.fflags += ['-ta=tesla,cc60', '-Mnorpath']
6980
elif self.current_system.name == 'kesch':
7081
self.build_system.fflags += ['-ta=tesla,cc35,cuda9.2']
82+
elif self.current_system.name == 'arolla':
83+
self.build_system.fflags += ['-ta=tesla,cc70,cuda9.2']
7184
elif self.current_system.name == 'tsa':
7285
self.build_system.fflags += ['-ta=tesla,cc70,cuda10.0']
7386
else:

cscs-checks/mch/collectives_halo.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
class CommunicationTestBase(rfm.RegressionTest):
66
def __init__(self, variant, bench_reference):
77
super().__init__()
8-
self.valid_systems = ['dom:gpu', 'daint:gpu', 'kesch:cn']
8+
self.valid_systems = ['dom:gpu', 'daint:gpu', 'kesch:cn', 'arolla:cn', 'tsa:cn']
99
self.valid_prog_environs = ['PrgEnv-gnu']
1010
self.variables = {'G2G': '1'}
1111
self.executable = 'build/src/comm_overlap_benchmark'
@@ -40,6 +40,34 @@ def __init__(self, variant, bench_reference):
4040
'-DCUDA_COMPUTE_CAPABILITY="sm_60"'
4141
]
4242
self.build_system.max_concurrency = 8
43+
elif self.current_system.name == 'arolla':
44+
self.exclusive_access = True
45+
self.num_tasks = 16
46+
self.num_gpus_per_node = 8
47+
self.modules = [
48+
'cmake',
49+
'cuda92/toolkit/9.2.88',
50+
]
51+
self.variables['MV2_USE_CUDA'] = '1'
52+
self.variables['MPICH_RDMA_ENABLED_CUDA'] = '1'
53+
self.build_system.config_opts += [
54+
'-DMPI_VENDOR=openmpi',
55+
'-DCUDA_COMPUTE_CAPABILITY="sm_70"'
56+
]
57+
elif self.current_system.name == 'tsa':
58+
self.exclusive_access = True
59+
self.num_tasks = 16
60+
self.num_gpus_per_node = 8
61+
self.modules = [
62+
'cmake',
63+
'cuda10.0/toolkit/10.0.130',
64+
]
65+
self.variables['MV2_USE_CUDA'] = '1'
66+
self.variables['MPICH_RDMA_ENABLED_CUDA'] = '1'
67+
self.build_system.config_opts += [
68+
#'-DMPI_VENDOR=mvapich2',
69+
'-DCUDA_COMPUTE_CAPABILITY="sm_70"'
70+
]
4371
else:
4472
self.num_tasks = 4
4573
self.num_gpus_per_node = 1
@@ -77,6 +105,12 @@ def __init__(self, variant, bench_reference):
77105
'kesch:cn': {
78106
'elapsed_time': (ref, None, 0.15)
79107
},
108+
'arolla:cn': {
109+
'elapsed_time': (ref, None, 0.15)
110+
},
111+
'tsa:cn': {
112+
'elapsed_time': (ref, None, 0.15)
113+
},
80114
'daint': {
81115
'elapsed_time': (ref, None, 0.15)
82116
},
@@ -93,7 +127,8 @@ def __init__(self, variant, bench_reference):
93127

94128
def setup(self, *args, **kwargs):
95129
super().setup(*args, **kwargs)
96-
if self.current_system.name == 'kesch':
130+
#if self.current_system.name == 'kesch':
131+
if self.current_system.name in {'kesch', 'tsa', 'arolla'}:
97132
self.job.launcher.options = ['--distribution=block:block',
98133
'--cpu_bind=q']
99134

cscs-checks/mch/gpu_direct_acc.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class GpuDirectAccCheck(rfm.RegressionTest):
77
def __init__(self):
88
super().__init__()
99
self.descr = 'tests gpu-direct for Fortran OpenACC'
10-
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn']
10+
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn', 'arolla:cn']
1111

1212
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cce', 'PrgEnv-pgi']
1313
if self.current_system.name in ['daint', 'dom']:
@@ -26,9 +26,25 @@ def __init__(self):
2626
self.num_tasks = 8
2727
self.num_gpus_per_node = 8
2828
self.num_tasks_per_node = 8
29+
elif self.current_system.name == 'arolla':
30+
self.exclusive_access = True
31+
self.modules = [
32+
'cuda92/toolkit/9.2.88',
33+
'craype-accel-nvidia70',
34+
]
35+
self.variables = {
36+
'MV2_USE_CUDA': '1',
37+
'G2G': '1'
38+
}
39+
self.num_tasks = 8
40+
self.num_gpus_per_node = 8
41+
self.num_tasks_per_node = 8
2942
elif self.current_system.name == 'tsa':
3043
self.exclusive_access = True
31-
self.modules = ['craype-accel-nvidia70', 'cuda10.0/toolkit/10.0.130']
44+
self.modules = [
45+
'cuda10.0/toolkit/10.0.130',
46+
'craype-accel-nvidia70',
47+
]
3248
self.variables = {
3349
'MV2_USE_CUDA': '1',
3450
'G2G': '1'
@@ -58,6 +74,8 @@ def setup(self, partition, environ, **job_opts):
5874
self.build_system.fflags += ['-ta=tesla:cc60', '-Mnorpath']
5975
elif self.current_system.name == 'kesch':
6076
self.build_system.fflags += ['-ta=tesla:cc35']
77+
elif self.current_system.name == 'arolla':
78+
self.build_system.fflags += ['-ta=tesla:cc70']
6179
elif self.current_system.name == 'tsa':
6280
self.build_system.fflags += ['-ta=tesla:cc70']
6381

cscs-checks/mch/gpu_direct_cuda.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class GpuDirectCudaCheck(rfm.RegressionTest):
88
def __init__(self):
99
super().__init__()
1010
self.descr = 'tests gpu-direct for CUDA'
11-
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn']
11+
self.valid_systems = ['daint:gpu', 'dom:gpu', 'kesch:cn', 'tsa:cn', 'arolla:cn']
1212
self.valid_prog_environs = ['PrgEnv-gnu']
1313
self.sourcepath = 'gpu_direct_cuda.cu'
1414
self.build_system = 'SingleSource'
@@ -26,6 +26,15 @@ def __init__(self):
2626
'G2G': '1',
2727
}
2828
self.build_system.cxxflags = ['-ccbin', 'mpicxx', '-arch=sm_37']
29+
elif self.current_system.name == 'arolla':
30+
self.exclusive_access = True
31+
self.valid_prog_environs = ['PrgEnv-gnu']
32+
self.modules = ['cuda92/toolkit/9.2.88']
33+
self.variables = {
34+
'MV2_USE_CUDA': '1',
35+
'G2G': '1',
36+
}
37+
self.build_system.cxxflags = ['-ccbin', 'mpicxx', '-arch=sm_70']
2938
elif self.current_system.name == 'tsa':
3039
self.exclusive_access = True
3140
self.valid_prog_environs = ['PrgEnv-gnu']

cscs-checks/mch/openacc_cuda_mpi_cppstd.py

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)