Hi Dan,
in this repository: https://github.com/kingmouf/cmcpat I have added a
modified version of McPAT (it details the changes) as well as necessary
templates and scripts to work with the November 2019 version of gem5. I
have not been able to track if the newest version of gem5 breaks any of the
conversion scripts.
gem5 and McPAT can work together... sort of. McPAT requires some low level
implementation details (e.g. lithography) that gem5 does not model. In
addition certain aspects of the design that gem5 models are embedded in the
code of gem5 itself and are not made directly available to output files
(though indirectly you may be able to figure out most). I'll try to guide
you a little bit if you use my approach - but you can use any other
approach and most of what I write will apply. In my repository you can find
a script to convert gem5 output to a proper input xml file for McPAT. The
following more or less describe the process:
1. Execute gem5 with the system that you are trying to model and gather the
results. You are going to need two files:
- config.json from where you will be able to draw configuration /
architectural information about the system you are modelling. This is
information that McPAT requires in order to build a circuit model of your
system.
- stats.txt that contain the statistics of the execution run and McPAT
requires in order to calculate power/energy based on circuit activity.
2. McPAT requires as input an xml file that describes the processor and
also the activities of each unit. You need to create a xml template file
that describes the processor and has some hardwired information that you
insert (that is the circuit level info that gem5 does not model at all) and
then provide the proper hooks for the conversion scripts that will read the
gem5 output files and fill the xml template with the proper numerical
values. McPAT provides some processor template files that can be your
starting point and in my repository you can find additional template files
for specific cases (e.g. ARM in order processors compatible with the ones
gem5 models). Please refer to these template files in order to get a grasp
on how you make them.
- open for example inorder_arm.xml file.
- Check for example this line: <param name="core_tech_node" value="28"
/><!-- nm -->
Here you should specify the tech node that the processor is going to
be implemented. This is the kind of information that gem5 cannot provide.
Use your own based on what you are trying to do. Here I just used 28nm.
- Check for example this line: <stat name="total_cycles" value="
stats.system.cpu.numCycles"/>
Here you should specify the overall number of cycles that your
program has taken in order to be executed. gem5 models this information and
it is located in the stats.txt file. For my test system, in the stats.txt
file there is a line:
system.cpu.numCycles 704089210
# number of cpu cycles simulated
that has this information. So by placing the value "
stats.system.cpu.numCycles" in the template xml file, I instruct the
conversion script to retrieve the value from the stats.txt file and there
it should search for the system.cpu.numCycles entry.
- Check for example this line: <param name="instruction_buffer_size"
value="config.system.cpu.fetch2InputBufferSize"/>
Similarly to the previous example, this is an architectural
information, so I instruct the conversion script to fetch this value from
the config.json file and then retrieve the value from the
system->cpu->fetch2InputBufferSize entry.
3. Once a template xml file has been made you can call the conversion
script that upon execution will replace the directives with actual values.
It will produce an xml file that you can then use with McPAT.
While the process seems rather tedious, remember that you only need to do
this once per system you are modelling and then it is totally
straightforward.
I hoped I helped a little bit. Please check the documentation in my
repository as well.
Best,
Andreas
On Wed, Apr 8, 2020 at 5:39 PM Daniel Gerzhoy <[email protected]>
wrote:
> Hello,
>
> I'm wondering if there is a power model associated with the GPU model in
> the GCN3 branch.
>
> Actually is it still a branch? Or is it in the main gem5 branch now? I'm
> using the version that was in a separate branch a few months ago.
>
> Also if anyone could please point me at any documentation for using McPat
> or other power estimation with gem5 in general that would be very
> appreciated. I've found a little bit, but nothing comprehensive.
>
> Thanks,
>
> Dan Gerzhoy
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users