@@ -251,27 +251,43 @@ void* GPUTPCGMMerger::SetPointersMemory(void* mem)
251251 return mem;
252252}
253253
254- void * GPUTPCGMMerger::SetPointersRefit (void * mem)
254+ void * GPUTPCGMMerger::SetPointersRefitScratch (void * mem)
255255{
256256 computePointerWithAlignment (mem, mRetryRefitIds , mNMaxTracks );
257257 computePointerWithAlignment (mem, mLoopData , mNMaxTracks );
258- computePointerWithAlignment (mem, mOutputTracks , mNMaxTracks );
259- computePointerWithAlignment (mem, mClusters , mNMaxOutputTrackClusters );
258+ if (mRec ->GetDeviceProcessingSettings ().fullMergerOnGPU ) {
259+ mem = SetPointersRefitScratch2 (mem);
260+ }
261+ return mem;
262+ }
263+
264+ void * GPUTPCGMMerger::SetPointersRefitScratch2 (void * mem)
265+ {
260266 computePointerWithAlignment (mem, mTrackOrderAttach , mNMaxTracks );
261267 if (mRec ->GetDeviceProcessingSettings ().mergerSortTracks ) {
262268 computePointerWithAlignment (mem, mTrackOrderProcess , mNMaxTracks );
263269 }
270+ return mem;
271+ }
272+
273+ void * GPUTPCGMMerger::SetPointersRefit (void * mem)
274+ {
275+ computePointerWithAlignment (mem, mOutputTracks , mNMaxTracks );
276+ computePointerWithAlignment (mem, mClusters , mNMaxOutputTrackClusters );
264277 computePointerWithAlignment (mem, mClusterAttachment , mNMaxClusters );
278+ if (!mRec ->GetDeviceProcessingSettings ().fullMergerOnGPU ) {
279+ mem = SetPointersRefitScratch2 (mem);
280+ }
265281
266282 return mem;
267283}
268284
269285void GPUTPCGMMerger::RegisterMemoryAllocation ()
270286{
271287 AllocateAndInitializeLate ();
272- auto mergerMemory = mRec ->GetDeviceProcessingSettings ().fullMergerOnGPU ? GPUMemoryResource::MEMORY_SCRATCH : (GPUMemoryResource::MEMORY_SCRATCH | GPUMemoryResource::MEMORY_HOST );
273- mRec ->RegisterMemoryAllocation (this , &GPUTPCGMMerger::SetPointersMerger, mergerMemory , " TPCMerger " );
274- mRec ->RegisterMemoryAllocation (this , &GPUTPCGMMerger::SetPointersRefit, GPUMemoryResource::MEMORY_INOUT , " TPCMergerRefit" );
288+ mRec -> RegisterMemoryAllocation ( this , &GPUTPCGMMerger::SetPointersMerger, mRec ->GetDeviceProcessingSettings ().fullMergerOnGPU ? GPUMemoryResource::MEMORY_SCRATCH : (GPUMemoryResource::MEMORY_SCRATCH | GPUMemoryResource::MEMORY_HOST ), " TPCMerger " );
289+ mRec ->RegisterMemoryAllocation (this , &GPUTPCGMMerger::SetPointersRefitScratch, GPUMemoryResource:: MEMORY_SCRATCH , " TPCMergerRefitScratch " );
290+ mRec ->RegisterMemoryAllocation (this , &GPUTPCGMMerger::SetPointersRefit, mRec -> GetDeviceProcessingSettings (). fullMergerOnGPU ? GPUMemoryResource:: MEMORY_OUTPUT : GPUMemoryResource::MEMORY_INOUT , " TPCMergerRefit" );
275291 mMemoryResMemory = mRec ->RegisterMemoryAllocation (this , &GPUTPCGMMerger::SetPointersMemory, GPUMemoryResource::MEMORY_PERMANENT , " TPCMergerMemory" );
276292}
277293
0 commit comments