From 809134a2b151f82c29593e64086393b31bc110b7 Mon Sep 17 00:00:00 2001 From: Dam Sunwoo Date: Tue, 23 Dec 2014 09:31:17 -0500 Subject: config: Add options to take/resume from SimPoint checkpoints More documentation at http://gem5.org/Simpoints Steps to profile, generate, and use SimPoints with gem5: 1. To profile workload and generate SimPoint BBV file, use the following option: --simpoint-profile --simpoint-interval Requires single Atomic CPU and fastmem. is in number of instructions. 2. Generate SimPoint analysis using SimPoint 3.2 from UCSD. (SimPoint 3.2 not included with this flow.) 3. To take gem5 checkpoints based on SimPoint analysis, use the following option: --take-simpoint-checkpoint=,,, and is generated by SimPoint analysis tool from UCSD. SimPoint 3.2 format expected. and are in number of instructions. 4. To resume from gem5 SimPoint checkpoints, use the following option: --restore-simpoint-checkpoint -r --checkpoint-dir is (SimPoint index + 1). E.g., "-r 1" will resume from SimPoint #0. --- configs/example/fs.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'configs/example') diff --git a/configs/example/fs.py b/configs/example/fs.py index 62a298559..6fa0f8a11 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -197,9 +197,18 @@ def build_test_system(np): if (options.caches or options.l2cache): fatal("You cannot use fastmem in combination with caches!") + if options.simpoint_profile: + if not options.fastmem: + # Atomic CPU checked with fastmem option already + fatal("SimPoint generation should be done with atomic cpu and fastmem") + if np > 1: + fatal("SimPoint generation not supported with more than one CPUs") + for i in xrange(np): if options.fastmem: test_sys.cpu[i].fastmem = True + if options.simpoint_profile: + test_sys.cpu[i].addSimPointProbe(options.simpoint_interval) if options.checker: test_sys.cpu[i].addCheckerCpu() test_sys.cpu[i].createThreads() -- cgit v1.2.3