Skip to content

Commit 501ef18

Browse files
committed
GPU: Fix sector tracking running on CPU if in GPU mode
1 parent 651d9e5 commit 501ef18

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

GPU/GPUTracking/Global/GPUChainTrackingSliceTracker.cxx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ int32_t GPUChainTracking::RunTPCTrackingSlices_internal()
150150
AllocateRegisteredMemory(mInputsHost->mResourceOccupancyMap, mSubOutputControls[GPUTrackingOutputs::getIndex(&GPUTrackingOutputs::tpcOccupancyMap)]);
151151
}
152152
if (param().rec.tpc.occupancyMapTimeBins) {
153-
ReleaseEvent(mEvents->init);
153+
if (doGPU) {
154+
ReleaseEvent(mEvents->init);
155+
}
154156
uint32_t* ptr = doGPU ? mInputsShadow->mTPCClusterOccupancyMap : mInputsHost->mTPCClusterOccupancyMap;
155157
auto* ptrTmp = (GPUTPCClusterOccupancyMapBin*)mRec->AllocateVolatileMemory(GPUTPCClusterOccupancyMapBin::getTotalSize(param()), doGPU);
156158
runKernel<GPUMemClean16>(GetGridAutoStep(streamOccMap, RecoStep::TPCSliceTracking), ptrTmp, GPUTPCClusterOccupancyMapBin::getTotalSize(param()));
@@ -297,7 +299,9 @@ int32_t GPUChainTracking::RunTPCTrackingSlices_internal()
297299
}
298300

299301
if (doGPU || GetProcessingSettings().debugLevel >= 1) {
300-
ReleaseEvent(mEvents->init);
302+
if (doGPU) {
303+
ReleaseEvent(mEvents->init);
304+
}
301305
if (!doSliceDataOnGPU) {
302306
WaitForHelperThreads();
303307
}
@@ -439,11 +443,11 @@ int32_t GPUChainTracking::RunTPCTrackingSlices_internal()
439443
if (!((GetRecoStepsOutputs() & GPUDataTypes::InOutType::TPCSectorTracks) || (doGPU && !(GetRecoStepsGPU() & RecoStep::TPCMerging)))) {
440444
uint32_t sliceLeft, sliceRight;
441445
GPUTPCGlobalTracking::GlobalTrackingSliceLeftRight(tmpSlice, sliceLeft, sliceRight);
442-
if (!blocking[tmpSlice * mRec->NStreams() + sliceLeft % mRec->NStreams()]) {
446+
if (doGPU && !blocking[tmpSlice * mRec->NStreams() + sliceLeft % mRec->NStreams()]) {
443447
StreamWaitForEvents(tmpSlice % mRec->NStreams(), &mEvents->slice[sliceLeft]);
444448
blocking[tmpSlice * mRec->NStreams() + sliceLeft % mRec->NStreams()] = true;
445449
}
446-
if (!blocking[tmpSlice * mRec->NStreams() + sliceRight % mRec->NStreams()]) {
450+
if (doGPU && !blocking[tmpSlice * mRec->NStreams() + sliceRight % mRec->NStreams()]) {
447451
StreamWaitForEvents(tmpSlice % mRec->NStreams(), &mEvents->slice[sliceRight]);
448452
blocking[tmpSlice * mRec->NStreams() + sliceRight % mRec->NStreams()] = true;
449453
}
@@ -452,7 +456,7 @@ int32_t GPUChainTracking::RunTPCTrackingSlices_internal()
452456
}
453457
}
454458
for (uint32_t iSlice = 0; iSlice < NSLICES; iSlice++) {
455-
if (transferRunning[iSlice]) {
459+
if (doGPU && transferRunning[iSlice]) {
456460
ReleaseEvent(mEvents->slice[iSlice]);
457461
}
458462
}

0 commit comments

Comments
 (0)