An attempt to adapt gem5 output to McPAT input. This version is implemented in Bison, Flex and C/C++. It also uses the library RapidXML for C++. Based on Fernando Endo's notes [1], this parser extracts the parameters and statistics from the output of gem5, 'config.ini' and 'stats.txt', and fills the equivalent fields in a XML based on 'template.xml'.
To compile this version:
make
To run the parser and generate 'output.xml':
make run
It is also possible to run as (all these options are mandatory):
./gem5McPATparse -x <template_file> -c <config_file> -s <stats_file> -o <output_file>
./gem5McPATparse --xmltempalte <template_file> --config <config_file> --stats <stats_file> --output <output_file>
In order to get help from the program:
./gem5McPATparse -h
It has been tested in a Linux distribution with gcc version 5.2.1
, bison version 3.0.2
, flex 2.5.39
and make 4.0
The template has been adapted for the last version of [McPAT 1.0]. The gem5 version tested is from 03/2015, but it should work for a more recent version.
What can be done or improved:
- Parse
system.mc
params and statistics - Check why dcache
block_size
must be 32 in order to work - Code clarity
- Portability [?]
This tool is currently in development, so if you find a bug, you can open an issue. If you do not agree with the translation of a parameter or value, please do the same in order to discuss it!
This first version is focused on the compatibility of the output of memory system and core in gem5 with the input of McPAT. Thus, other components such as PCIe will be ignored by the moment.
- Most of translations only work for X86 Architectures. It is needed to find the synonyms for the rest of ISAs