Skip to content
Merged
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
31 changes: 15 additions & 16 deletions cscs-checks/tools/profiling_and_debugging/intel_advisor_roofline.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
@rfm.required_version('>=2.14')
@rfm.parameterized_test(*[[repeat, toolsversion, datalayout]
for repeat in ['100000']
for toolsversion in ['591264']
for toolsversion in ['597843']
for datalayout in ['G3_AOS_SCALAR', 'G3_SOA_SCALAR',
'G3_AOS_VECTOR', 'G3_SOA_VECTOR']
])
class IntelRooflineTest(rfm.RegressionTest):
class IntelRooflineAdvisorTest(rfm.RegressionTest):
'''This test checks the values reported by Intel Advisor's roofline model:
https://software.intel.com/en-us/intel-advisor-xe

Expand All @@ -30,19 +30,13 @@ class IntelRooflineTest(rfm.RegressionTest):
def __init__(self, repeat, toolsversion, datalayout):
super().__init__()
self.descr = 'Roofline Analysis test with Intel Advisor'
self.valid_systems = ['daint:mc']
self.valid_systems = ['daint:mc', 'dom:mc']
# Reporting MFLOPS is not available on Intel Haswell cpus, see
# https://www.intel.fr/content/dam/www/public/us/en/documents/manuals/
# 64-ia-32-architectures-software-developer-vol-1-manual.pdf
self.valid_prog_environs = ['PrgEnv-intel']
# Using advisor/2019 because tests with advisor/2018 (build 551025)
# raised failures:
# roof.dir/nid00753.000/trc000/trc000.advixe
# Application exit code: 139
# advisor/2019 is currently broken on dom ("Exceeded job memory limit")
self.modules = ['advisor/2019_update3']
self.prgenv_flags = {
'PrgEnv-intel': ['-O2', '-g', '-std=c++11'],
'PrgEnv-intel': ['-g', '-O2', '-std=c++11'],
}
self.sourcesdir = os.path.join(self.current_system.resourcesdir,
'roofline', 'intel_advisor')
Expand All @@ -51,6 +45,11 @@ def __init__(self, repeat, toolsversion, datalayout):
'sed -e "s-XXXX-%s-" -e "s-YYYY-%s-" %s &> %s' %
(repeat, datalayout, 'roofline_template.cpp', '_roofline.cpp')
]
# Using advisor/2019 because tests with advisor/2018 (build 551025)
# raised failures:
# roof.dir/nid00753.000/trc000/trc000.advixe
# Application exit code: 139
self.modules = ['advisor/2019_update4']
self.num_tasks = 1
self.num_tasks_per_node = 1
self.num_cpus_per_task = 1
Expand Down Expand Up @@ -91,32 +90,32 @@ def __init__(self, repeat, toolsversion, datalayout):
sn.assert_reference(sn.extractsingle(
r'^L1\sbandwidth\s\(single-threaded\)\s+(?P<L1bw>\d+)\s+'
r'memory$', self.roofline_ref, 'L1bw', int),
L1bw, -0.08, 0.08),
L1bw, -0.12, 0.08),
# check --report=roofs (L2 bandwidth):
sn.assert_reference(sn.extractsingle(
r'^L2\sbandwidth\s\(single-threaded\)\s+(?P<L2bw>\d+)\s+'
r'memory$', self.roofline_ref, 'L2bw', int),
L2bw, -0.08, 0.08),
L2bw, -0.12, 0.08),
# check --report=roofs (L3 bandwidth):
sn.assert_reference(sn.extractsingle(
r'^L3\sbandwidth\s\(single-threaded\)\s+(?P<L3bw>\d+)\s+'
r'memory$', self.roofline_ref, 'L3bw', int),
L3bw, -0.08, 0.08),
L3bw, -0.12, 0.08),
# check --report=roofs (DP FMA):
sn.assert_reference(sn.extractsingle(
r'^DP Vector FMA Peak\s\(single-threaded\)\s+'
r'(?P<DPfmabw>\d+)\s+compute$', self.roofline_ref,
'DPfmabw', int), DPfmabw, -0.08, 0.08),
'DPfmabw', int), DPfmabw, -0.12, 0.08),
# check --report=roofs (DP Add):
sn.assert_reference(sn.extractsingle(
r'^DP Vector Add Peak\s\(single-threaded\)\s+'
r'(?P<DPaddbw>\d+)\s+compute$', self.roofline_ref,
'DPaddbw', int), DPaddbw, -0.08, 0.08),
'DPaddbw', int), DPaddbw, -0.12, 0.08),
# check --report=roofs (Scalar Add):
sn.assert_reference(sn.extractsingle(
r'^Scalar Add Peak\s\(single-threaded\)\s+'
r'(?P<ScalarAddbw>\d+)\s+compute$', self.roofline_ref,
'ScalarAddbw', int), ScalarAddbw, -0.08, 0.08),
'ScalarAddbw', int), ScalarAddbw, -0.12, 0.08),
# --- check Arithmetic_intensity:
sn.assert_reference(sn.extractsingle(
r'^returned\sAI\sgap\s=\s(?P<Intensity>.*)', self.roofline_rpt,
Expand Down