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