@@ -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