-
Hi I have a example & documentation question: in the examples, there's DynamicModelPipeline and CoreModel, which seem largely but not fully the same. The documentation (which is excellent btw) lists only CoreModel as an example. I had a look at the source code being new to the framework, it's hard to tell what exactly is the difference, Looks like the CoreModel has a better implementation of storing everything in the simdb (and hence also links up nicely with PipeViewer). And to add: I see the olympia repo contains the same core model too... What's the canonical example to learn and get started? Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
You are correct, the difference between the two examples is ... well, nil. The purpose of the DynamicModelPipeline was to be an illustration of how to use the python shell. When @avinabadasgupta decides he wants to come back to do more cool stuff, he'll hopefully pick up where he left off. 😉 The CoreModel was used as a catch-all for new ideas and testing for existing ones. It grew pretty big, pretty fast. It has lots of good examples of how to use things like simdb, simple counters, etc. But, for new comers to Sparta, it's very daunting. So, I created a new simulator called olympia which removes a lot of that cruft to show the basics of Sparta and to hopefully build a real world-class OoO CPU performance model (and maybe an interconnect model). Olympia is missing a bunch of things at the moment, but I have some cohorts to help me get it up and running with actual instruction stream injection, decoding, proper renaming/operand dependency checking, etc. Should be fun. You're more than welcome to join. The best way to get started with Sparta is looking at the examples like the Skeleton PIpeline to get the gist of the DES system and simulation creation. Moving over to Olympia is not a bad jump to see a more advanced use, but neither really tell the user how the framework works. I have a presentation I've been working on. I'll share it here (and eventually in the README). |
Beta Was this translation helpful? Give feedback.
-
BTW, another good resource that Debjyoti Bhattacharjee (of imec) started (if you're not already familiar): |
Beta Was this translation helpful? Give feedback.
You are correct, the difference between the two examples is ... well, nil. The purpose of the DynamicModelPipeline was to be an illustration of how to use the python shell. When @avinabadasgupta decides he wants to come back to do more cool stuff, he'll hopefully pick up where he left off. 😉
The CoreModel was used as a catch-all for new ideas and testing for existing ones. It grew pretty big, pretty fast. It has lots of good examples of how to use things like simdb, simple counters, etc. But, for new comers to Sparta, it's very daunting. So, I created a new simulator called olympia which removes a lot of that cruft to show the basics of Sparta and to hopefully build a real world-class OoO…