[gem5-dev] Re: de-templating the O3 CPU

2021-03-22 Thread Gabe Black via gem5-dev
Thanks, Giacomo. Also thank you for making a clear effort to get some of my
other patches reviewed in the last few weeks. It's noticed and appreciated!
:-)

Gabe

On Mon, Mar 22, 2021 at 8:02 AM Giacomo Travaglini <
giacomo.travagl...@arm.com> wrote:

> Hi Gabe,
>
> That's probably because making a release has caught everyone's attention.
> I am definitely gonna have a look at it in about a week time, I promise 😊
>
> Kind Regards
>
> Giacomo
>
>
> > -Original Message-
> > From: Gabe Black 
> > Sent: 22 March 2021 03:20
> > To: Jason Lowe-Power 
> > Cc: gem5 Developer List ; Giacomo Travaglini
> > 
> > Subject: Re: [gem5-dev] Re: de-templating the O3 CPU
> >
> > People seemed pretty enthusiastic for this series of CLs, but I haven't
> been
> > able to get reviews for it...
> >
> > https://gem5-review.googlesource.com/c/public/gem5/+/42094
> >
> >
> > On Wed, Mar 3, 2021 at 9:15 AM Gabe Black  > <mailto:gabe.bl...@gmail.com> > wrote:
> >
> >
> > Series of 28 CLs, ends here:
> >
> >
> >
> > https://gem5-review.googlesource.com/c/public/gem5/+/42120
> >
> >
> > On Mon, Mar 1, 2021 at 8:50 AM Jason Lowe-Power
> > mailto:ja...@lowepower.com> > wrote:
> >
> >
> > Hey Gabe,
> >
> > I love this idea! It would be nice if you could document the
> > code as you go, too. It could serve as a good learning tool in the
> future.
> >
> > Cheers,
> > Jason
> >
> >
> > On Mon, Mar 1, 2021 at 7:56 AM Giacomo Travaglini via gem5-
> > dev mailto:gem5-dev@gem5.org> > wrote:
> >
> >
> > +2, +1, Merged
> >
> > 😊
> >
> > Giacomo
> >
> > > -Original Message-
> > > From: Gabe Black via gem5-dev  > d...@gem5.org <mailto:gem5-dev@gem5.org> >
> > > Sent: 27 February 2021 10:13
> > > To: gem5 Developer List  > <mailto:gem5-dev@gem5.org> >
> > > Cc: Gabe Black  > <mailto:gabe.bl...@gmail.com> >
> > > Subject: [gem5-dev] de-templating the O3 CPU
> > >
> > > Hi folks. The O3 CPU uses templates pretty heavily,
> > I think nominally to make it
> > > possible to switch in different parts of the CPU to
> > change how, for example, a
> > > pipeline stage is implemented.
> > >
> > > Realistically, the different parts of the CPU are
> > probably too interdependent
> > > for that to actually work, and all the templates and
> > indirection make the code a
> > > lot more complicated than it really needs to be.
> > >
> > > Also, there is a pseudo-generic dynamic instruction
> > base class in
> > > cpu/base_dyn_inst.hh which could, again
> > theoretically, be used as a base class
> > > for other CPUs to reuse. Unfortunately that too is
> > probably too tied to its only
> > > consumer, the O3 CPU, to be realistically reusable.
> > >
> > > I would like to merge the base dynamic instruction
> > class into the O3 version,
> > > and then de-templatize the whole O3 CPU. I think
> > that will make the code a lot
> > > easier to work on, and I think our ability to maintain
> > and update O3 is
> > > something we need to improve in at least the
> > medium term.
> > >
> > > Any thoughts? Objections? Votes of support?
> > >
> > > Gabe
> > 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
> > <mailto:gem5-dev@gem5.org>
> > To unsubscribe send an email to gem5-dev-
> > le...@gem5.org <mailto:gem5-dev-le...@gem5.org>
> >
> > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
> 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
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-22 Thread Giacomo Travaglini via gem5-dev
Hi Gabe,

That's probably because making a release has caught everyone's attention.
I am definitely gonna have a look at it in about a week time, I promise 😊

Kind Regards

Giacomo


> -Original Message-
> From: Gabe Black 
> Sent: 22 March 2021 03:20
> To: Jason Lowe-Power 
> Cc: gem5 Developer List ; Giacomo Travaglini
> 
> Subject: Re: [gem5-dev] Re: de-templating the O3 CPU
>
> People seemed pretty enthusiastic for this series of CLs, but I haven't been
> able to get reviews for it...
>
> https://gem5-review.googlesource.com/c/public/gem5/+/42094
>
>
> On Wed, Mar 3, 2021 at 9:15 AM Gabe Black  <mailto:gabe.bl...@gmail.com> > wrote:
>
>
> Series of 28 CLs, ends here:
>
>
>
> https://gem5-review.googlesource.com/c/public/gem5/+/42120
>
>
> On Mon, Mar 1, 2021 at 8:50 AM Jason Lowe-Power
> mailto:ja...@lowepower.com> > wrote:
>
>
> Hey Gabe,
>
> I love this idea! It would be nice if you could document the
> code as you go, too. It could serve as a good learning tool in the future.
>
> Cheers,
> Jason
>
>
> On Mon, Mar 1, 2021 at 7:56 AM Giacomo Travaglini via gem5-
> dev mailto:gem5-dev@gem5.org> > wrote:
>
>
> +2, +1, Merged
>
> 😊
>
> Giacomo
>
> > -Original Message-
> > From: Gabe Black via gem5-dev  d...@gem5.org <mailto:gem5-dev@gem5.org> >
> > Sent: 27 February 2021 10:13
> > To: gem5 Developer List  <mailto:gem5-dev@gem5.org> >
> > Cc: Gabe Black  <mailto:gabe.bl...@gmail.com> >
> > Subject: [gem5-dev] de-templating the O3 CPU
> >
> > Hi folks. The O3 CPU uses templates pretty heavily,
> I think nominally to make it
> > possible to switch in different parts of the CPU to
> change how, for example, a
> > pipeline stage is implemented.
> >
> > Realistically, the different parts of the CPU are
> probably too interdependent
> > for that to actually work, and all the templates and
> indirection make the code a
> > lot more complicated than it really needs to be.
> >
> > Also, there is a pseudo-generic dynamic instruction
> base class in
> > cpu/base_dyn_inst.hh which could, again
> theoretically, be used as a base class
> > for other CPUs to reuse. Unfortunately that too is
> probably too tied to its only
> > consumer, the O3 CPU, to be realistically reusable.
> >
> > I would like to merge the base dynamic instruction
> class into the O3 version,
> > and then de-templatize the whole O3 CPU. I think
> that will make the code a lot
> > easier to work on, and I think our ability to maintain
> and update O3 is
> > something we need to improve in at least the
> medium term.
> >
> > Any thoughts? Objections? Votes of support?
> >
> > Gabe
> 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
> <mailto:gem5-dev@gem5.org>
> To unsubscribe send an email to gem5-dev-
> le...@gem5.org <mailto:gem5-dev-le...@gem5.org>
>
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

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
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-21 Thread Gabe Black via gem5-dev
People seemed pretty enthusiastic for this series of CLs, but I haven't
been able to get reviews for it...

https://gem5-review.googlesource.com/c/public/gem5/+/42094

On Wed, Mar 3, 2021 at 9:15 AM Gabe Black  wrote:

> Series of 28 CLs, ends here:
>
> https://gem5-review.googlesource.com/c/public/gem5/+/42120
>
> On Mon, Mar 1, 2021 at 8:50 AM Jason Lowe-Power 
> wrote:
>
>> Hey Gabe,
>>
>> I love this idea! It would be nice if you could document the code as you
>> go, too. It could serve as a good learning tool in the future.
>>
>> Cheers,
>> Jason
>>
>> On Mon, Mar 1, 2021 at 7:56 AM Giacomo Travaglini via gem5-dev <
>> gem5-dev@gem5.org> wrote:
>>
>>> +2, +1, Merged
>>>
>>> 😊
>>>
>>> Giacomo
>>>
>>> > -Original Message-
>>> > From: Gabe Black via gem5-dev 
>>> > Sent: 27 February 2021 10:13
>>> > To: gem5 Developer List 
>>> > Cc: Gabe Black 
>>> > Subject: [gem5-dev] de-templating the O3 CPU
>>> >
>>> > Hi folks. The O3 CPU uses templates pretty heavily, I think nominally
>>> to make it
>>> > possible to switch in different parts of the CPU to change how, for
>>> example, a
>>> > pipeline stage is implemented.
>>> >
>>> > Realistically, the different parts of the CPU are probably too
>>> interdependent
>>> > for that to actually work, and all the templates and indirection make
>>> the code a
>>> > lot more complicated than it really needs to be.
>>> >
>>> > Also, there is a pseudo-generic dynamic instruction base class in
>>> > cpu/base_dyn_inst.hh which could, again theoretically, be used as a
>>> base class
>>> > for other CPUs to reuse. Unfortunately that too is probably too tied
>>> to its only
>>> > consumer, the O3 CPU, to be realistically reusable.
>>> >
>>> > I would like to merge the base dynamic instruction class into the O3
>>> version,
>>> > and then de-templatize the whole O3 CPU. I think that will make the
>>> code a lot
>>> > easier to work on, and I think our ability to maintain and update O3 is
>>> > something we need to improve in at least the medium term.
>>> >
>>> > Any thoughts? Objections? Votes of support?
>>> >
>>> > Gabe
>>> 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
>>> To unsubscribe send an email to gem5-dev-le...@gem5.org
>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>
>>
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-03 Thread Gabe Black via gem5-dev
Series of 28 CLs, ends here:

https://gem5-review.googlesource.com/c/public/gem5/+/42120

On Mon, Mar 1, 2021 at 8:50 AM Jason Lowe-Power  wrote:

> Hey Gabe,
>
> I love this idea! It would be nice if you could document the code as you
> go, too. It could serve as a good learning tool in the future.
>
> Cheers,
> Jason
>
> On Mon, Mar 1, 2021 at 7:56 AM Giacomo Travaglini via gem5-dev <
> gem5-dev@gem5.org> wrote:
>
>> +2, +1, Merged
>>
>> 😊
>>
>> Giacomo
>>
>> > -Original Message-
>> > From: Gabe Black via gem5-dev 
>> > Sent: 27 February 2021 10:13
>> > To: gem5 Developer List 
>> > Cc: Gabe Black 
>> > Subject: [gem5-dev] de-templating the O3 CPU
>> >
>> > Hi folks. The O3 CPU uses templates pretty heavily, I think nominally
>> to make it
>> > possible to switch in different parts of the CPU to change how, for
>> example, a
>> > pipeline stage is implemented.
>> >
>> > Realistically, the different parts of the CPU are probably too
>> interdependent
>> > for that to actually work, and all the templates and indirection make
>> the code a
>> > lot more complicated than it really needs to be.
>> >
>> > Also, there is a pseudo-generic dynamic instruction base class in
>> > cpu/base_dyn_inst.hh which could, again theoretically, be used as a
>> base class
>> > for other CPUs to reuse. Unfortunately that too is probably too tied to
>> its only
>> > consumer, the O3 CPU, to be realistically reusable.
>> >
>> > I would like to merge the base dynamic instruction class into the O3
>> version,
>> > and then de-templatize the whole O3 CPU. I think that will make the
>> code a lot
>> > easier to work on, and I think our ability to maintain and update O3 is
>> > something we need to improve in at least the medium term.
>> >
>> > Any thoughts? Objections? Votes of support?
>> >
>> > Gabe
>> 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
>> To unsubscribe send an email to gem5-dev-le...@gem5.org
>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-01 Thread Jason Lowe-Power via gem5-dev
Hey Gabe,

I love this idea! It would be nice if you could document the code as you
go, too. It could serve as a good learning tool in the future.

Cheers,
Jason

On Mon, Mar 1, 2021 at 7:56 AM Giacomo Travaglini via gem5-dev <
gem5-dev@gem5.org> wrote:

> +2, +1, Merged
>
> 😊
>
> Giacomo
>
> > -Original Message-
> > From: Gabe Black via gem5-dev 
> > Sent: 27 February 2021 10:13
> > To: gem5 Developer List 
> > Cc: Gabe Black 
> > Subject: [gem5-dev] de-templating the O3 CPU
> >
> > Hi folks. The O3 CPU uses templates pretty heavily, I think nominally to
> make it
> > possible to switch in different parts of the CPU to change how, for
> example, a
> > pipeline stage is implemented.
> >
> > Realistically, the different parts of the CPU are probably too
> interdependent
> > for that to actually work, and all the templates and indirection make
> the code a
> > lot more complicated than it really needs to be.
> >
> > Also, there is a pseudo-generic dynamic instruction base class in
> > cpu/base_dyn_inst.hh which could, again theoretically, be used as a base
> class
> > for other CPUs to reuse. Unfortunately that too is probably too tied to
> its only
> > consumer, the O3 CPU, to be realistically reusable.
> >
> > I would like to merge the base dynamic instruction class into the O3
> version,
> > and then de-templatize the whole O3 CPU. I think that will make the code
> a lot
> > easier to work on, and I think our ability to maintain and update O3 is
> > something we need to improve in at least the medium term.
> >
> > Any thoughts? Objections? Votes of support?
> >
> > Gabe
> 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
> To unsubscribe send an email to gem5-dev-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-01 Thread Giacomo Travaglini via gem5-dev
+2, +1, Merged

😊

Giacomo

> -Original Message-
> From: Gabe Black via gem5-dev 
> Sent: 27 February 2021 10:13
> To: gem5 Developer List 
> Cc: Gabe Black 
> Subject: [gem5-dev] de-templating the O3 CPU
>
> Hi folks. The O3 CPU uses templates pretty heavily, I think nominally to make 
> it
> possible to switch in different parts of the CPU to change how, for example, a
> pipeline stage is implemented.
>
> Realistically, the different parts of the CPU are probably too interdependent
> for that to actually work, and all the templates and indirection make the 
> code a
> lot more complicated than it really needs to be.
>
> Also, there is a pseudo-generic dynamic instruction base class in
> cpu/base_dyn_inst.hh which could, again theoretically, be used as a base class
> for other CPUs to reuse. Unfortunately that too is probably too tied to its 
> only
> consumer, the O3 CPU, to be realistically reusable.
>
> I would like to merge the base dynamic instruction class into the O3 version,
> and then de-templatize the whole O3 CPU. I think that will make the code a lot
> easier to work on, and I think our ability to maintain and update O3 is
> something we need to improve in at least the medium term.
>
> Any thoughts? Objections? Votes of support?
>
> Gabe
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
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-01 Thread Gabe Black via gem5-dev
Hi Nathanael, I intend to split it into multiple steps, if nothing else
just to make reviewing the changes more feasible.

Gabe

On Mon, Mar 1, 2021 at 1:51 AM Nathanael Premillieu <
nathanael.premill...@huawei.com> wrote:

> Hi Gabe,
>
>
>
> I totally agree with you on this.
>
> I think it’s also quite a blocker when learning gem5 as it makes the code
> difficult to follow and understand.
>
> Do you intend to do it as one big patch or split that into several steps
> (if that’s possible)?
>
>
>
> Thanks,
>
> Nathanael
>
>
>
> *From:* Gabe Black via gem5-dev [mailto:gem5-dev@gem5.org]
> *Sent:* Saturday, February 27, 2021 11:13 AM
> *To:* gem5 Developer List 
> *Cc:* Gabe Black 
> *Subject:* [gem5-dev] de-templating the O3 CPU
>
>
>
> Hi folks. The O3 CPU uses templates pretty heavily, I think nominally to
> make it possible to switch in different parts of the CPU to change how, for
> example, a pipeline stage is implemented.
>
>
>
> Realistically, the different parts of the CPU are probably too
> interdependent for that to actually work, and all the templates and
> indirection make the code a lot more complicated than it really needs to be.
>
>
>
> Also, there is a pseudo-generic dynamic instruction base class in
> cpu/base_dyn_inst.hh which could, again theoretically, be used as a base
> class for other CPUs to reuse. Unfortunately that too is probably too tied
> to its only consumer, the O3 CPU, to be realistically reusable.
>
>
>
> I would like to merge the base dynamic instruction class into the O3
> version, and then de-templatize the whole O3 CPU. I think that will make
> the code a lot easier to work on, and I think our ability to maintain and
> update O3 is something we need to improve in at least the medium term.
>
>
>
> Any thoughts? Objections? Votes of support?
>
>
>
> Gabe
>
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: de-templating the O3 CPU

2021-03-01 Thread Nathanael Premillieu via gem5-dev
Hi Gabe,

I totally agree with you on this.
I think it’s also quite a blocker when learning gem5 as it makes the code 
difficult to follow and understand.
Do you intend to do it as one big patch or split that into several steps (if 
that’s possible)?

Thanks,
Nathanael

From: Gabe Black via gem5-dev [mailto:gem5-dev@gem5.org]
Sent: Saturday, February 27, 2021 11:13 AM
To: gem5 Developer List 
Cc: Gabe Black 
Subject: [gem5-dev] de-templating the O3 CPU

Hi folks. The O3 CPU uses templates pretty heavily, I think nominally to make 
it possible to switch in different parts of the CPU to change how, for example, 
a pipeline stage is implemented.

Realistically, the different parts of the CPU are probably too interdependent 
for that to actually work, and all the templates and indirection make the code 
a lot more complicated than it really needs to be.

Also, there is a pseudo-generic dynamic instruction base class in 
cpu/base_dyn_inst.hh which could, again theoretically, be used as a base class 
for other CPUs to reuse. Unfortunately that too is probably too tied to its 
only consumer, the O3 CPU, to be realistically reusable.

I would like to merge the base dynamic instruction class into the O3 version, 
and then de-templatize the whole O3 CPU. I think that will make the code a lot 
easier to work on, and I think our ability to maintain and update O3 is 
something we need to improve in at least the medium term.

Any thoughts? Objections? Votes of support?

Gabe
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s