Skip to content

Intel Embree point locator

This MR provides initial results of experimentation with employing Intel Embree for VTK algorithm acceleration. @demarle provided the initial implementation of a point locator based on Embree's closest point query infrastructure to enable a performance boost over existing VTK point locators. this MR cleans up that work and provides a test which confirms correctness as well as performance gains.

This work requires the optional dependency Embree.

Tested on a 2021 MacBook Pro (2.4 GHz 8-Core Intel Core i9 processor, 32 GB RAM, AMD Radeon Pro 5500M GPU). Demonstrated roughly 100-300% performance improvement over vtkKdTreePointLocator and vtkPointLocator.

Unfortunately, Embree does not accept Point primitives in its point query infrastructure. This implementation works around that by drawing a small triangle primitive around each point in the domain and detecting closeness to the triangles. This has obvious memory implications, but still provides desired performance improvements.

In future work, we desire to make this "zero copy" likely by providing a custom geometry description which Embree's point locator can utilize.

Merge request reports