Ok great, glad to hear it. Gabe
On Mon, Jun 11, 2018 at 3:34 PM Matthias Jung <jun...@eit.uni-kl.de> wrote: > Hi Christian, > > I think you summarised the 3 approaches very well. I mean, we have > approach 1 already. It makes sense if Gabe drives approach 2 because > it has many advantages compared to approach 1. I think we could see > approach 3 as a longterm goal and we should go for approach 2 for now. > > Thanks for all the opinions so far, > Best, > Matthias > > > Am 11.06.2018 um 18:02 schrieb Christian Menard < > christian.men...@tu-dresden.de>: > > > > Hi, > > > > I am following the discussion for a while now and finally found the time > > to look at Gabe's proposal. > > > > As I see it, there are three approaches for combining gem5 and SystemC > > as outlined below. (Sorry for repeating stuff that was mentioned before, > > I just find it helpful to summarize some points) > > > > 1. Bridging gem5 ans Systemc. > > This is the approach I and Matthias implemented and presented last > > year. It provides bridges between the gem5 and SystemC communication > > interfaces, as well as a wrapper SystemC module that hosts a complete > > gem5 simulation on top of the SystemC kernel. While this approach > > certainly has limitations, it allows to combine gem5 and SystemC models. > > > > 2. Implementing the SystemC standard using gem5 > > This is the approach proposed by Gabe which, as I understand it, > > provides a wrapper around gem5 implementing the SystemC standard. With > > this approach, gem5 becomes a fully fledged SystemC kernel which > > arbitrary standard compliant SystemC models can run on. Compared to > > approach 1, this allows for more interaction between both domains, as > > everything can be compiled in a single pass and there is not just one > > single point of interaction. However, this approach prevents certain use > > cases, e.g. where SystemC models are closed source or where a specific > > SystemC implementation is required. > > > > 3. Replacing the gem5 simulation kernel by SystemC. > > This is the most radical approach but also gives most flexibility. It > > replaces the entire gem5 simulation kernel by SystemC. In this approach, > > gem5 could be seen as a system modeling framework and as an abstraction > > layer on top of SystemC. This would give maximum flexibility as > > arbitrary SystemC and gem5 models can be combined and even the SystemC > > kernel can be exchanged arbitrarily. However, it is not clear (at least > > to me) how exactly gem5 and SystemC modules could be connected and > > interact with each other. I think for this approach to work, aspects of > > approach 1 or/and 2 are still required. > > > > So as I see it: 3 covers more use cases than 2 but both are in a way > > superior to the existing approach (1). However, in order to implement 3 > > a lot of changes to the code base are required. Implementing these > > changes will take some time, so there will probably be two versions of > > gem5: a legacy one and the SystemC one. This again produces more work in > > maintaining the code base. Now I wonder: who is willing to do all this > > work? > > > > While I favour approach 3 for its benefits and the points Matthias made, > > I still like Gabe's idea very much. It minimizes the changes required to > > the existing code base while providing many benefits to a broader > > community. As Gabe mentioned before, his approach neither breaks with > > the existing bridges implemented by me and Matthias, nor does it prevent > > implementation of approach 3 in the future. To sum it up: there are no > > objections from my side. > > > > Unfortunately, I am not very active in hardware modeling anymore, but I > > am very interested in this development and I hope to find the time to > > have a look on the patches soon. > > > > Best, > > > > Christian > > > > Matthias Jung <jun...@eit.uni-kl.de> writes: > > > >> Hi Gabe, > >> > >> I totally agree with you. SytemC is a standard and the code maintained > >> by accellera is just an „example“ of how SystemC could be implemented. > >> > >> However, that is part of my argument. If I want to use e.g. another > >> fancy SystemC kernel (e.g. https://dl.acm.org/citation.cfm?id=2987374) > >> or a commercial one like the one in the Synopsys toolchains, I cannot > >> use gem5 (beside the coupling that is already there, which has also > >> several drawbacks). So I like more the separation of simulation models > >> and the kernel. > >> > >> But I also understand it from your side. In Google you don’t have this > >> specific need and you want to find quickly a solution with less effort. > >> Anyway we should discuss if a full switch to SystemC as a kernel might > >> be a reasonable long term goal. I think many people would benefit from > >> that. > >> > >> I’m also keen to know Christian’s, Andreas’ and Jason’s opinions. > >> > >> It’s a pitty that gem5 and SystemC started back at the same time > >> and evolved separately... > >> > >> Best, > >> Matthias > >> > >>> Am 09.06.2018 um 02:34 schrieb Gabe Black <gabebl...@google.com>: > >>> > >>> Also, I should point out that the systemc standard defines a set of > >>> mechanisms and an interface, not an implementation. The Accellera > version > >>> of systemc is *not* the standard, it's just an implementation (a very > >>> common and important one) of that standard. It's dangerous to conflate > >>> those two ideas, and it leads to a lot of problems for everybody. > >>> > >>> Gabe > >>> > >>> On Fri, Jun 8, 2018 at 12:50 PM Gabe Black <gabebl...@google.com> > wrote: > >>> > >>>> Giacomo, if you're proposing linking in the systemc library and then > >>>> adding wrappers to somehow plug that into gem5's underlying > mechanisms, I'm > >>>> not sure that's technically feasible since the existing implementation > >>>> isn't intended to be built on top of something else. Also a lot of the > >>>> mechanisms are built into base classes, and so if you change what data > >>>> members are in the base classes, ie the internal implementation, you > break > >>>> existing binaries. There isn't much a wrapper can do in that case. > >>>> > >>>> If you're proposing rebuilding gem5 on top of systemc, there are a > variety > >>>> of reasons I'm not proposing that which I've gone through > exhaustively (at > >>>> least I feel exhausted from it) in other places (you didn't miss it, > that > >>>> was internally at Google). > >>>> > >>>> This approach addresses best addresses the problem we (Google) are > trying > >>>> to solve, which is to leverage existing models vendors may have > developed > >>>> already in systemc, or which may be developed primarily in systemc in > the > >>>> future. Rather than ask them to rewrite their models as gem5 models, > >>>> simultaneously develop two models, one for systemc and one for gem5, > or to > >>>> architect their model as a core with two interface layers, one for > each > >>>> system, any of which may be prohibitive from an engineering effort > >>>> perspective, this way they can write a systemc model (or take one they > >>>> already wrote) and then just recompile it with a different systemc > header > >>>> and use it directly as a model within gem5. > >>>> > >>>> There will be very little modification to gem5 proper for this, and > so if > >>>> this sort of integration doesn't do what you want you can just ignore > it or > >>>> even turn it off and not suffer any overhead, and then use whatever > other > >>>> mechanism you like. > >>>> > >>>> Matthias, while being able to use closed source models would be nice, > it > >>>> isn't the problem we're trying to solve, and reimplementing gem5 on > top of > >>>> systemc would be a lot more work that doesn't really gain us anything. > >>>> > >>>> Jason, thanks. Please start with that python CL if you have a chance > since > >>>> I think it's about ready to go in, Andreas just wanted you to ack it > before > >>>> checking it in. > >>>> > >>>> Gabe > >>>> > >>>> > >>>> On Fri, Jun 8, 2018 at 7:15 AM Jason Lowe-Power <ja...@lowepower.com> > >>>> wrote: > >>>> > >>>>> I'll have some time next week to dig into this. > >>>>> > >>>>> Cheers, > >>>>> Jason > >>>>> > >>>>> On Fri, Jun 8, 2018, 7:13 AM Dr.-Ing. Matthias Jung < > jun...@eit.uni-kl.de > >>>>>> > >>>>> wrote: > >>>>> > >>>>>> Hi Giacomo, Gabe, > >>>>>> > >>>>>> I'm a large supporter of SystemC because its 'the' IEEE standard for > >>>>>> simulation, therefore I support always activities towards that > >>>>> direction. > >>>>>> However I have a similar concern like Giacomo. > >>>>>> > >>>>>> I would prefer to just 'use' the SystemC kernel by accellera as > kernel > >>>>> for > >>>>>> gem5 in order to have a proper separation between model and kernel. > I > >>>>> think > >>>>>> its very interesting for many people to use gem5 in their SystemC > >>>>>> environment also together with commercial IP SystemC models that > have a > >>>>>> closed source. With the current aimed approach it would be required > to > >>>>> have > >>>>>> access to the source code of all used models in the system and > >>>>> commercial > >>>>>> SystemC tools like Synopsys Platform Architect etc. could not be > used. > >>>>>> > >>>>>> > >>>>>> Best, > >>>>>> Matthias > >>>>>> > >>>>>> 8. Juni 2018 15:47, "Giacomo Travaglini" < > giacomo.travagl...@arm.com> > >>>>>> schrieb: > >>>>>> > >>>>>>> Hi Gabe, > >>>>>>> > >>>>>>> I have had a quick glance at the patches and there's one thing I > don't > >>>>>> understand: > >>>>>>> > >>>>>>> It seems to me that you are sort of reimplementing the SystemC > runtime > >>>>>> kernel inside > >>>>>>> > >>>>>>> gem5 for scratch. > >>>>>>> > >>>>>>> Is there a reason for doing it? Can't we just link to the external > >>>>>> SystemC library > >>>>>>> > >>>>>>> and just write some wrappers? > >>>>>>> > >>>>>>> Thanks in advance for the clarifications > >>>>>>> > >>>>>>> Giacomo > >>>>>>> > >>>>>>> ________________________________ > >>>>>>> From: gem5-dev <gem5-dev-boun...@gem5.org> on behalf of Gabe > Black < > >>>>>> gabebl...@google.com> > >>>>>>> Sent: 08 June 2018 06:32:52 > >>>>>>> To: gem5 Developer List > >>>>>>> Subject: [gem5-dev] systemc reviews > >>>>>>> > >>>>>>> Hi folks. I've posted a lot of systemc reviews recently, and I > expect > >>>>> to > >>>>>>> keep doing so for the foreseeable future. To keep the pool of > pending > >>>>> CLs > >>>>>>> from growing from a lot to unmanageably a lot please don't let them > >>>>> sit > >>>>>> too > >>>>>>> long if you feel comfortable trying to review them. Alot of these > >>>>> earlier > >>>>>>> ones aren't very interesting, they're just defining header files, > >>>>> stubbed > >>>>>>> out implementations, or importing code from the Accellera version > of > >>>>>>> SystemC. There are a few that are a little more interesting > though, to > >>>>>> keep > >>>>>>> you from getting bored ;-) > >>>>>>> > >>>>>>> Gabe > >>>>>>> _______________________________________________ > >>>>>>> gem5-dev mailing list > >>>>>>> gem5-dev@gem5.org > >>>>>>> http://m5sim.org/mailman/listinfo/gem5-dev > >>>>>>> IMPORTANT NOTICE: The contents of this email and any attachments > are > >>>>>> confidential and may also be > >>>>>>> privileged. If you are not the intended recipient, please notify > the > >>>>>> sender immediately and do not > >>>>>>> disclose the contents to any other person, use it for any purpose, > or > >>>>>> store or copy the information > >>>>>>> in any medium. Thank you. > >>>>>>> _______________________________________________ > >>>>>>> gem5-dev mailing list > >>>>>>> gem5-dev@gem5.org > >>>>>>> http://m5sim.org/mailman/listinfo/gem5-dev > >>>>>> _______________________________________________ > >>>>>> gem5-dev mailing list > >>>>>> gem5-dev@gem5.org > >>>>>> http://m5sim.org/mailman/listinfo/gem5-dev > >>>>> _______________________________________________ > >>>>> gem5-dev mailing list > >>>>> gem5-dev@gem5.org > >>>>> http://m5sim.org/mailman/listinfo/gem5-dev > >>>> > >>>> > >>> _______________________________________________ > >>> gem5-dev mailing list > >>> gem5-dev@gem5.org > >>> http://m5sim.org/mailman/listinfo/gem5-dev > >> > >> _______________________________________________ > >> gem5-dev mailing list > >> gem5-dev@gem5.org > >> http://m5sim.org/mailman/listinfo/gem5-dev > > _______________________________________________ > > gem5-dev mailing list > > gem5-dev@gem5.org > > http://m5sim.org/mailman/listinfo/gem5-dev > > _______________________________________________ > gem5-dev mailing list > gem5-dev@gem5.org > http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev