Skip to content

heat

Benchmarks of ordito.heat 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.1x1x10x100xordito (CUDA): the reference, 1xordito (CUDA)1xPyVista: 1.3x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyVista1.3x (1)libigl: 17x ordito's time, geometric mean over 2 functions; slower than ordito in 2libigl17x (2)MeshLab: 19x ordito's time, geometric mean over 2 functions; slower than ordito in 2MeshLab19x (2)potpourri3d: 19x ordito's time, geometric mean over 8 functions; slower than ordito in 8potpourri3d19x (8)
Time relative to ordito (CUDA), geometric mean over the heat 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
PyVista 1.3x 1 1
libigl 17x 2 2
MeshLab 19x 2 2
potpourri3d 19x 8 8

heat_geodesic

0.1x1x10x100xordito (CUDA): 6.68 ms, 1x ordito's timeordito (CUDA)1x · 6.68 msPyVista: 23.72 ms, 3.5x ordito's timePyVista3.5x · 23.72 mspotpourri3d: 539.58 ms, 81x ordito's timepotpourri3d81x · 539.58 mslibigl: 597.39 ms, 89x ordito's timelibigl89x · 597.39 msMeshLab: 601.38 ms, 90x ordito's timeMeshLab90x · 601.38 ms
sphere_med (81 920 faces) · setup=full · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 6.68 ms 1x
PyVista 23.72 ms 3.5x
potpourri3d 539.58 ms 81x
libigl 597.39 ms 89x
MeshLab 601.38 ms 90x
All inputs
Input ordito (CUDA) libigl MeshLab potpourri3d PyVista
sphere_small setup=full 4.07 ms 20.79 ms 11.35 ms 8.95 ms 1.89 ms
sphere_small setup=amortized 336.5 µs 396.1 µs 2.42 ms 378.5 µs
sphere_med setup=full 6.68 ms 597.39 ms 601.38 ms 539.58 ms 23.72 ms
sphere_med setup=amortized 751.9 µs 12.03 ms 54.45 ms 12.40 ms
sphere_large setup=full 22.48 ms 5.708 s 6.926 s 6.812 s
sphere_large setup=amortized 1.51 ms 77.03 ms 301.56 ms 78.40 ms

heat_geodesic_conditioning

0.1x1x10x100xordito (CUDA): 7.62 ms, 1x ordito's timeordito (CUDA)1x · 7.62 mspotpourri3d: 59.37 ms, 7.8x ordito's timepotpourri3d7.8x · 59.37 msMeshLab: 72.34 ms, 9.5x ordito's timeMeshLab9.5x · 72.34 mslibigl: 122.93 ms, 16x ordito's timelibigl16x · 122.93 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 7.62 ms 1x
potpourri3d 59.37 ms 7.8x
MeshLab 72.34 ms 9.5x
libigl 122.93 ms 16x
All inputs
Input ordito (CUDA) libigl MeshLab potpourri3d
saddle 7.62 ms 122.93 ms 72.34 ms 59.37 ms
saddle_graded 11.27 ms 124.86 ms 71.56 ms 58.67 ms

heat_signed_distance

0.1x1x10x100x1000xordito (CUDA): 9.65 ms, 1x ordito's timeordito (CUDA)1x · 9.65 mspotpourri3d: 1.033 s, 107x ordito's timepotpourri3d107x · 1.033 s
sphere_med (81 920 faces) · curve_kind=ring · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 9.65 ms 1x
potpourri3d 1.033 s 107x
All inputs
Input ordito (CUDA) potpourri3d
sphere_med curve_kind=ring 9.65 ms 1.033 s
sphere_med curve_kind=band 5.04 ms 1.010 s

heat_signed_distance_conditioning

0.1x1x10x100xordito (CUDA): 6.46 ms, 1x ordito's timeordito (CUDA)1x · 6.46 mspotpourri3d: 509.36 ms, 79x ordito's timepotpourri3d79x · 509.36 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 6.46 ms 1x
potpourri3d 509.36 ms 79x
All inputs
Input ordito (CUDA) potpourri3d
saddle 6.46 ms 509.36 ms
saddle_graded 17.08 ms 511.72 ms

extend_scalar

0.1x1x10xordito (CUDA): 5.41 ms, 1x ordito's timeordito (CUDA)1x · 5.41 mspotpourri3d: 40.14 ms, 7.4x ordito's timepotpourri3d7.4x · 40.14 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 5.41 ms 1x
potpourri3d 40.14 ms 7.4x
All inputs
Input ordito (CUDA) potpourri3d
saddle 5.41 ms 40.14 ms
saddle_graded 10.21 ms 40.38 ms

transport_tangent_vectors

0.1x1x10x100xordito (CUDA): 6.45 ms, 1x ordito's timeordito (CUDA)1x · 6.45 mspotpourri3d: 144.44 ms, 22x ordito's timepotpourri3d22x · 144.44 ms
saddle (34 848 faces) · setup=full · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 6.45 ms 1x
potpourri3d 144.44 ms 22x
All inputs
Input ordito (CUDA) potpourri3d
saddle setup=full 6.45 ms 144.44 ms
saddle setup=amortized 697.4 µs 3.20 ms
saddle_graded setup=full 17.11 ms 144.41 ms
saddle_graded setup=amortized 730.4 µs 3.11 ms

log_map

0.1x1x10x100xordito (CUDA): 10.04 ms, 1x ordito's timeordito (CUDA)1x · 10.04 mspotpourri3d: 170.13 ms, 17x ordito's timepotpourri3d17x · 170.13 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 10.04 ms 1x
potpourri3d 170.13 ms 17x
All inputs
Input ordito (CUDA) potpourri3d
saddle 10.04 ms 170.13 ms
saddle_graded 19.42 ms 172.57 ms

vector_heat_scale

0.1x1x10x100x1000xordito (CUDA): 42.08 ms, 1x ordito's timeordito (CUDA)1x · 42.08 mspotpourri3d: 7.657 s, 182x ordito's timepotpourri3d182x · 7.657 s
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 42.08 ms 1x
potpourri3d 7.657 s 182x
All inputs
Input ordito (CUDA) potpourri3d
sphere_small 2.47 ms 8.27 ms
sphere_med 8.05 ms 547.19 ms
sphere_large 42.08 ms 7.657 s

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)
heat_signed_distance_constraint sphere_med level_set_constraint=none 8.33 ms
vector_heat_operators sphere_large 790.1 µs
tangent_to_world lucy 410.5 µs
diffuse_tangent_field saddle_graded 14.71 ms
heat_solver_factor saddle_graded 4.95 ms
heat_solver_diffuse saddle_graded 229.5 µs
heat_solver_diffuse_tangent saddle_graded 324.6 µs
heat_solver_diffuse_stacked saddle_graded 596.2 µs
heat_solver_solve_poisson saddle_graded 237.3 µs