Scifi decoding optimisations
Related to #489 (closed)
- Fix an issue in v7/v8 causing the layers to not be completely ordered in x, causing -3% long track efficiencies
Details:
- Move logic out of the decoder, it is now version generic and only apply the geometric transformations
- Modify the cluster count kernel to produce offset at the sipm granularity: increase the number of offsets by a factor 8 but fix an issue that would cause the layer to not be sorted
- Move the hit count prefix sum to gpu (since its dealing with a large array of n_events x 4096 offsets, gpu is faster than cpu with the proper optimisations)
- Optimise the gpu prefix sum: unroll loops, use a conflict free access pattern for shared memory, process 8 elements per thread instead of 2 in the reduce step, reduce the size of the blocks to do more in parallel
- Compact the hit offsets, so we only keep the zone offsets after the decoding
Efficiencies (from Moore ci-test):
SeedAndMatchTrackChecker_2a46033b INFO Results
-SeedAndMatchTrackChecker_2a46033b INFO **** SeedAndMatch 29547 tracks including 2807 ghosts [ 9.50 %], Event average 8.52 % ****
-SeedAndMatchTrackChecker_2a46033b INFO 01_long : 25142 from 40913 [ 61.45 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 93.33 %
-SeedAndMatchTrackChecker_2a46033b INFO 02_long_P>5GeV : 20110 from 26774 [ 75.11 %] 0 clones [ 0.00 %], purity: 99.65 %, hitEff: 93.48 %
-SeedAndMatchTrackChecker_2a46033b INFO 03_long_strange : 1149 from 2281 [ 50.37 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 93.01 %
-SeedAndMatchTrackChecker_2a46033b INFO 04_long_strange_P>5GeV : 765 from 1095 [ 69.86 %] 0 clones [ 0.00 %], purity: 99.52 %, hitEff: 93.36 %
-SeedAndMatchTrackChecker_2a46033b INFO 05_long_fromB : 1844 from 2424 [ 76.07 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 93.74 %
-SeedAndMatchTrackChecker_2a46033b INFO 05_long_fromD : 740 from 1081 [ 68.46 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 93.30 %
-SeedAndMatchTrackChecker_2a46033b INFO 06_long_fromB_P>5GeV : 1687 from 2009 [ 83.97 %] 0 clones [ 0.00 %], purity: 99.61 %, hitEff: 93.77 %
-SeedAndMatchTrackChecker_2a46033b INFO 06_long_fromD_P>5GeV : 609 from 744 [ 81.85 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 93.49 %
-SeedAndMatchTrackChecker_2a46033b INFO 07_long_electrons : 955 from 2951 [ 32.36 %] 0 clones [ 0.00 %], purity: 99.12 %, hitEff: 93.01 %
-SeedAndMatchTrackChecker_2a46033b INFO 07_long_electrons_pairprod : 875 from 2731 [ 32.04 %] 0 clones [ 0.00 %], purity: 99.10 %, hitEff: 93.05 %
-SeedAndMatchTrackChecker_2a46033b INFO 08_long_fromB_electrons : 46 from 118 [ 38.98 %] 0 clones [ 0.00 %], purity: 99.17 %, hitEff: 93.23 %
-SeedAndMatchTrackChecker_2a46033b INFO 09_long_fromB_electrons_P>5GeV : 40 from 70 [ 57.14 %] 0 clones [ 0.00 %], purity: 99.05 %, hitEff: 93.47 %
-SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 1549 from 1861 [ 83.23 %] 0 clones [ 0.00 %], purity: 99.61 %, hitEff: 93.80 %
-SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromB_electrons_P>3GeV_Pt>0.5GeV : 32 from 49 [ 65.31 %] 0 clones [ 0.00 %], purity: 99.00 %, hitEff: 93.96 %
-SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromD_P>3GeV_Pt>0.5GeV : 485 from 599 [ 80.97 %] 0 clones [ 0.00 %], purity: 99.55 %, hitEff: 93.44 %
-SeedAndMatchTrackChecker_2a46033b INFO 10_long_strange_P>3GeV_Pt>0.5GeV : 412 from 578 [ 71.28 %] 0 clones [ 0.00 %], purity: 99.48 %, hitEff: 93.39 %
-SeedAndMatchTrackChecker_2a46033b INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 1548 from 1859 [ 83.27 %] 0 clones [ 0.00 %], purity: 99.61 %, hitEff: 93.80 %
+SeedAndMatchTrackChecker_2a46033b INFO **** SeedAndMatch 31519 tracks including 2975 ghosts [ 9.44 %], Event average 8.45 % ****
+SeedAndMatchTrackChecker_2a46033b INFO 01_long : 26796 from 40913 [ 65.50 %] 0 clones [ 0.00 %], purity: 99.63 %, hitEff: 98.45 %
+SeedAndMatchTrackChecker_2a46033b INFO 02_long_P>5GeV : 21382 from 26774 [ 79.86 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 98.54 %
+SeedAndMatchTrackChecker_2a46033b INFO 03_long_strange : 1233 from 2281 [ 54.06 %] 0 clones [ 0.00 %], purity: 99.53 %, hitEff: 98.46 %
+SeedAndMatchTrackChecker_2a46033b INFO 04_long_strange_P>5GeV : 822 from 1095 [ 75.07 %] 0 clones [ 0.00 %], purity: 99.54 %, hitEff: 98.52 %
+SeedAndMatchTrackChecker_2a46033b INFO 05_long_fromB : 1938 from 2424 [ 79.95 %] 0 clones [ 0.00 %], purity: 99.63 %, hitEff: 98.69 %
+SeedAndMatchTrackChecker_2a46033b INFO 05_long_fromD : 776 from 1081 [ 71.79 %] 0 clones [ 0.00 %], purity: 99.58 %, hitEff: 98.35 %
+SeedAndMatchTrackChecker_2a46033b INFO 06_long_fromB_P>5GeV : 1772 from 2009 [ 88.20 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 98.73 %
+SeedAndMatchTrackChecker_2a46033b INFO 06_long_fromD_P>5GeV : 641 from 744 [ 86.16 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 98.43 %
+SeedAndMatchTrackChecker_2a46033b INFO 07_long_electrons : 1010 from 2951 [ 34.23 %] 0 clones [ 0.00 %], purity: 99.05 %, hitEff: 98.26 %
+SeedAndMatchTrackChecker_2a46033b INFO 07_long_electrons_pairprod : 922 from 2731 [ 33.76 %] 0 clones [ 0.00 %], purity: 99.04 %, hitEff: 98.27 %
+SeedAndMatchTrackChecker_2a46033b INFO 08_long_fromB_electrons : 51 from 118 [ 43.22 %] 0 clones [ 0.00 %], purity: 99.46 %, hitEff:100.00 %
+SeedAndMatchTrackChecker_2a46033b INFO 09_long_fromB_electrons_P>5GeV : 45 from 70 [ 64.29 %] 0 clones [ 0.00 %], purity: 99.39 %, hitEff:100.00 %
+SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromB_P>3GeV_Pt>0.5GeV : 1628 from 1861 [ 87.48 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 98.73 %
+SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromB_electrons_P>3GeV_Pt>0.5GeV : 35 from 49 [ 71.43 %] 0 clones [ 0.00 %], purity: 99.39 %, hitEff:100.00 %
+SeedAndMatchTrackChecker_2a46033b INFO 10_long_fromD_P>3GeV_Pt>0.5GeV : 512 from 599 [ 85.48 %] 0 clones [ 0.00 %], purity: 99.60 %, hitEff: 98.41 %
+SeedAndMatchTrackChecker_2a46033b INFO 10_long_strange_P>3GeV_Pt>0.5GeV : 435 from 578 [ 75.26 %] 0 clones [ 0.00 %], purity: 99.51 %, hitEff: 98.73 %
+SeedAndMatchTrackChecker_2a46033b INFO 11_UT_long_fromB_P>3GeV_Pt>0.5GeV : 1627 from 1859 [ 87.52 %] 0 clones [ 0.00 %], purity: 99.64 %, hitEff: 98.74 %
SeedAndMatchTrackChecker_2a46033b INFO
Edited by Arthur Marius Hennequin