Skip to content

graph

Benchmarks of ordito.graph 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.

Measured on GPU: NVIDIA GeForce RTX 5090 · CPU: Intel Xeon w7-2495X

Summary

0.1x1x10x100x1000xordito (CUDA): the reference, 1xordito (CUDA)1xSciPy: 36x ordito's time, geometric mean over 4 functions; slower than ordito in 4SciPy36x (4)MeshLib: 44x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLib44x (1)libigl: 157x ordito's time, geometric mean over 5 functions; slower than ordito in 5libigl157x (5)MeshLab: 520x ordito's time, geometric mean over 2 functions; slower than ordito in 2MeshLab520x (2)
Time relative to ordito (CUDA), geometric mean over the graph 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
SciPy 36x 4 4
MeshLib 44x 1 1
libigl 157x 5 5
MeshLab 520x 2 2

connected_component_labels

0.1x1x10x100x1000xordito (CUDA): 51.3 µs, 1x ordito's timeordito (CUDA)1x · 51.3 µsSciPy: 1.79 ms, 35x ordito's timeSciPy35x · 1.79 msMeshLib: 1.84 ms, 36x ordito's timeMeshLib36x · 1.84 mslibigl: 8.15 ms, 159x ordito's timelibigl159x · 8.15 msMeshLab: 17.78 ms, 346x ordito's timeMeshLab346x · 17.78 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 51.3 µs 1x
SciPy 1.79 ms 35x
MeshLib 1.84 ms 36x
libigl 8.15 ms 159x
MeshLab 17.78 ms 346x
All inputs
Input ordito (CUDA) libigl MeshLab MeshLib SciPy
sphere_med 51.3 µs 8.15 ms 17.78 ms 1.84 ms 1.79 ms
parts_64 32.3 µs 7.69 ms 15.06 ms 1.60 ms 1.52 ms
parts_1024 30.7 µs 7.62 ms 12.97 ms 1.43 ms 1.36 ms

connected_component_labels_depth

0.1x1x10x100x1000xordito (CUDA): 50.7 µs, 1x ordito's timeordito (CUDA)1x · 50.7 µsSciPy: 1.74 ms, 34x ordito's timeSciPy34x · 1.74 mslibigl: 8.14 ms, 161x ordito's timelibigl161x · 8.14 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 50.7 µs 1x
SciPy 1.74 ms 34x
libigl 8.14 ms 161x
All inputs
Input ordito (CUDA) libigl SciPy
ribbon_long 44.0 µs 4.07 ms 750.9 µs
sphere_med 50.7 µs 8.14 ms 1.74 ms

shortest_path_envelope

0.1x1x10x100x1000x10000xordito (CUDA): 241.5 µs, 1x ordito's timeordito (CUDA)1x · 241.5 µsMeshLab: 543.56 ms, 2251x ordito's timeMeshLab2251x · 543.56 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 241.5 µs 1x
MeshLab 543.56 ms 2251x
All inputs
Input ordito (CUDA) MeshLab
sphere_small 244.0 µs
bunny_decimated 250.1 µs 5.41 ms
bunny 277.9 µs 24.55 ms
dragon 241.5 µs 543.56 ms
happy_buddha 243.9 µs 662.56 ms
lucy 1.96 ms 21.100 s

edges_to_neighbor_lists

0.1x1x10x100x1000x10000xordito (CUDA): 119.1 µs, 1x ordito's timeordito (CUDA)1x · 119.1 µslibigl: 576.95 ms, 4844x ordito's timelibigl4844x · 576.95 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 119.1 µs 1x
libigl 576.95 ms 4844x
All inputs
Input ordito (CUDA) libigl
sphere_small 60.6 µs
bunny_decimated 74.8 µs 3.85 ms
bunny 85.7 µs 25.13 ms
dragon 119.1 µs 576.95 ms
happy_buddha 118.1 µs 931.79 ms
lucy 1.22 ms 16.911 s

connected_component_labels_from_edges

0.1x1x10x100xordito (CUDA): 80.6 µs, 1x ordito's timeordito (CUDA)1x · 80.6 µsSciPy: 1.92 ms, 24x ordito's timeSciPy24x · 1.92 mslibigl: 2.14 ms, 27x ordito's timelibigl27x · 2.14 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 80.6 µs 1x
SciPy 1.92 ms 24x
libigl 2.14 ms 27x
All inputs
Input ordito (CUDA) libigl SciPy
sphere_med 80.6 µs 2.14 ms 1.92 ms
parts_64 63.2 µs 1.63 ms 1.60 ms
parts_1024 75.2 µs 1.50 ms 1.68 ms

face_connected_component_labels_depth

0.1x1x10x100x1000xordito (CUDA): 130.3 µs, 1x ordito's timeordito (CUDA)1x · 130.3 µsSciPy: 27.20 ms, 209x ordito's timeSciPy209x · 27.20 mslibigl: 35.34 ms, 271x ordito's timelibigl271x · 35.34 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 130.3 µs 1x
SciPy 27.20 ms 209x
libigl 35.34 ms 271x
All inputs
Input ordito (CUDA) libigl SciPy
ribbon_long 343.0 µs 13.03 ms 7.23 ms
sphere_med 130.3 µs 35.34 ms 27.20 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:

Function Input ordito (CUDA)
edges_to_csr lucy 19.88 ms
edges_to_neighbor_lists_from_counts lucy 828.9 µs
connected_component_parity_from_edges lucy 3.47 ms
successor_cycles sphere_large shape=one_cycle 339.6 µs
successor_cycles_from_table sphere_large shape=one_cycle 346.0 µs