Skip to content

Commit f526ea6

Browse files
committed
GPU TPC: Remove uint16_t storage type support for dEdx (not compatible with saturated signals)
1 parent 8856423 commit f526ea6

3 files changed

Lines changed: 9 additions & 29 deletions

File tree

GPU/GPUTracking/Definitions/Parameters/GPUParameters.csv

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ GPUTPCGMO2Output_output,256,,,,,,,,,,,,,,,256
6060
GPUTPCStartHitsFinder,256,,"[1024, 2]","[1024, 7]",256,256,256,256,256,512,512,512,,,,608
6161
GPUTPCStartHitsSorter,256,,"[1024, 5]","[512, 7]",256,256,256,256,256,"[512, 1]","[512, 1]","[512, 1]",,,,608
6262
GPUTPCCFCheckPadBaseline,576,,"[576, 2]","[576, 2]",,,,,,"[576, 2]",,,,,,"[576, 2]"
63-
GPUTPCCFHIPTailConnector,256,,256,256,,,,,,256,
64-
GPUTPCCFHIPClusterizer,256,,256,256,,,,,,256,
63+
GPUTPCCFHIPTailConnector,256,,256,256,,,,,,256,,,,,,
64+
GPUTPCCFHIPClusterizer,256,,256,256,,,,,,256,,,,,,
6565
GPUTPCCFChargeMapFiller_fillIndexMap,512,,512,512,,,,,,448,,,,,,448
6666
GPUTPCCFChargeMapFiller_fillFromDigits,512,,512,512,,,,,,448,,,,,,448
6767
GPUTPCCFChargeMapFiller_findFragmentStart,512,,512,512,,,,,,448,,,,,,448
@@ -108,8 +108,8 @@ TRACKLET_SELECTOR_HITS_REG_SIZE,12,0,9,27,,,,,,20,20,20,,,,2
108108
ALTERNATE_BORDER_SORT,1,0,1,1,,,,,,1,1,1,,,,1
109109
SORT_BEFORE_FIT,1,0,1,1,,,,,,1,1,1,,,,1
110110
NO_ATOMIC_PRECHECK,0,0,1,1,,,,,,1,1,1,,,,1
111-
DEDX_STORAGE_TYPE,"""uint16_t""","""float""","""uint16_t""","""uint16_t""",,,,,,"""uint16_t""","""uint16_t""","""uint16_t""",,,,"""uint16_t"""
112-
MERGER_INTERPOLATION_ERROR_TYPE,"""half""","""float""","""half""","""half""",,,,,,"""half""","""half""","""half""",,,,"""half"""
111+
DEDX_STORAGE_TYPE,"""half""","""float""",,,,,,,,,,,,,,
112+
MERGER_INTERPOLATION_ERROR_TYPE,"""half""","""float""",,,,,,,,,,,,,,
113113
COMP_GATHER_KERNEL,4,0,4,4,,,,,,4,4,4,,,,4
114114
COMP_GATHER_MODE,3,0,3,3,,,,,,3,3,3,,,,3
115115
CF_SCAN_WORKGROUP_SIZE,512,0,,,,,,,,,,,,,,

GPU/GPUTracking/dEdx/GPUdEdx.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ GPUd() float GPUdEdx::GetSortTruncMean(GPUCA_PAR_DEDX_STORAGE_TYPE_A* GPUrestric
6767
CAAlgo::sort(array, array + count);
6868
float mean = 0;
6969
for (int32_t i = trunclow; i < trunchigh; i++) {
70-
mean += (float)array[i] * (1.f / scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::factor);
70+
mean += (float)array[i];
7171
}
7272
return (mean / (trunchigh - trunclow));
7373
}

GPU/GPUTracking/dEdx/GPUdEdx.h

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,6 @@ class GPUdEdx
4343
GPUd() float GetSortTruncMean(GPUCA_PAR_DEDX_STORAGE_TYPE_A* array, int32_t count, int32_t trunclow, int32_t trunchigh);
4444
GPUd() void checkSubThresh(int32_t roc);
4545

46-
template <typename T, typename fake = void>
47-
struct scalingFactor;
48-
template <typename fake>
49-
struct scalingFactor<uint16_t, fake> {
50-
static constexpr float factor = 4.f;
51-
static constexpr float round = 0.5f;
52-
};
53-
template <typename fake>
54-
struct scalingFactor<float, fake> {
55-
static constexpr float factor = 1.f;
56-
static constexpr float round = 0.f;
57-
};
58-
#if defined(__CUDACC__) || defined(__HIPCC__)
59-
template <typename fake>
60-
struct scalingFactor<half, fake> {
61-
static constexpr float factor = 1.f;
62-
static constexpr float round = 0.f;
63-
};
64-
#endif
65-
6646
GPUCA_PAR_DEDX_STORAGE_TYPE_A mChargeTot[MAX_NCL]; // No need for default, just some memory
6747
GPUCA_PAR_DEDX_STORAGE_TYPE_A mChargeMax[MAX_NCL]; // No need for default, just some memory
6848
float mSubThreshMinTot = 0.f;
@@ -79,8 +59,8 @@ GPUdi() void GPUdEdx::checkSubThresh(int32_t roc)
7959
if (roc != mLastROC) {
8060
if (mNSubThresh && mCount + mNSubThresh < MAX_NCL) {
8161
for (int32_t i = 0; i < mNSubThresh; i++) {
82-
mChargeTot[mCount] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)(mSubThreshMinTot * scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::factor + scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::round);
83-
mChargeMax[mCount++] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)(mSubThreshMinMax * scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::factor + scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::round);
62+
mChargeTot[mCount] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)mSubThreshMinTot;
63+
mChargeMax[mCount++] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)mSubThreshMinMax;
8464
}
8565
mNClsROC[mLastROC] += mNSubThresh;
8666
mNClsROCSubThresh[mLastROC] += mNSubThresh;
@@ -151,8 +131,8 @@ GPUdnii() void GPUdEdx::fillCluster(float qtot, float qmax, int32_t padRow, uint
151131
qmax /= residualGainMapGain;
152132
qtot /= residualGainMapGain;
153133

154-
mChargeTot[mCount] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)(qtot * scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::factor + scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::round);
155-
mChargeMax[mCount++] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)(qmax * scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::factor + scalingFactor<GPUCA_PAR_DEDX_STORAGE_TYPE_A>::round);
134+
mChargeTot[mCount] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)qtot;
135+
mChargeMax[mCount++] = (GPUCA_PAR_DEDX_STORAGE_TYPE_A)qmax;
156136
mNClsROC[roc]++;
157137
if (qtot < mSubThreshMinTot) {
158138
mSubThreshMinTot = qtot;

0 commit comments

Comments
 (0)