Benchmarks of ordito.neighbors against every library that computes the same thing. Each chart shows the time of every library relative to ordito on CUDA (1x, in green): a longer bar took longer. The table under each chart lists every input the function was measured on. See Benchmarks for how to read and reproduce these numbers.
Time relative to ordito (CUDA), geometric mean over the neighbors functions both implement; in parentheses, the number of functions. Log scale. Runs stopped at the time limit are left out.Values
Library
Time relative to ordito
Functions compared
ordito faster in
MeshLib
8.3x
4
4
Open3D
30x
9
9
PyTorch3D (CUDA)
57x
6
6
SciPy
74x
12
12
libigl
194x
7
7
query_nearest_bvh_k7
dragon (871 414 faces) · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
1.85 ms
1x
PyTorch3D (CUDA)
43.89 ms
24x
Open3D
117.91 ms
64x
SciPy
147.45 ms
80x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small
343.9 µs
bunny_decimated
416.8 µs
23.08 ms
3.02 ms
937.7 µs
8.45 ms
bunny
488.0 µs
250.71 ms
12.83 ms
3.78 ms
26.79 ms
dragon
1.85 ms
out of memory
117.91 ms
43.89 ms
147.45 ms
happy_buddha
1.92 ms
out of memory (predicted)
145.57 ms
55.84 ms
181.46 ms
lucy
51.67 ms
out of memory (predicted)
5.343 s
2.120 s
6.364 s
query_nearest_bvh_k64
dragon (871 414 faces) · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
3.49 ms
1x
Open3D
120.30 ms
34x
SciPy
275.25 ms
79x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
Open3D
SciPy
sphere_small
733.5 µs
bunny_decimated
1.16 ms
50.73 ms
4.37 ms
47.75 ms
bunny
1.59 ms
308.48 ms
15.42 ms
126.40 ms
dragon
3.49 ms
out of memory
120.30 ms
275.25 ms
happy_buddha
4.13 ms
out of memory (predicted)
148.28 ms
332.02 ms
lucy
57.56 ms
out of memory (predicted)
5.651 s
6.537 s
query_nearest_hashgrid_k7
dragon (871 414 faces) · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
1.23 ms
1x
Open3D
121.78 ms
99x
PyTorch3D (CUDA)
149.37 ms
121x
SciPy
151.16 ms
123x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small
229.8 µs
bunny_decimated
382.3 µs
22.50 ms
3.14 ms
8.58 ms
8.30 ms
bunny
535.5 µs
235.76 ms
12.91 ms
27.42 ms
27.11 ms
dragon
1.23 ms
out of memory
121.78 ms
149.37 ms
151.16 ms
happy_buddha
1.27 ms
out of memory (predicted)
153.61 ms
185.06 ms
193.88 ms
lucy
36.44 ms
out of memory (predicted)
5.979 s
5.964 s
5.912 s
bvh_from_points
dragon (871 414 faces) · leaf_size=4 · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
472.2 µs
1x
SciPy
93.99 ms
199x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
SciPy
sphere_small leaf_size=4
156.6 µs
sphere_small leaf_size=32
175.0 µs
bunny_decimated leaf_size=4
166.0 µs
5.54 ms
1.31 ms
bunny_decimated leaf_size=32
176.9 µs
5.66 ms
1.31 ms
bunny leaf_size=4
179.7 µs
202.23 ms
6.32 ms
bunny leaf_size=32
180.6 µs
204.55 ms
6.33 ms
dragon leaf_size=4
472.2 µs
out of memory
93.99 ms
dragon leaf_size=32
472.3 µs
out of memory
95.23 ms
happy_buddha leaf_size=4
523.5 µs
out of memory (predicted)
115.85 ms
happy_buddha leaf_size=32
524.6 µs
out of memory (predicted)
114.42 ms
lucy leaf_size=4
12.40 ms
out of memory (predicted)
4.287 s
lucy leaf_size=32
12.50 ms
out of memory (predicted)
4.268 s
hashgrid_from_points
dragon (871 414 faces) · grid_bins=32 · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
101.7 µs
1x
SciPy
93.59 ms
921x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
SciPy
sphere_small grid_bins=32
49.6 µs
sphere_small grid_bins=256
141.7 µs
bunny_decimated grid_bins=32
89.5 µs
5.71 ms
1.28 ms
bunny_decimated grid_bins=256
165.6 µs
5.57 ms
1.31 ms
bunny grid_bins=32
90.2 µs
203.04 ms
6.74 ms
bunny grid_bins=256
166.9 µs
202.95 ms
6.34 ms
dragon grid_bins=32
101.7 µs
out of memory
93.59 ms
dragon grid_bins=256
177.7 µs
out of memory
93.64 ms
happy_buddha grid_bins=32
92.4 µs
out of memory (predicted)
117.82 ms
happy_buddha grid_bins=256
180.9 µs
out of memory (predicted)
113.43 ms
lucy grid_bins=32
861.3 µs
out of memory (predicted)
4.272 s
lucy grid_bins=256
1.08 ms
out of memory (predicted)
4.278 s
query_ball_bvh
dragon (871 414 faces) · radius_scale=2.0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
351.6 µs
1x
Open3D
1.83 ms
5.2x
SciPy
47.73 ms
136x
PyTorch3D (CUDA)
50.68 ms
144x
All inputs
Input
ordito (CUDA)
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small radius_scale=2.0
246.9 µs
sphere_small radius_scale=4.0
540.6 µs
bunny_decimated radius_scale=2.0
306.4 µs
1.37 ms
18.40 ms
17.93 ms
bunny_decimated radius_scale=4.0
750.3 µs
2.42 ms
49.73 ms
47.89 ms
bunny radius_scale=2.0
306.8 µs
3.00 ms
45.53 ms
45.39 ms
bunny radius_scale=4.0
728.0 µs
5.46 ms
128.17 ms
128.77 ms
dragon radius_scale=2.0
351.6 µs
1.83 ms
50.68 ms
47.73 ms
dragon radius_scale=4.0
946.4 µs
4.27 ms
115.29 ms
120.80 ms
happy_buddha radius_scale=2.0
352.0 µs
1.67 ms
48.35 ms
47.38 ms
happy_buddha radius_scale=4.0
907.5 µs
4.16 ms
110.20 ms
120.45 ms
lucy radius_scale=2.0
208.3 µs
825.7 µs
75.87 ms
69.63 ms
lucy radius_scale=4.0
460.1 µs
1.41 ms
122.22 ms
122.91 ms
query_bvh_box
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
647.9 µs
1x
Open3D
186.99 ms
289x
All inputs
Input
ordito (CUDA)
Open3D
sphere_small
436.1 µs
bunny_decimated
589.2 µs
5.95 ms
bunny
557.9 µs
17.65 ms
dragon
647.9 µs
186.99 ms
happy_buddha
545.4 µs
306.65 ms
lucy
263.6 µs
9.843 s
query_ball_hashgrid
dragon (871 414 faces) · grid_bins=32 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
1.04 ms
1x
Open3D
1.74 ms
1.7x
SciPy
47.87 ms
46x
PyTorch3D (CUDA)
117.84 ms
114x
All inputs
Input
ordito (CUDA)
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small grid_bins=32
271.5 µs
sphere_small grid_bins=256
269.3 µs
bunny_decimated grid_bins=32
349.7 µs
1.42 ms
2.08 ms
18.16 ms
bunny_decimated grid_bins=256
369.6 µs
1.47 ms
2.07 ms
18.25 ms
bunny grid_bins=32
433.4 µs
3.12 ms
10.84 ms
44.91 ms
bunny grid_bins=256
366.4 µs
3.10 ms
10.84 ms
45.38 ms
dragon grid_bins=32
1.04 ms
1.74 ms
117.84 ms
47.87 ms
dragon grid_bins=256
422.1 µs
1.71 ms
115.60 ms
47.85 ms
happy_buddha grid_bins=32
1.18 ms
1.64 ms
138.98 ms
52.94 ms
happy_buddha grid_bins=256
409.6 µs
1.71 ms
139.00 ms
45.92 ms
lucy grid_bins=32
31.20 ms
825.8 µs
3.575 s
69.90 ms
lucy grid_bins=256
372.1 µs
834.9 µs
3.575 s
71.36 ms
query_nearest_bvh_k1
dragon (871 414 faces) · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
625.7 µs
1x
MeshLib
15.65 ms
25x
PyTorch3D (CUDA)
33.85 ms
54x
Open3D
125.54 ms
201x
SciPy
167.32 ms
267x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
MeshLib
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small
193.1 µs
bunny_decimated
226.1 µs
22.52 ms
534.1 µs
2.80 ms
666.5 µs
5.57 ms
bunny
259.6 µs
238.25 ms
1.73 ms
11.65 ms
2.82 ms
20.99 ms
dragon
625.7 µs
out of memory
15.65 ms
125.54 ms
33.85 ms
167.32 ms
happy_buddha
808.5 µs
out of memory (predicted)
16.02 ms
145.44 ms
40.85 ms
188.75 ms
lucy
17.02 ms
out of memory (predicted)
614.42 ms
5.530 s
1.815 s
6.196 s
query_nearest_hashgrid_k1
dragon (871 414 faces) · time relative to ordito, log scale · a red cross is a run that left no timeValues
Library
Median
Relative to ordito
ordito (CUDA)
981.3 µs
1x
MeshLib
17.04 ms
17x
Open3D
131.70 ms
134x
SciPy
145.69 ms
148x
PyTorch3D (CUDA)
165.11 ms
168x
libigl
out of memory
All inputs
Input
ordito (CUDA)
libigl
MeshLib
Open3D
PyTorch3D (CUDA)
SciPy
sphere_small
248.8 µs
bunny_decimated
280.6 µs
21.44 ms
647.8 µs
2.75 ms
5.23 ms
5.03 ms
bunny
321.7 µs
270.12 ms
1.80 ms
11.72 ms
19.80 ms
18.39 ms
dragon
981.3 µs
out of memory
17.04 ms
131.70 ms
165.11 ms
145.69 ms
happy_buddha
1.06 ms
out of memory (predicted)
16.87 ms
157.41 ms
190.42 ms
164.32 ms
lucy
18.29 ms
out of memory (predicted)
613.10 ms
5.668 s
6.376 s
6.451 s
query_ball
dragon (871 414 faces) · radius_scale=2.0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
SciPy
60.17 ms
0.58x
ordito (CUDA)
103.19 ms
1x
All inputs
Input
ordito (CUDA)
SciPy
sphere_small radius_scale=2.0
3.38 ms
sphere_small radius_scale=4.0
3.68 ms
bunny_decimated radius_scale=2.0
10.63 ms
22.35 ms
bunny_decimated radius_scale=4.0
11.56 ms
61.99 ms
bunny radius_scale=2.0
28.15 ms
55.89 ms
bunny radius_scale=4.0
103.63 ms
163.65 ms
dragon radius_scale=2.0
103.19 ms
60.17 ms
dragon radius_scale=4.0
25.44 ms
146.93 ms
happy_buddha radius_scale=2.0
27.29 ms
63.94 ms
happy_buddha radius_scale=4.0
103.02 ms
149.76 ms
lucy radius_scale=2.0
25.62 ms
86.24 ms
lucy radius_scale=4.0
25.85 ms
144.54 ms
query_ball_count
dragon (871 414 faces) · radius_scale=2.0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
189.3 µs
1x
SciPy
52.25 ms
276x
All inputs
Input
ordito (CUDA)
SciPy
sphere_small radius_scale=2.0
119.4 µs
sphere_small radius_scale=4.0
277.6 µs
bunny_decimated radius_scale=2.0
163.1 µs
15.18 ms
bunny_decimated radius_scale=4.0
421.4 µs
29.27 ms
bunny radius_scale=2.0
167.3 µs
39.33 ms
bunny radius_scale=4.0
419.9 µs
69.71 ms
dragon radius_scale=2.0
189.3 µs
52.25 ms
dragon radius_scale=4.0
528.1 µs
92.06 ms
happy_buddha radius_scale=2.0
190.7 µs
49.48 ms
happy_buddha radius_scale=4.0
517.4 µs
92.45 ms
lucy radius_scale=2.0
103.8 µs
83.39 ms
lucy radius_scale=4.0
247.0 µs
146.27 ms
closest_pair
sphere_large (327 680 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
420.8 µs
1x
MeshLib
7.88 ms
19x
SciPy
125.84 ms
299x
All inputs
Input
ordito (CUDA)
MeshLib
SciPy
sphere_small
209.7 µs
619.3 µs
1.70 ms
sphere_med
357.5 µs
2.32 ms
28.75 ms
sphere_large
420.8 µs
7.88 ms
125.84 ms
nearest_neighbor_distance
sphere_large (327 680 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
451.6 µs
1x
MeshLib
7.34 ms
16x
Open3D
44.78 ms
99x
All inputs
Input
ordito (CUDA)
MeshLib
Open3D
sphere_small
230.7 µs
352.1 µs
622.7 µs
sphere_med
345.6 µs
2.08 ms
11.31 ms
sphere_large
451.6 µs
7.34 ms
44.78 ms
Without a reference
No other library computes these, so they have no comparison. ordito (CUDA)'s median time on the largest input it was measured on: