-
Notifications
You must be signed in to change notification settings - Fork 13
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
perf: euclidean distance field acceleration #11
Conversation
In Kimimaro, an important class of problem is somata: large nearly spherical spaces. In those cases, the starting point is located at the maximum value of the distance to boundary field. It should be safe to use that single value to define a voxel radius within which it is safe to assume free space. This isn't a general solution to the problem, but can prove the hybrid approach is useful. |
Time reduction less than anticipated. How much work is the dijkstra loop doing redundantly?
refactor: switch dist and free_space_radius positions
To be continued... maybe I'll find a good way to use the EDF eqn repeatedly. |
This is an experimental concept. We can compute the distance from a point source in open space using an equation, which is far faster than using the dijkstra based method (1.2 MVx/sec (105.9 sec) vs 192 MVx/sec (0.65 sec) on a field of ones). However, the method is extremely brittle as an kind of kink in the shape invalidates the results of the equation.
I'm trying to find a way to hybridize the free space equation and dijkstra's method.
Problems:
Ideas:
If we can make this faster, it accounts for about 20% of Kimimaro's run time.