[gem5-users] Re: Converting KVM-taken checkpoint to atomic-needed checkpoint

2021-04-14 Thread Majid Jalili via gem5-users
I have tried this option, the problem is for a simple microbenchmark, if I
do not use KVM, the IPCs make no sense. I mean for the same configuration
if change --restore-with-cpu with KVM or atomic, the simulation starts and
end, but numbers make no sense.


On Mon, Apr 12, 2021 at 9:42 PM Bobby Bruce  wrote:

> Hey Majid,
>
> The short answer is yes, this use-case should be supported.
>
> You can use the `--restore-with-cpu` option to restore to the Atomic CPU.
>
> Kind regards,
> Bobby
> --
> Dr. Bobby R. Bruce
> Room 2235,
> Kemper Hall, UC Davis
> Davis,
> CA, 95616
>
> web: https://www.bobbybruce.net
>
>
> On Fri, Apr 9, 2021 at 2:29 PM Majid Jalili via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi,
>>
>> Is it practically possible to convert the KVM-taken checkpoint such that
>> I can restore it with Atomic CPU? This is particularly important because I
>> have to use KVM to take my checkpoints on an ARM machine and then transfer
>> them to my X86 cluster to run the checkpoints.
>> I cannot avoid KVM on ARM, because my simpoints are very long, and I
>> cannot continue my simulation on ARM host because it is slow and not free.
>>
>> ___
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] ARM and opening a file

2021-04-14 Thread Majid Jalili via gem5-users
Hi,
When I was running SPEC CPU 2017, in particular 505.mcf_r, I noticed that
if gem5 should open a file, it will not make any progress. I dig into mcf
code and found when the read_min function is called the simulation freezes.
Then I started running a simple benchmark as follows, that just prints the
content of a file:

https://www.geeksforgeeks.org/c-program-print-contents-file/

For this example, I also run into the same problem. I tried X86 and
everything works just fine

Repo:  I tried both dev and stable
gcc: aarch64-linux-gnu-gcc-7 aarch64-linux-gnu-gcc-5

Any help is great!
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Running parallel version of a CPU benchmark on multiple cores

2021-04-14 Thread John Smith via gem5-users
 Hello Everyone,

Is it possible to run a parallel version of a CPU benchmark like SPEC on
multiple cores?
For example, if I have a mesh of 9 CPU cores, can I launch 9 threads of the
CPU benchmark, 1 thread on each core simultaneously?

Thank you for the information in advance.
John Smith
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Referencing an upstream component in parameters

2021-04-14 Thread Jason Lowe-Power via gem5-users
Hi Gabriel,

I agree it's not intuitive and it's a bit awkward.

Is there a reason for adopting that design? My guess is that it allows to
> build the system top to bottom in the python scripts.
>

Haha! No, there's not an underlying reason for this. In fact, I would guess
that there is a much better design which wouldn't require this awkward
pattern. As an aside, I was recently re-writing some Ruby config scripts
and got bitten by these circular dependencies as they require you to
construct your system in a very strange way.

Cheers,
Jason

On Wed, Apr 14, 2021 at 1:36 AM gabriel.busnot--- via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Jason,
>
> Thanks for your reply, it should be an adequate solution, even if it looks
> kind of awkward to me right now ;)
> While I wanted the downstream controller (B) to have a reference to the
> upstream (proxied) controller (A), I must actually do the opposite and have
> (A) store a reference to (B).
> Then, (A).init() will call (B).registerUpstream(this).
> It does not feel natural to set this "(B) references (A)" relationship in
> (A)'s python parameters but it is required not tho create a cycle in the
> hierarchy.
>
> Looking at it again, it looks like, for instance, a RubyController
> references a RubySystem that references the System in turn.
> So the inclusion relationship in python parameters is the opposite of the
> architectural inclusion relationship, if I can say so.
> In other words, if C++ class (B) needs a reference to C++ class (A),
> Python class (A) will typically hold a reference to Python class (B) and
> (A).init() will call (B).registerA(this).
> Is there a reason for adopting that design? My guess is that it allows to
> build the system top to bottom in the python scripts.
>
> Cheers,
> Gabriel
> ___
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
___
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Referencing an upstream component in parameters

2021-04-14 Thread gabriel.busnot--- via gem5-users
Hi Jason,

Thanks for your reply, it should be an adequate solution, even if it looks kind 
of awkward to me right now ;)
While I wanted the downstream controller (B) to have a reference to the 
upstream (proxied) controller (A), I must actually do the opposite and have (A) 
store a reference to (B).
Then, (A).init() will call (B).registerUpstream(this).
It does not feel natural to set this "(B) references (A)" relationship in (A)'s 
python parameters but it is required not tho create a cycle in the hierarchy.

Looking at it again, it looks like, for instance, a RubyController references a 
RubySystem that references the System in turn.
So the inclusion relationship in python parameters is the opposite of the 
architectural inclusion relationship, if I can say so.
In other words, if C++ class (B) needs a reference to C++ class (A), Python 
class (A) will typically hold a reference to Python class (B) and (A).init() 
will call (B).registerA(this).
Is there a reason for adopting that design? My guess is that it allows to build 
the system top to bottom in the python scripts.

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