Skip to content

energies

Benchmarks of ordito.energies 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)1xPyTorch3D (CUDA): 11x ordito's time, geometric mean over 3 functions; slower than ordito in 3PyTorch3D (CUDA)11x (3)libigl: 47x ordito's time, geometric mean over 5 functions; slower than ordito in 5libigl47x (5)
Time relative to ordito (CUDA), geometric mean over the energies 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
PyTorch3D (CUDA) 11x 3 3
libigl 47x 5 5

edge_length_loss

0.1x1x10xordito (CUDA): 262.8 µs, 1x ordito's timeordito (CUDA)1x · 262.8 µsPyTorch3D (CUDA): 1.89 ms, 7.2x ordito's timePyTorch3D (CUDA)7.2x · 1.89 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 262.8 µs 1x
PyTorch3D (CUDA) 1.89 ms 7.2x
All inputs
Input ordito (CUDA) PyTorch3D (CUDA)
sphere_small 157.6 µs 1.19 ms
sphere_med 175.5 µs 1.25 ms
sphere_large 262.8 µs 1.89 ms

laplacian_smoothing_loss

0.1x1x10xordito (CUDA): 355.1 µs, 1x ordito's timeordito (CUDA)1x · 355.1 µsPyTorch3D (CUDA): 2.84 ms, 8x ordito's timePyTorch3D (CUDA)8x · 2.84 ms
sphere_large (327 680 faces) · method=uniform · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 355.1 µs 1x
PyTorch3D (CUDA) 2.84 ms 8x
All inputs
Input ordito (CUDA) PyTorch3D (CUDA)
sphere_small method=uniform 200.6 µs 1.71 ms
sphere_small method=cotcurv 184.3 µs 1.44 ms
sphere_med method=uniform 236.9 µs 1.84 ms
sphere_med method=cotcurv 242.4 µs 1.58 ms
sphere_large method=uniform 355.1 µs 2.84 ms
sphere_large method=cotcurv 482.9 µs 2.14 ms

k_harmonic

0.1x1x10x100xordito (CUDA): 3.48 ms, 1x ordito's timeordito (CUDA)1x · 3.48 mslibigl: 150.69 ms, 43x ordito's timelibigl43x · 150.69 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 3.48 ms 1x
libigl 150.69 ms 43x
All inputs
Input ordito (CUDA) libigl
sphere_small 174.0 µs 1.60 ms
sphere_med 346.5 µs 33.40 ms
sphere_large 3.48 ms 150.69 ms

hessian_energy

0.1x1x10x100xordito (CUDA): 21.64 ms, 1x ordito's timeordito (CUDA)1x · 21.64 mslibigl: 1.143 s, 53x ordito's timelibigl53x · 1.143 s
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 21.64 ms 1x
libigl 1.143 s 53x
All inputs
Input ordito (CUDA) libigl
sphere_small 674.2 µs 17.00 ms
sphere_med 4.09 ms 199.80 ms
sphere_large 21.64 ms 1.143 s

curved_hessian_energy

0.1x1x10x100xordito (CUDA): 16.02 ms, 1x ordito's timeordito (CUDA)1x · 16.02 mslibigl: 1.578 s, 99x ordito's timelibigl99x · 1.578 s
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 16.02 ms 1x
libigl 1.578 s 99x
All inputs
Input ordito (CUDA) libigl
sphere_small 535.2 µs 24.24 ms
sphere_med 3.62 ms 334.55 ms
sphere_large 16.02 ms 1.578 s

crouzeix_raviart_cotmatrix

0.1x1x10x100x1000xordito (CUDA): 192.7 µs, 1x ordito's timeordito (CUDA)1x · 192.7 µslibigl: 86.77 ms, 450x ordito's timelibigl450x · 86.77 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 192.7 µs 1x
libigl 86.77 ms 450x
All inputs
Input ordito (CUDA) libigl
sphere_small 130.1 µs 3.39 ms
sphere_med 200.3 µs 17.92 ms
sphere_large 192.7 µs 86.77 ms

crouzeix_raviart_massmatrix

0.1x1x10x100x1000xordito (CUDA): 96.7 µs, 1x ordito's timeordito (CUDA)1x · 96.7 µslibigl: 13.45 ms, 139x ordito's timelibigl139x · 13.45 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 96.7 µs 1x
libigl 13.45 ms 139x
All inputs
Input ordito (CUDA) libigl
sphere_small 62.2 µs 152.5 µs
sphere_med 86.7 µs 3.00 ms
sphere_large 96.7 µs 13.45 ms

normal_consistency_loss

0.1x1x10x100xordito (CUDA): 217.3 µs, 1x ordito's timeordito (CUDA)1x · 217.3 µsPyTorch3D (CUDA): 16.59 ms, 76x ordito's timePyTorch3D (CUDA)76x · 16.59 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 217.3 µs 1x
PyTorch3D (CUDA) 16.59 ms 76x
All inputs
Input ordito (CUDA) PyTorch3D (CUDA)
sphere_small 177.4 µs 1.73 ms
sphere_med 167.5 µs 2.72 ms
sphere_large 217.3 µs 16.59 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)
lscm_hessian sphere_large 729.1 µs
vector_area_matrix hemisphere 225.6 µs