-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement micro op fusion in decode stage. #113
Comments
Oh, absolutely! The challenge here is -- can you build a small fusion framework in Olympia that allows a user of the model to experiment with configurable combinations? In other words -- do not hard-code the pairings in the simulator, set up a framework that is runtime programmable via YAML or JSON to identify pairings. That'd be really cool and very powerful. |
@klingaard Is there any support for this in mavis? I saw a morph instruction function. |
@klingaard maybe we can add those configure into small_core.yaml ? |
Yes, and you're correct, it's related to the
I think that's reasonable, but you might run into limitations with YAML to properly identify pairings. Dunno until there's a design in place for how you want to do it. Suggestion: Might want to specify a different language (an XML derivative with a DOM) and reference that:
My suggestion for this entire effort: move this to a discussion and create a design document. Start with a use case, specifically, which pairs will you initially be fusing? For those pairs, what are the constraints? For example, the first instruction must be an From there, you can help you determine the "language" you want to build to specify the pairings -- and how a generic fuser will convert that into runtime code... |
So @jeffnye-gh has been looking at this. Discussion: #121 |
I believe this can be closed now. Support for fusion is available through the FSL API and FusionDecoder.cpp |
In the decode stage, we might find several pairs of uops that can be merged into one instruction to increase performance. Since this optimization is common in modern high-performance CPUs, we can add this feature for users to model the performance gain.
The text was updated successfully, but these errors were encountered: