Skip to content

Commit d048aa0

Browse files
committed
GPU TPC: In deterministic mode, do not run looper interpolation on GPU in extra kernel
1 parent 02d2fc7 commit d048aa0

6 files changed

Lines changed: 33 additions & 30 deletions

File tree

GPU/GPUTracking/Base/GPUReconstruction.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,9 @@ int GPUReconstruction::InitPhaseBeforeDevice()
260260
#ifdef GPUCA_HAVE_O2HEADERS
261261
mProcessingSettings.overrideClusterizerFragmentLen = TPC_MAX_FRAGMENT_LEN_GPU;
262262
param().rec.tpc.nWaysOuter = true;
263+
if (param().rec.tpc.looperInterpolationInExtraPass == -1) {
264+
param().rec.tpc.looperInterpolationInExtraPass = 0;
265+
}
263266
if (mProcessingSettings.createO2Output > 1) {
264267
mProcessingSettings.createO2Output = 1;
265268
}
@@ -300,7 +303,7 @@ int GPUReconstruction::InitPhaseBeforeDevice()
300303
mProcessingSettings.delayedOutput = false;
301304
}
302305
if (!mProcessingSettings.fullMergerOnGPU && GetRecoStepsGPU() & RecoStep::TPCMerging) {
303-
param().rec.tpc.loopInterpolationInExtraPass = 0;
306+
param().rec.tpc.looperInterpolationInExtraPass = 0;
304307
if (param().rec.tpc.retryRefit == 1) {
305308
param().rec.tpc.retryRefit = 2;
306309
}

GPU/GPUTracking/Base/GPUReconstructionIncludes.h

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,30 @@
3737
#define RANDOM_ERROR
3838
//#define RANDOM_ERROR || rand() % 500 == 1
3939

40-
#define GPUCA_GPUReconstructionUpdateDefaults() \
41-
if (mProcessingSettings.trackletConstructorInPipeline < 0) { \
42-
mProcessingSettings.trackletConstructorInPipeline = GPUCA_CONSTRUCTOR_IN_PIPELINE; \
43-
} \
44-
if (mProcessingSettings.trackletSelectorInPipeline < 0) { \
45-
mProcessingSettings.trackletSelectorInPipeline = GPUCA_SELECTOR_IN_PIPELINE; \
46-
} \
47-
if (mProcessingSettings.trackletSelectorSlices < 0) { \
48-
mProcessingSettings.trackletSelectorSlices = GPUCA_TRACKLET_SELECTOR_SLICE_COUNT; \
49-
} \
50-
if (mProcessingSettings.alternateBorderSort < 0) { \
51-
mProcessingSettings.alternateBorderSort = GPUCA_ALTERNATE_BORDER_SORT; \
52-
} \
53-
if (mProcessingSettings.mergerSortTracks < 0) { \
54-
mProcessingSettings.mergerSortTracks = GPUCA_SORT_BEFORE_FIT; \
55-
} \
56-
if (param().rec.tpc.loopInterpolationInExtraPass < 0) { \
57-
param().rec.tpc.loopInterpolationInExtraPass = GPUCA_MERGER_SPLIT_LOOP_INTERPOLATION; \
58-
} \
59-
if (mProcessingSettings.tpcCompressionGatherModeKernel < 0) { \
60-
mProcessingSettings.tpcCompressionGatherModeKernel = GPUCA_COMP_GATHER_KERNEL; \
61-
} \
62-
if (mProcessingSettings.tpcCompressionGatherMode < 0) { \
63-
mProcessingSettings.tpcCompressionGatherMode = GPUCA_COMP_GATHER_MODE; \
40+
#define GPUCA_GPUReconstructionUpdateDefaults() \
41+
if (mProcessingSettings.trackletConstructorInPipeline < 0) { \
42+
mProcessingSettings.trackletConstructorInPipeline = GPUCA_CONSTRUCTOR_IN_PIPELINE; \
43+
} \
44+
if (mProcessingSettings.trackletSelectorInPipeline < 0) { \
45+
mProcessingSettings.trackletSelectorInPipeline = GPUCA_SELECTOR_IN_PIPELINE; \
46+
} \
47+
if (mProcessingSettings.trackletSelectorSlices < 0) { \
48+
mProcessingSettings.trackletSelectorSlices = GPUCA_TRACKLET_SELECTOR_SLICE_COUNT; \
49+
} \
50+
if (mProcessingSettings.alternateBorderSort < 0) { \
51+
mProcessingSettings.alternateBorderSort = GPUCA_ALTERNATE_BORDER_SORT; \
52+
} \
53+
if (mProcessingSettings.mergerSortTracks < 0) { \
54+
mProcessingSettings.mergerSortTracks = GPUCA_SORT_BEFORE_FIT; \
55+
} \
56+
if (param().rec.tpc.looperInterpolationInExtraPass < 0) { \
57+
param().rec.tpc.looperInterpolationInExtraPass = GPUCA_MERGER_SPLIT_LOOP_INTERPOLATION; \
58+
} \
59+
if (mProcessingSettings.tpcCompressionGatherModeKernel < 0) { \
60+
mProcessingSettings.tpcCompressionGatherModeKernel = GPUCA_COMP_GATHER_KERNEL; \
61+
} \
62+
if (mProcessingSettings.tpcCompressionGatherMode < 0) { \
63+
mProcessingSettings.tpcCompressionGatherMode = GPUCA_COMP_GATHER_MODE; \
6464
}
6565

6666
#endif

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ AddOptionRTC(mergerCovSource, unsigned char, 2, "", 0, "Method to obtain covaria
135135
AddOptionRTC(mergerInterpolateErrors, unsigned char, 1, "", 0, "Use interpolation instead of extrapolation for chi2 based cluster rejection")
136136
AddOptionRTC(mergeCE, unsigned char, 1, "", 0, "Merge tracks accross the central electrode")
137137
AddOptionRTC(retryRefit, char, 1, "", 0, "Retry refit with seeding errors and without cluster rejection when fit fails")
138-
AddOptionRTC(loopInterpolationInExtraPass, char, -1, "", 0, "Perform loop interpolation in an extra pass")
138+
AddOptionRTC(looperInterpolationInExtraPass, char, -1, "", 0, "Perform looper interpolation in an extra pass")
139139
AddOptionRTC(mergerReadFromTrackerDirectly, char, 1, "", 0, "Forward data directly from tracker to merger on GPU")
140140
AddOptionRTC(dropSecondaryLegsInOutput, char, 1, "", 0, "Do not store secondary legs of looping track in TrackTPC")
141141
AddOptionRTC(enablePID, char, 1, "", 0, "Enable PID response")

GPU/GPUTracking/Global/GPUChainTrackingMerger.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ int GPUChainTracking::RunTPCTrackingMerger(bool synchronizeOutput)
225225
if (param().rec.tpc.retryRefit == 1) {
226226
runKernel<GPUTPCGMMergerTrackFit>(GetGridAuto(0), krnlRunRangeNone, krnlEventNone, -1);
227227
}
228-
if (param().rec.tpc.loopInterpolationInExtraPass) {
228+
if (param().rec.tpc.looperInterpolationInExtraPass) {
229229
runKernel<GPUTPCGMMergerFollowLoopers>(GetGridAuto(0), krnlRunRangeNone, krnlEventNone);
230230
}
231231
if (doGPU && !doGPUall) {

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ GPUdic(0, 1) int GPUTPCGMTrackParam::FollowCircle(const GPUTPCGMMerger* GPUrestr
708708
if (Merger->Param().rec.tpc.disableRefitAttachment & 4) {
709709
return 1;
710710
}
711-
if (Merger->Param().rec.tpc.loopInterpolationInExtraPass && phase2 == false) {
711+
if (Merger->Param().rec.tpc.looperInterpolationInExtraPass && phase2 == false) {
712712
StoreAttachMirror(Merger, slice, iRow, iTrack, toAlpha, toY, toX, toSlice, toRow, inFlyDirection, prop.GetAlpha());
713713
return 1;
714714
}
@@ -811,7 +811,7 @@ GPUdni() void GPUTPCGMTrackParam::AttachClustersMirror(const GPUTPCGMMerger* GPU
811811
if (Merger->Param().rec.tpc.disableRefitAttachment & 8) {
812812
return;
813813
}
814-
if (Merger->Param().rec.tpc.loopInterpolationInExtraPass && phase2 == false) {
814+
if (Merger->Param().rec.tpc.looperInterpolationInExtraPass && phase2 == false) {
815815
StoreAttachMirror(Merger, slice, iRow, iTrack, 0, toY, 0, -1, 0, 0, prop.GetAlpha());
816816
return;
817817
}

GPU/GPUTracking/Standalone/Benchmark/standalone.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ int SetupReconstruction()
451451
procSet.tpcInputWithClusterRejection = 1;
452452
}
453453
recSet.tpc.disableRefitAttachment = 0xFF;
454-
recSet.tpc.loopInterpolationInExtraPass = 0;
454+
recSet.tpc.looperInterpolationInExtraPass = 0;
455455
recSet.maxTrackQPtB5 = CAMath::Min(recSet.maxTrackQPtB5, recSet.tpc.rejectQPtB5);
456456
recSet.useMatLUT = true;
457457
recAsync->SetSettings(&grp, &recSet, &procSet, &steps);

0 commit comments

Comments
 (0)