Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 8 additions & 11 deletions cscs-checks/cuda/cuda_memtest_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,27 @@


@rfm.simple_test
class FlexibleCudaMemtest(rfm.RegressionTest):
class CudaMemtest(rfm.RegressionTest):
def __init__(self):
super().__init__()
self.valid_systems = ['daint:gpu', 'dom:gpu']
self.valid_prog_environs = ['PrgEnv-cray']
self.descr = 'Flexible Cuda Memtest'
self.descr = 'Flexible CUDA Memtest'
self.maintainers = ['TM', 'VK']
self.num_tasks_per_node = 1
self.num_tasks = 0
self.num_gpus_per_node = 1
self.modules = ['cudatoolkit']
self.sourcesdir = None
src_url = ('https://downloads.sourceforge.net/project/cudagpumemtest/'
'cuda_memtest-1.2.3.tar.gz')
self.prebuild_cmd = [
'wget %s' % src_url,
'tar -xzf cuda_memtest-1.2.3.tar.gz --strip-components=1'
'tar -xzf cuda_memtest-1.2.3.tar.gz',
'cd cuda_memtest-1.2.3',
'patch -p1 < ../cuda_memtest-1.2.3.patch'
]
self.executable = 'cuda_memtest_sm20'
self.build_system = 'Make'
self.executable = './cuda_memtest-1.2.3/cuda_memtest'
self.executable_opts = ['--disable_test', '6', '--num_passes', '1']

valid_test_ids = {i for i in range(11) if i not in {6, 9}}
Expand All @@ -35,14 +37,9 @@ def __init__(self):
*assert_finished_tests,
sn.assert_not_found('(?i)ERROR', self.stdout),
sn.assert_not_found('(?i)ERROR', self.stderr)])
self.tags = {'diagnostic', 'ops'}

@property
@sn.sanity_function
def num_tasks_assigned(self):
return self.job.num_tasks

def compile(self):
# Here we set the target executable since by default the Makefile
# builds both cuda_memtest_sm13 and cuda_memtest_sm20.
# sm20 is the maximum gpu architecture supported by cuda memtest.
super().compile(options='cuda_memtest_sm20')
16 changes: 16 additions & 0 deletions cscs-checks/cuda/src/cuda_memtest-1.2.3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Binary files cuda_memtest-1.2.3-orig/cuda_memtest and cuda_memtest-1.2.3/cuda_memtest differ
Binary files cuda_memtest-1.2.3-orig/cuda_memtest.o and cuda_memtest-1.2.3/cuda_memtest.o differ
diff -urN cuda_memtest-1.2.3-orig/Makefile cuda_memtest-1.2.3/Makefile
--- cuda_memtest-1.2.3-orig/Makefile 2012-02-06 21:39:33.000000000 +0100
+++ cuda_memtest-1.2.3/Makefile 2019-02-15 10:16:10.769307000 +0100
@@ -54,7 +54,7 @@

CUDA_INCLUDES := -I. -I${CUDA_INSTALL_PATH}/include
CUDALIB := -L${CUDA_INSTALL_PATH}/lib64 -lcuda -lcudart -lpthread
-CFLAGS= -arch sm_13 -DSM_13 -O3
+CFLAGS= -arch sm_60 -DSM_60 -O3
CFLAGS_SM10= -arch sm_10 -DSM_10 -O3
CFLAGS_SM20= -arch sm_20 -DSM_20 -O3
CUDA_SRC_FILES= cuda_memtest.cu misc.cpp tests.cu
Binary files cuda_memtest-1.2.3-orig/misc.o and cuda_memtest-1.2.3/misc.o differ
Binary files cuda_memtest-1.2.3-orig/tests.o and cuda_memtest-1.2.3/tests.o differ
1 change: 1 addition & 0 deletions cscs-checks/microbenchmarks/gpu_burn/gpu_burn_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def __init__(self):
self.num_tasks_per_node = 1

self.maintainers = ['AJ', 'VK', 'TM']
self.tags = {'diagnostic', 'benchmark'}

@property
@sn.sanity_function
Expand Down
4 changes: 2 additions & 2 deletions cscs-checks/microbenchmarks/hpcg/hpcg_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def __init__(self):
}

self.maintainers = ['SK']
self.tags = {'diagnostic'}
self.tags = {'diagnostic', 'benchmark'}

@property
@sn.sanity_function
Expand Down Expand Up @@ -122,7 +122,7 @@ def __init__(self):
}

self.maintainers = ['SK']
self.tags = {'diagnostic'}
self.tags = {'diagnostic', 'benchmark'}

@property
@sn.sanity_function
Expand Down
40 changes: 0 additions & 40 deletions cscs-checks/microbenchmarks/mpi/mpi_helloworld.py

This file was deleted.

27 changes: 0 additions & 27 deletions cscs-checks/microbenchmarks/osu/flexible_a2a.py

This file was deleted.

26 changes: 25 additions & 1 deletion cscs-checks/microbenchmarks/osu/osu_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def __init__(self, variant):
super().__init__()
self.strict_check = False
self.valid_systems = ['daint:gpu', 'dom:gpu']
self.descr = 'Alltoall osu microbenchmark'
self.descr = 'Alltoall OSU microbenchmark'
self.build_system = 'Make'
self.build_system.makefile = 'Makefile_alltoall'
self.executable = './osu_alltoall'
Expand Down Expand Up @@ -48,6 +48,30 @@ def __init__(self, variant):
}


@rfm.simple_test
class FlexAlltoallTest(rfm.RegressionTest):
def __init__(self):
super().__init__()
self.valid_systems = ['daint:gpu', 'daint:mc',
'dom:gpu', 'dom:mc',
'kesch:cn', 'kesch:pn', 'leone:normal']
self.valid_prog_environs = ['PrgEnv-cray']
if self.current_system.name == 'kesch':
self.exclusive_access = True
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu',
'PrgEnv-intel']

self.descr = 'Flexible Alltoall OSU test'
self.build_system = 'Make'
self.build_system.makefile = 'Makefile_alltoall'
self.executable = './osu_alltoall'
self.maintainers = ['RS', 'VK']
self.num_tasks_per_node = 1
self.num_tasks = 0
self.sanity_patterns = sn.assert_found(r'^1048576', self.stdout)
self.tags = {'diagnostic', 'ops'}


# FIXME: This test is obsolete; it is kept only for reference.
@rfm.parameterized_test(*({'num_tasks': i} for i in range(2, 10, 2)))
class AlltoallMonchAcceptanceTest(AlltoallTest):
Expand Down
32 changes: 32 additions & 0 deletions cscs-checks/prgenv/mpi.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,35 @@ def __init__(self, required_thread):
])
self.maintainers = ['JG']
self.tags = {'production'}


@rfm.simple_test
class MpiHelloTest(rfm.RegressionTest):
def __init__(self):
super().__init__()
self.valid_systems = ['daint:gpu', 'daint:mc',
'dom:gpu', 'dom:mc',
'kesch:cn', 'kesch:pn',
'leone:normal', 'monch:compute']
self.valid_prog_environs = ['PrgEnv-cray']
if self.current_system.name == 'kesch':
self.exclusive_access = True
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu',
'PrgEnv-intel']

self.descr = 'MPI Hello World'
self.sourcepath = 'mpi_helloworld.c'
self.maintainers = ['RS', 'VK']
self.num_tasks_per_node = 1
self.num_tasks = 0
num_processes = sn.extractsingle(
r'Received correct messages from (?P<nprocs>\d+) processes',
self.stdout, 'nprocs', int)
self.sanity_patterns = sn.assert_eq(num_processes,
self.num_tasks_assigned-1)
self.tags = {'diagnostic', 'ops'}

@property
@sn.sanity_function
def num_tasks_assigned(self):
return self.job.num_tasks