15#ifndef GPURECONSTRUCTIONKERNELS_H
16#define GPURECONSTRUCTIONKERNELS_H
23namespace gpu_reconstruction_kernels
26template <
class T,
int32_t I = 0>
29 static constexpr int32_t
i = I;
76template <
class T, int32_t I = 0,
typename... Args>
80 std::tuple<
typename std::conditional<(
sizeof(Args) >
sizeof(
void*)),
const Args&,
const Args>
::type...>
v;
98 template <
class S, int32_t I = 0,
typename... Args>
101#define GPUCA_KRNL(x_class, attributes, x_arguments, x_forward, x_types) \
102 virtual int32_t runKernelImpl(const krnlSetupArgs<GPUCA_M_KRNL_TEMPLATE(x_class) GPUCA_M_STRIP(x_types)>& args) \
104 return T::template runKernelBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>(args); \
106 virtual gpu_reconstruction_kernels::krnlProperties getKernelPropertiesImpl(gpu_reconstruction_kernels::classArgument<GPUCA_M_KRNL_TEMPLATE(x_class)>) \
108 return T::template getKernelPropertiesBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>(); \
110#include "GPUReconstructionKernelList.h"
GPUReconstructionKernels(const GPUSettingsDeviceBackend &cfg)
GLboolean GLboolean GLboolean b
GLint GLint GLsizei GLint GLenum GLenum type
GLboolean GLboolean GLboolean GLboolean a
GLdouble GLdouble GLdouble z
static constexpr int32_t i
constexpr krnlEvent(deviceEvent *e=nullptr, deviceEvent *el=nullptr, int32_t n=1)
constexpr krnlExec(uint32_t b, uint32_t t, int32_t s, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto)
constexpr krnlExec(uint32_t b, uint32_t t, int32_t s, GPUReconstruction::krnlDeviceType d, GPUCA_RECO_STEP st)
GPUReconstruction::krnlDeviceType device
constexpr krnlExec(uint32_t b, uint32_t t, int32_t s, GPUCA_RECO_STEP st)
krnlProperties(int32_t t=0, int32_t b=1, int32_t b2=0)
constexpr krnlRunRange(uint32_t s, int32_t n)
constexpr krnlRunRange()=default
constexpr krnlRunRange(uint32_t a)
krnlSetupArgs(const krnlExec &xx, const krnlRunRange &yy, const krnlEvent &zz, double &tt, const Args &... args)
krnlSetup(const krnlExec &xx, const krnlRunRange &yy={0, -1}, const krnlEvent &zz={nullptr, nullptr, 0})