  mkFit is an implementation of the Kalman filter-based track reconstruction
algorithm that exploits both thread- and data-level parallelism. In the past
few years the project transitioned from the R&D phase to deployment in the
Run-3 offline workflow of the CMS experiment. The CMS tracking performs a
series of iterations, targeting reconstruction of tracks of increasing
difficulty after removing hits associated to tracks found in previous
iterations. mkFit has been adopted for several of the tracking iterations,
which contribute to the majority of reconstructed tracks. When tested in the
standard conditions for production jobs, speedups in track pattern recognition
are on average of the order of 3.5x for the iterations where it is used (3-7x
depending on the iteration).
  Multiple factors contribute to the observed speedups, including vectorization
and a lightweight geometry description, as well as improved memory management
and single precision. Efficient vectorization is achieved with both the icc and
the gcc (default in CMSSW) compilers and relies on a dedicated library for
small matrix operations, Matriplex, which has recently been released in a
public repository. While the mkFit geometry description already featured levels
of abstraction from the actual Phase-1 CMS tracker, several components of the
implementations were still tied to that specific geometry. We have further
generalized the geometry description and the configuration of the run-time
parameters, in order to enable support for the Phase-2 upgraded tracker
geometry for the HL-LHC and potentially other detector configurations. The
implementation strategy and high-level code changes required for the HL-LHC
geometry are presented. Speedups in track building from mkFit imply that track
fitting becomes a comparably time consuming step of the tracking chain.
