Re: [gem5-users] gem5 gcn3 (GPU) power model

2020-04-09 Thread Daniel Gerzhoy
Thank you both!

Andreas, I'm currently in a writing phase (boo) but I definitely have
questions when I start getting into it.

Best regards,

Dan

On Wed, Apr 8, 2020 at 12:03 PM Andreas Brokalakis 
wrote:

> 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: 
>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: 
>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.numCycles704089210
> # 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:  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 
> 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
>> gem5-users@gem5.org
>> 

Re: [gem5-users] gem5 gcn3 (GPU) power model

2020-04-08 Thread Andreas Brokalakis
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: 
   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: 
   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.numCycles704089210
# 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: 
   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 
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
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] gem5 gcn3 (GPU) power model

2020-04-08 Thread Jason Lowe-Power
Hi Dan,

We're currently working on getting the branch here:
https://gem5.googlesource.com/amd/gem5/+/refs/heads/agutierr/master-gcn3-staging
into
the mainline. From what I understand, that branch contains the most up to
date GPU code.

However, there is no power model for the GPU.

As far as McPAT goes... this is tough. There have been some conversion
scripts over the years, but nothing that has been maintained. It's hard
since the power numbers depend on the hardware implementation, which is not
something that gem5 models. You have to make your own decisions on how you
think your hardware will be implemented.

Cheers,
Jason

On Wed, Apr 8, 2020 at 7:40 AM Daniel Gerzhoy 
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
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

[gem5-users] gem5 gcn3 (GPU) power model

2020-04-08 Thread Daniel Gerzhoy
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
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users