Skip to content

Commit b8feb4d

Browse files
committed
GPU: Automatically derive GPUReconstruction backend class from preprocessor constant
1 parent 315cfa4 commit b8feb4d

File tree

5 files changed

+7
-9
lines changed

5 files changed

+7
-9
lines changed

GPU/GPUTracking/Base/GPUReconstructionKernelMacros.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
// GPU Host wrappers for kernel
6969
#define GPUCA_KRNL_HOST(x_class, ...) \
7070
GPUCA_KRNLGPU(x_class, __VA_ARGS__) \
71-
template <> class GPUCA_KRNL_BACKEND_CLASS::backendInternal<GPUCA_M_KRNL_TEMPLATE(x_class)> { \
71+
template <> class GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::backendInternal<GPUCA_M_KRNL_TEMPLATE(x_class)> { \
7272
public: \
7373
template <typename T, typename... Args> \
7474
static inline void runKernelBackendMacro(const krnlSetupTime& _xyz, T* me, const Args&... args) \
@@ -80,7 +80,7 @@
8080
};
8181

8282
#define GPUCA_KRNL_PROP(x_class, x_attributes) \
83-
template <> gpu_reconstruction_kernels::krnlProperties GPUCA_KRNL_BACKEND_CLASS::getKernelPropertiesBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>() { \
83+
template <> gpu_reconstruction_kernels::krnlProperties GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::getKernelPropertiesBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>() { \
8484
gpu_reconstruction_kernels::krnlProperties ret = gpu_reconstruction_kernels::krnlProperties{GPUCA_ATTRRES(_EXTRREG, GPUCA_M_STRIP(x_attributes))}; \
8585
return ret.nThreads > 0 ? ret : gpu_reconstruction_kernels::krnlProperties{(int32_t)mThreadCount}; \
8686
}

GPU/GPUTracking/Base/cuda/GPUReconstructionCUDADef.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,5 @@
3434
#define GPUCA_CONSMEM_CALL me->mDeviceConstantMem,
3535
#define GPUCA_CONSMEM ((GPUConstantMem&)(*gGPUConstantMemBuffer))
3636
#endif
37-
#define GPUCA_KRNL_BACKEND_CLASS GPUReconstructionCUDABackend
3837

3938
#endif

GPU/GPUTracking/Base/opencl/GPUReconstructionOCLKernels.cxx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,5 @@ int32_t GPUReconstructionOCLBackend::AddKernels()
109109
#define GPUCA_KRNL(x_class, x_attributes, x_arguments, x_forward, x_types) \
110110
GPUCA_KRNL_PROP(x_class, x_attributes) \
111111
template void GPUReconstructionOCLBackend::runKernelBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>(const krnlSetupArgs<GPUCA_M_KRNL_TEMPLATE(x_class) GPUCA_M_STRIP(x_types)>& args);
112-
#define GPUCA_KRNL_BACKEND_CLASS GPUReconstructionOCLBackend
113112
#include "GPUReconstructionKernelList.h"
114113
#undef GPUCA_KRNL

GPU/GPUTracking/Merger/GPUTPCGMMerger.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ struct MergeBorderTracks_compMin {
769769
} // namespace o2::gpu::internal
770770

771771
template <>
772-
inline void GPUCA_KRNL_BACKEND_CLASS::runKernelBackendInternal<GPUTPCGMMergerMergeBorders, 3>(const krnlSetupTime& _xyz, GPUTPCGMBorderRange* const& range, int32_t const& N, int32_t const& cmpMax)
772+
inline void GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::runKernelBackendInternal<GPUTPCGMMergerMergeBorders, 3>(const krnlSetupTime& _xyz, GPUTPCGMBorderRange* const& range, int32_t const& N, int32_t const& cmpMax)
773773
{
774774
thrust::device_ptr<GPUTPCGMBorderRange> p(range);
775775
ThrustVolatileAsyncAllocator alloc(this);
@@ -1873,15 +1873,15 @@ struct GPUTPCGMMergerSortTracksQPt_comp {
18731873
} // namespace o2::gpu::internal
18741874

18751875
template <>
1876-
inline void GPUCA_KRNL_BACKEND_CLASS::runKernelBackendInternal<GPUTPCGMMergerSortTracks, 0>(const krnlSetupTime& _xyz)
1876+
inline void GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::runKernelBackendInternal<GPUTPCGMMergerSortTracks, 0>(const krnlSetupTime& _xyz)
18771877
{
18781878
thrust::device_ptr<uint32_t> trackSort((uint32_t*)mProcessorsShadow->tpcMerger.TrackOrderProcess());
18791879
ThrustVolatileAsyncAllocator alloc(this);
18801880
thrust::sort(GPUCA_THRUST_NAMESPACE::par(alloc).on(mInternals->Streams[_xyz.x.stream]), trackSort, trackSort + processors()->tpcMerger.NOutputTracks(), GPUTPCGMMergerSortTracks_comp(mProcessorsShadow->tpcMerger.OutputTracks()));
18811881
}
18821882

18831883
template <>
1884-
inline void GPUCA_KRNL_BACKEND_CLASS::runKernelBackendInternal<GPUTPCGMMergerSortTracksQPt, 0>(const krnlSetupTime& _xyz)
1884+
inline void GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::runKernelBackendInternal<GPUTPCGMMergerSortTracksQPt, 0>(const krnlSetupTime& _xyz)
18851885
{
18861886
thrust::device_ptr<uint32_t> trackSort((uint32_t*)mProcessorsShadow->tpcMerger.TrackSort());
18871887
ThrustVolatileAsyncAllocator alloc(this);
@@ -2106,7 +2106,7 @@ struct GPUTPCGMMergerMergeLoopers_comp {
21062106
} // namespace o2::gpu::internal
21072107

21082108
template <>
2109-
inline void GPUCA_KRNL_BACKEND_CLASS::runKernelBackendInternal<GPUTPCGMMergerMergeLoopers, 1>(const krnlSetupTime& _xyz)
2109+
inline void GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::runKernelBackendInternal<GPUTPCGMMergerMergeLoopers, 1>(const krnlSetupTime& _xyz)
21102110
{
21112111
thrust::device_ptr<MergeLooperParam> params(mProcessorsShadow->tpcMerger.LooperCandidates());
21122112
ThrustVolatileAsyncAllocator alloc(this);

GPU/GPUTracking/Merger/GPUTPCGMO2Output.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ struct GPUTPCGMO2OutputSort_comp {
102102
};
103103

104104
template <>
105-
inline void GPUCA_KRNL_BACKEND_CLASS::runKernelBackendInternal<GPUTPCGMO2Output, GPUTPCGMO2Output::sort>(const krnlSetupTime& _xyz)
105+
inline void GPUCA_M_CAT3(GPUReconstruction, GPUCA_GPUTYPE, Backend)::runKernelBackendInternal<GPUTPCGMO2Output, GPUTPCGMO2Output::sort>(const krnlSetupTime& _xyz)
106106
{
107107
thrust::device_ptr<GPUTPCGMMerger::tmpSort> trackSort(mProcessorsShadow->tpcMerger.TrackSortO2());
108108
ThrustVolatileAsyncAllocator alloc(this);

0 commit comments

Comments
 (0)