Skip to content

Performance enhancements

David-Leon Pohl requested to merge performance_enhancements_1 into development

This MR collects a few performance enhancements:

  1. The computational time of the pixel.masks.update() RD53A function is reduced to ~60%, by JITing the slowest part of the assembly of pixel register data. This mainly speeds up steps where the complete mask is written by ~ 0.8 s (configuration step, TDAC tuning iteration). Fast scans (e.g. digital/analog scan) will profit by a few seconds (10%-25%) depending on the PC. The new data stream to write pixel registers is exactly the same to the old one. That is also checked in dedicated unit tests.

sum_example

2. Use mask creation in software parallel to hardware injection loop. This feature was effectively there since a long time, but somehow we missed to activate it. It is activated now and gives on the hardware_runner PC a speed up of 15% for the digital scan without analysis. Peak CPU usage for the main process is reduced from 68% to 55% (just looking at htop). The time spend doing nothing, while waiting for the injections to finish reduces from 6.2 s --> 3.4 s. not implemented

  1. Speed up command encoding using numba --> 20% speed up for writing commands for RD53A/B. Decreases scan time of digital scan by ~ 3s or 10%.
Edited by David-Leon Pohl

Merge request reports