Skip to content

Scifi decoding optimisations

Arthur Marius Hennequin requested to merge ahennequ_scifi_decoding into master

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

@lohenry @cagapopo @gligorov

Edited by Arthur Marius Hennequin

Merge request reports