-
-
Notifications
You must be signed in to change notification settings - Fork 37
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
Cache optimization #135
Merged
Merged
Cache optimization #135
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
body set progress
started testing
back to sleeping and solver sets
bug fixes
more benchmarks and results
body disable wip
testing
improved validation fixes for graph coloring and sensors
cleanup
new benchmark results capacities from world def
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactored internal storage to use solver sets for improved memory locality and improved performance as a result.
There is now a hot/cold split for bodies, contacts, and joints.
This is a huge change as the layout of memory has changed completely. Some things, such as enable/disable bodies and changing the body type are quite complex now. So this required a lot of testing and validation code.
Bodies, contacts, and joints data is now moved when an island goes to sleep or wakes up.
Static bodies exist in their own solver set, but this is hidden from the user. All solver set details are hidden from the user and they provide no user facing features other than improved performance.
I also added a benchmark application with several benchmarks. These generate CSV files with results.
400 pyramids, 22000 bodies
time in milliseconds (8 cores on 7950x)
solver set branch
step 2.3
-- collide 1.15
-- solve 1.15
main branch
step 3.3
-- collide 1.45
-- solve 1.7