-
Notifications
You must be signed in to change notification settings - Fork 197
Reimplementation of quiet and signalling nan propagation on x87 #5025
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
base: main
Are you sure you want to change the base?
Conversation
bylaws
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps I'm missing something but I would expect the strict option here to control the silencenan code emission in storestackmem, FromF64_PerserveNan is definitely cheap enough as to not require an option at least. Perhaps it would be nicer to make reduced precision and enum rather than adding a new option
c24486e to
7cd789c
Compare
|
Whats the instcountci blow up if this is enabled btw? I'm curious |
7cd789c to
8db894f
Compare
I understand that from a performance perspective we could do the check in The downside of making reduced precision an enum is that this is not backwards compatible and will require everyone to update their config files. I think it was initially @Sonicadvance1 who suggested a stricter version of reduced precision in my initial pr. Wonder what he would think of making reduced precision and strenum. :) |
I will get these for you today. |
a30769d to
530c77a
Compare
|
I was researching if theres a better way to do this, and came up with below ASM: @Sonicadvance1 think we could just enable by default given this? given in most cases it's effectively 3 insts, could get to two insts with sve (albeit same per mca since fcmuo has much lower throughput) |
530c77a to
eb78617
Compare
Nice - I took a stab at trying that out. |
Initially implemented in FEX-Emu#4835, later reverted in FEX-Emu#4981.
eb78617 to
608701e
Compare
|
@bylaws that was great. take a look. :) |
| } | ||
| } | ||
|
|
||
| void UpdateX87PrecisionConfig() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function isn't correct. This'll tear the config across what FEX_CONFIG_OPT has already been loaded versus not. This should be moved to FEXCore/Source/Interface/Config/Config.cpp in ReloadMetaLayer towards the end. You can see how single stepping changes the MaxInst config and you could do something similar for this there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure. I will take a look. regarding @bylaws comment, should we then keep the strict mode even with the reduced performance impact?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we get some perf numbers from the x87 heavy games? I can see Psychonauts multiblock things have doubled in size.
|
You'll want to pool the casted constant through RA, rather than materializing it every time before benchmarking |
Reimplementation of quiet and signalling nan propagation on x87
Initially implemented in #4835, later reverted in #4981.
Depends on #5011 .