Reorganize CPU kernels
The CPU kernels used to be compiled into shared libraries at runtime. The runtime compilation has been removed a long time ago, but the loading of the shared libraries has remained. This is also removed, resulting in simpler code.
There were a number of inconsistencies between argument lists of the Reference and Optimized kernels (e.g. const or idg::float2
/std::complex<float>
). These things are now fixed such that the InstanceCPU
now serves as an abstract interface for ReferenceKernels
and OptimizedKernels
. In this process, some other miscellaneous cleanup tasks are also performed.
The integration test tIDGCalDPStep
fails with a segmentation fault in the CI, because DP3
still links to an old IDG version that handles enabling/disabling W-Tiling differently. Running the test manually works correctly and we therefore proceed with merging this MR.