PerPI is a tool-box addressing Instruction Level Parallelism measurement and analysis.
Based on Intel PIN, the first module, Pilp5, measures the upper bound of the ILP,
removing artificial dependancies and scheduling on the ideal Hennessy-Patterson machine.
It gives you as an input either the ILP summarized in a call-tree or the complete dynamic
dependance graph of the program. It also provides ILPmanager, an easy to use GUI project-manager.
It sets up and stores your experiment, drives the instrumentation, the execution,
and the ILP trace analysis and plots the result in various ways.
Instruction Level Parallelism (ILP)
PerPI definition of ILP:
ILP = N / C
- N is the number of executed instruction.
- Each instruction have its execution cycle "c".
- Each execution cycle is computed only with the producer/consumer dependencies (all instruction latencies are egal to 1).
- C is the maximum execution cycle over all executed instructions
What does the PerPI tools outputs?
An ILP profiling which is a call-tree providing for each call the number of instructions, number of cycles and the resulting ILP.
A set ILP histogram for each function call.
A set ILP trace for each function call.