This is unfortunately difficult for most of the cycle-accurate models, because 
it lies on that silicon is synchronized with clock trees which does not consume 
compute resource, HW is intrinsically parallel.
But when you are doing c-simulation, the synchronizing work is done by 
"ticking" and event queue mechanisms, if you want to parallelize the 
computation, you have to go at a bigger boundary, which is just as Eliot stated 
could be workload level, otherwise the sync overhead b/w threads can be really 
huge at those levels.


Have anyone seen some well structured cycle accurate models that can be 
multi-threaded to some more finer grain?


| |
G
|
|
ginger...@163.com
|
---- Replied Message ----
| From | Eliot Moss via gem5-users<gem5-us...@gem5.org> |
| Date | 3/16/2023 21:28 |
| To | The gem5 Users mailing list<gem5-us...@gem5.org> ,
gem5-dev<gem5-dev@gem5.org> |
| Cc | yuxuan-z<yuxuan-...@qq.com> ,
Eliot Moss<m...@cs.umass.edu> |
| Subject | [gem5-users] Re: Enquiry about the parallelization |
On 3/15/2023 11:11 PM, yuxuan-z via gem5-users wrote:
To: Whom it may concern

I have been using this simulator for some processor related educational 
projects. I noticed a
drastically slower performance in simulation as compared to the real thing. To 
my knowledge, there
are no parallelization features included in the simulator as mentioned in this 
issue
https://github.com/cirosantilli2/gem5-issues/issues/15
<https://github.com/cirosantilli2/gem5-issues/issues/15>  . I am writing to 
enquire are there any
such features that I am not aware of or are there any plans to include 
parallelization features into
future versions. Hope to hear from you soon.

Dear Harry -

It's extremely difficult to parallelize code of this kind.  I
believe one would essentially have to undertake a total rewrite
based on a somewhat different approach.  It would also introduce
(more) non-determinism.

I am reminded of failed efforts to replace the global lock in the
most widely used version of python (the one written in C).  And
that code base is much smaller than gem5.

The useful parallelism I *have* achieved is doing different runs
(varying parameters, workloads, etc.) concurrently in different
Linux processes.

Regards - Eliot Moss
_______________________________________________
gem5-users mailing list -- gem5-us...@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org

Reply via email to