Skip to content

Vectorisation of Jacobian update in Runge Kutta

This MR collects work by @christos @amorley and @ssnyder who vectorised an important piece of the Runge-Kutta, in form of the Jacobian update, in the context of our tracking code.

As this algebra is in fact currently implemented in two independent locations InDetTrajectoryElement_xk and RungeKuttaPropagator - we create a common header providing an inlined implementation that can be used by both.

As this is performance-critical code, we have kept changes to the interface minimal, to avoid any unnecessary overhead.

Benchmarking indicates the Jacobian update will be sped up by O(30%) by this MR. Compared to total tracking, we are expecting to stay within percent-level CPU, but this is a first step towards a wider vectorisation effort.

Also adding @sroe, @npetters and @gavrilen.

Edited by Maximilian Emanuel Goblirsch-Kolb

Merge request reports