Hi All,


I was trying to do Simpoint Analysis for a benchmark in LLVM-Test Suite. I
used the following references:

1.
http://cluelessram.blogspot.com/2017/10/using-simpoint-in-gem5-to-speed-up_11.html

2. http://gem5.org/Simpoints



Following are the steps I followed for Simpoint Analysis:



1. I downloaded the LLVM Test Suite and cross compiled with an ARM cross
compiler.



2. i ran the following command to generate simpoint.bb.gz (basic block
vectors):



./build/ARM/gem5.opt configs/example/se.py --cpu-type=AtomicSimpleCPU
--cmd=../LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Puzzle
--simpoint-profile --simpoint-interval 10000000



3. Downloaded the simpoint software from
http://cseweb.ucsd.edu/~calder/simpoint/simpoint-3-0.htm and ran the
following command to generate simpoints and their corresponding weights



./simpoint -loadFVFile simpoint.bb.gz -maxK 30 -saveSimpoints
simpoint_pts_Puzzle -saveSimpointWeights simpoint_wts_Puzzle
-inputVectorsGzipped



4. Created checkpoints using the following command:



./build/ARM/gem5.opt configs/example/se.py --cpu-type=AtomicSimpleCPU
--cmd=../LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Puzzle
--take-simpoint-checkpoint=Simpoints_and_Weights/simpoint_Puzzle_pts,Simpoints_and_Weights/simpoint_Puzzle_wts,
10000000,10000000



which generated checkpoints in m5out/



5. Now to resume from a checkpoint and get the stats I ran the following
command:



./build/ARM/gem5.opt configs/example/se.py --restore-simpoint-checkpoint -r
1 --checkpoint-dir m5out/ --cpu-type=AtomicSimpleCPU
--restore-with-cpu=O3_ARM_v7a_3 --caches
--cmd=../LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Puzzle



When i ran the entire benchmark with the following command



./build/ARM/gem5.opt configs/example/se.py --cpu-type=O3_ARM_v7a_3 --caches
--cmd=../LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Puzzle



I got the following stats:



system.cpu.timesIdled                             291
# Number of times that the entire CPU went into an idle state and
unscheduled itself

system.cpu.idleCycles                           31129
# Total number of cycles that the CPU has spent unscheduled due to idling

system.cpu.committedInsts                  1630225413
# Number of Instructions Simulated

system.cpu.committedOps                    1634923553
# Number of Ops (including micro ops) Simulated

system.cpu.cpi                               0.571180
       # CPI: Cycles Per Instruction

system.cpu.cpi_total                         0.571180
# CPI: Total CPI of All Threads

system.cpu.ipc                               1.750763
# IPC: Instructions Per Cycle

system.cpu.ipc_total                         1.750763
# IPC: Total IPC of All Threads



When I ran gem5 for one of the checkpoint i got the following stat: (other
checkpoints also have similar stats)



system.cpu.idleCycles                             235
# Total number of cycles that the CPU has spent unscheduled due to idling

system.cpu.committedInsts                           1
# Number of Instructions Simulated

system.cpu.committedOps                             1
# Number of Ops (including micro ops) Simulated

system.cpu.cpi                             302.000000
# CPI: Cycles Per Instruction

system.cpu.cpi_total                       302.000000
                  # CPI: Total CPI of All Threads

system.cpu.ipc                               0.003311
# IPC: Instructions Per Cycle

system.cpu.ipc_total                         0.003311
# IPC: Total IPC of All Threads



Could someone tell me why the number of committed instructions in the stats
from the checkpoint is only 1. Am i going wrong in any of the above steps?
Please, help.



-- 

Thanks and regards

Siva Sankar G




-- 
Thanks and regards
Siva Sankar G
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to