> On Sept. 20, 2013, 7:46 a.m., Andreas Hansson wrote:
> > I do not really see the point here. Could you be more clear around what 
> > this "integration" would involve? In any case, I would vote not to include 
> > the McPat source in gem5, and if it really needs to live in the source 
> > tree, get the users that want to have it to clone/checkout in ext/mcpat.
> 
> Nathan Binkert wrote:
>     I agree.  Shouldn't McPAT be maintained in its own repository?  Shouldn't 
> it just use EXTRAS?
> 
> Brad Beckmann wrote:
>     Thanks Tony for posting this initial patch.  I know it has been a few 
> weeks, but want to restart this discussion.  We would like to include this 
> version of McPAT directly into gem5 so that we can keep it "in sync" with the 
> gem5 output.  We fear that if we move it to a separate source tree, it will 
> become stale with the constantly evolving gem5 statistics and configurations. 
>  There are also secondary benefits from AMD's perspective in keeping it the 
> same respository that I'd rather not get into.
>     
>     So what is the benefit of having it in a separate repository?  It isn't 
> that much code and there is already many other external tools/scripts in the 
> gem5 ext directory.
> 
> Yasuko Eckert wrote:
>     I wanted to restart this discussion. I know there are many demands from 
> different people to add McPAT to gem5, so it would be nice to check in this 
> original McPAT patch as well as three improvement patches from AMD (#2151, 
> 2117, and 2118) very soon. Could we shoot for the end of the week?
> 
> Andreas Hansson wrote:
>     Hi Yasuko,
>     
>     Thanks again for all the effort.
>     
>     I would still like to see if it is really necessary to add all the 
> sources to the gem5 tree, as opposed to simply cloning/downloading mcpat in a 
> ext/ folder like we do for e.g. DRAMSim2. I'd imagine #2151 and #2118 could 
> easily be added next to a stock mcpat. The big question is #2117. As far as I 
> understand, the patch mainly improves the run-time and memory requirements of 
> mcpat. How does that compare to the stock mcpat? Also, how does it compare to 
> mcpat 1.0? I'm personally not familiar with the improvements/differences 
> between the two versions.
>     
>     If #2117 is really critical, perhaps we could consider having the gem5 
> build process apply it to the downloaded mcpat (I have proposed this in the 
> past).
> 
> Brad Beckmann wrote:
>     There is a strong desire to directly check in a version of McPAT into our 
> gem5 tree so that the community can make sure that it is maintained.  For 
> instance, it is much easier to use the regression tests if only one 
> repository is involved.  Having a build process that downloads mcpat seems 
> far too complicated and prone to error.
>     
>     So how do we move forward on this?  Is there a process we can use to 
> drive to a consensus?
> 
> Andreas Hansson wrote:
>     Hi Brad,
>     
>     I understand your position, and if I am the only person that does not get 
> a warm fuzzy feeling then by all means go ahead.
>     
>     That said, I still believe that there are reasons to proceed with caution:
>     
>     1) There is a danger in having different mcpat versions in different 
> places. At least at the moment, everyone is comparing the same (uncorrelated) 
> numbers.
>     
>     2) If the gem5 branch of mcpat would become the de-facto in the computer 
> architecture community, then I would at least like to make sure we are not 
> dropping important bits by going for mcpat 0.8 rather than 1.0 as a starting 
> point. Can someone enumerate the differences/changes?
>     
>     3) Who is going to maintain the mcpat branch, and who is going to 
> review/approve any changes? Coming back to (1), if someone wants to mend a 
> power model, what kind of criteria should be used to accept the changes? Is 
> one model going to fit everyone?
>     
>     4) With the added DVFS support in gem5, will the "integration" with mcpat 
> break? I merely want to make sure we're not making life more difficult by 
> adding too stringent assumptions at this point.
>     
>     If you guys step up to own it then (1), (2) and (3) is resolved as far as 
> I'm concerned.
>     
>     As a minor side note, when it comes to the download process, I believe it 
> was roughly 4 years between the two current versions in circulation. Is that 
> really such a big problem to maintain?
> 
> Anthony Gutierrez wrote:
>     I think the main problem is that people are not comparing the same 
> numbers. There is a large community who use it and make their own 
> modifications, and because there is no easy way to share the changes, or any 
> standards, everyone is essentially using their own hacked-up version. While 
> your concerns about who will maintain it are valid, I think the more 
> important issue is to have a single version where those who actively use it 
> can submit changes, and have discussions about what should or should not be 
> added.

I am a strong proponent for having a McPAT repo for the reasons Brad and 
Anthony have articulated. There are certainly too many versions of McPAT with 
various different models running around. Further, since I modified McPAT at 
AMD, I have receive innumerable requests to share the code, so I know that 
there is significant demand to have it in a repo (I'd estimate at least 5x the 
demand that you're hearing in this review process).

That said, I understand Andreas' hesitation to including McPAT within gem5; We 
already see, on average, about one review request/update per day for gem5, and 
with all the changes that people may want to make to McPAT, there is potential 
to have a significantly more review traffic to weed through unless handled 
appropriately (e.g. perhaps we'd need a gem5+McPAT Reviewboard group?).

To address Andreas' prompts:
1) People want an agreed-upon version, and a repo would significantly improve 
the current status quo. We need a repo - it's just not clear whether it should 
be inside or outside gem5

2) The primary mods from McPAT 0.8 to 1.0 are:
 - Exposing Vdd as a component parameter in cases where it may be adjustable 
(see bullet 4)
 - Updated Cacti interface and components to support preliminary power-gating 
functionality (see bullet 4)
 - Additional transistor feature sizes

3) The challenges you list would need to be worked out, but without a repo, we 
can only speculate on how we'd address the hard ones. Here are a few 
need-to-have criteria:
 - Changes that improve code style without changing output values
 - Bug fixes that do not change output values
 - Changes that improve software architecture (extensibility, abstraction, 
etc.) without changing output values
 - New functionality that has been validated or based on other public releases 
(e.g. merging McPAT 1.0 changes)
 - The most tricky one will be modifying power models, and this will require 
crossing a couple bridges before we really understand how this should be done

4) Just as gem5 needed mods for DVFS, McPAT will also need mods. These mods 
will probably need to merge some of the changes from McPAT 1.0. This shouldn't 
block us from creating a repo now.


Overall, despite identifying with many of Andreas' concerns, my opinion is that 
we need to include McPAT in gem5/ext/ in order to encourage gem5 developers to 
be aware of the available power models and to promote the co-development of 
McPAT with gem5.


- Joel


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2021/#review4721
-----------------------------------------------------------


On Dec. 9, 2013, 10:49 p.m., Anthony Gutierrez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2021/
> -----------------------------------------------------------
> 
> (Updated Dec. 9, 2013, 10:49 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 9994:23fa89b810a1
> ---------------------------
> ext: add McPAT source
> 
> this adds the source for mcpat, a power, area, and timing modeling framework.
> this will allow for the future integration of mcpat into gem5.
> 
> 
> Diffs
> -----
> 
>   ext/mcpat/ARM_A9.xml PRE-CREATION 
>   ext/mcpat/ARM_A9_2000.xml PRE-CREATION 
>   ext/mcpat/ARM_A9_800.xml PRE-CREATION 
>   ext/mcpat/Alpha21364.xml PRE-CREATION 
>   ext/mcpat/Niagara1.xml PRE-CREATION 
>   ext/mcpat/Niagara1_sharing.xml PRE-CREATION 
>   ext/mcpat/Niagara1_sharing_DC.xml PRE-CREATION 
>   ext/mcpat/Niagara1_sharing_SBT.xml PRE-CREATION 
>   ext/mcpat/Niagara1_sharing_ST.xml PRE-CREATION 
>   ext/mcpat/Niagara2.xml PRE-CREATION 
>   ext/mcpat/Penryn.xml PRE-CREATION 
>   ext/mcpat/README PRE-CREATION 
>   ext/mcpat/XML_Parse.h PRE-CREATION 
>   ext/mcpat/XML_Parse.cc PRE-CREATION 
>   ext/mcpat/Xeon.xml PRE-CREATION 
>   ext/mcpat/arch_const.h PRE-CREATION 
>   ext/mcpat/array.h PRE-CREATION 
>   ext/mcpat/array.cc PRE-CREATION 
>   ext/mcpat/basic_components.h PRE-CREATION 
>   ext/mcpat/basic_components.cc PRE-CREATION 
>   ext/mcpat/cacti/README PRE-CREATION 
>   ext/mcpat/cacti/Ucache.h PRE-CREATION 
>   ext/mcpat/cacti/Ucache.cc PRE-CREATION 
>   ext/mcpat/cacti/arbiter.h PRE-CREATION 
>   ext/mcpat/cacti/arbiter.cc PRE-CREATION 
>   ext/mcpat/cacti/area.h PRE-CREATION 
>   ext/mcpat/cacti/area.cc PRE-CREATION 
>   ext/mcpat/cacti/bank.h PRE-CREATION 
>   ext/mcpat/cacti/bank.cc PRE-CREATION 
>   ext/mcpat/cacti/basic_circuit.h PRE-CREATION 
>   ext/mcpat/cacti/basic_circuit.cc PRE-CREATION 
>   ext/mcpat/cacti/batch_tests PRE-CREATION 
>   ext/mcpat/cacti/cache.cfg PRE-CREATION 
>   ext/mcpat/cacti/cacti.i PRE-CREATION 
>   ext/mcpat/cacti/cacti.mk PRE-CREATION 
>   ext/mcpat/cacti/cacti_interface.h PRE-CREATION 
>   ext/mcpat/cacti/cacti_interface.cc PRE-CREATION 
>   ext/mcpat/cacti/component.h PRE-CREATION 
>   ext/mcpat/cacti/component.cc PRE-CREATION 
>   ext/mcpat/cacti/const.h PRE-CREATION 
>   ext/mcpat/cacti/contention.dat PRE-CREATION 
>   ext/mcpat/cacti/crossbar.h PRE-CREATION 
>   ext/mcpat/cacti/crossbar.cc PRE-CREATION 
>   ext/mcpat/cacti/decoder.h PRE-CREATION 
>   ext/mcpat/cacti/decoder.cc PRE-CREATION 
>   ext/mcpat/cacti/htree2.h PRE-CREATION 
>   ext/mcpat/cacti/htree2.cc PRE-CREATION 
>   ext/mcpat/cacti/io.h PRE-CREATION 
>   ext/mcpat/cacti/io.cc PRE-CREATION 
>   ext/mcpat/cacti/main.cc PRE-CREATION 
>   ext/mcpat/cacti/makefile PRE-CREATION 
>   ext/mcpat/cacti/mat.h PRE-CREATION 
>   ext/mcpat/cacti/mat.cc PRE-CREATION 
>   ext/mcpat/cacti/nuca.h PRE-CREATION 
>   ext/mcpat/cacti/nuca.cc PRE-CREATION 
>   ext/mcpat/cacti/parameter.h PRE-CREATION 
>   ext/mcpat/cacti/parameter.cc PRE-CREATION 
>   ext/mcpat/cacti/router.h PRE-CREATION 
>   ext/mcpat/cacti/router.cc PRE-CREATION 
>   ext/mcpat/cacti/subarray.h PRE-CREATION 
>   ext/mcpat/cacti/subarray.cc PRE-CREATION 
>   ext/mcpat/cacti/technology.cc PRE-CREATION 
>   ext/mcpat/cacti/uca.h PRE-CREATION 
>   ext/mcpat/cacti/uca.cc PRE-CREATION 
>   ext/mcpat/cacti/wire.h PRE-CREATION 
>   ext/mcpat/cacti/wire.cc PRE-CREATION 
>   ext/mcpat/core.h PRE-CREATION 
>   ext/mcpat/core.cc PRE-CREATION 
>   ext/mcpat/globalvar.h PRE-CREATION 
>   ext/mcpat/interconnect.h PRE-CREATION 
>   ext/mcpat/interconnect.cc PRE-CREATION 
>   ext/mcpat/iocontrollers.h PRE-CREATION 
>   ext/mcpat/iocontrollers.cc PRE-CREATION 
>   ext/mcpat/logic.h PRE-CREATION 
>   ext/mcpat/logic.cc PRE-CREATION 
>   ext/mcpat/main.cc PRE-CREATION 
>   ext/mcpat/makefile PRE-CREATION 
>   ext/mcpat/mcpat.mk PRE-CREATION 
>   ext/mcpat/mcpatXeonCore.mk PRE-CREATION 
>   ext/mcpat/memoryctrl.h PRE-CREATION 
>   ext/mcpat/memoryctrl.cc PRE-CREATION 
>   ext/mcpat/noc.h PRE-CREATION 
>   ext/mcpat/noc.cc PRE-CREATION 
>   ext/mcpat/processor.h PRE-CREATION 
>   ext/mcpat/processor.cc PRE-CREATION 
>   ext/mcpat/results/A9_2000 PRE-CREATION 
>   ext/mcpat/results/A9_2000_withIOC PRE-CREATION 
>   ext/mcpat/results/A9_800 PRE-CREATION 
>   ext/mcpat/results/Alpha21364 PRE-CREATION 
>   ext/mcpat/results/Alpha21364_90nm PRE-CREATION 
>   ext/mcpat/results/Penryn PRE-CREATION 
>   ext/mcpat/results/T1 PRE-CREATION 
>   ext/mcpat/results/T1_DC_64 PRE-CREATION 
>   ext/mcpat/results/T1_SBT_64 PRE-CREATION 
>   ext/mcpat/results/T1_ST_64 PRE-CREATION 
>   ext/mcpat/results/T2 PRE-CREATION 
>   ext/mcpat/results/Xeon_core PRE-CREATION 
>   ext/mcpat/results/Xeon_uncore PRE-CREATION 
>   ext/mcpat/sharedcache.h PRE-CREATION 
>   ext/mcpat/sharedcache.cc PRE-CREATION 
>   ext/mcpat/technology_xeon_core.cc PRE-CREATION 
>   ext/mcpat/version.h PRE-CREATION 
>   ext/mcpat/xmlParser.h PRE-CREATION 
>   ext/mcpat/xmlParser.cc PRE-CREATION 
> 
> Diff: http://reviews.gem5.org/r/2021/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Anthony Gutierrez
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to