-
Notifications
You must be signed in to change notification settings - Fork 125
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
Improve Continuous scatter-plot tetrahedron classification #920
Conversation
ping @CharlesGueunet for review :) |
+1 after small question |
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.
Thanks a lot for this PR !
May that be the first of many :)
That's great stuff. I only observed a 9% speedup on my end but that's still good to take!!!
Could you please address the few remarks I left in the code?
Thanks!
alright, it's all good to me :) random question: |
I tested both on Intel i7-7700HQ (8 cores) and 12th Gen Intel i9-12900K (24 cores) with double-templating enabled and got a more or less 20% improvement. For this benchmark however, I excluded the rendering part of the algorithm which takes the most time out of all steps especially for large images, to get the speedup only on the core classification & density computation. |
Nothing to add on my side :) |
alright, let's go for it then :) |
Thanks for contributing to TTK!
Before submitting your pull request, please:
Review our Contributor Guidelines, in particular regarding code formatting (with clang-format) and continuous integration.
Please provide a quick description of your contributions below:
Following similar work on the VTK-m libary, improve the continuous Scatterplot implementation of Shirley-Tuchman tetrahedron classification. This PR also does variable renaming for maintainability.
For each tetrahedron, instead of 4 barycentric coordinates and 3 segment intersections computations in the worst case, all we do now is 4 single-coordinate cross products. The full explanation is provided in the code comments.
This change allows an estimated 20% speedup on the filter execution, rendering non included.