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;
73template <
class T, int32_t I = 0,
typename... Args>
77 std::tuple<
typename std::conditional<(
sizeof(Args) >
sizeof(
void*)),
const Args&,
const Args>
::type...>
v;
95 template <
class S, int32_t I = 0,
typename... Args>
101#define GPUCA_KRNL(x_class, x_attributes, x_arguments, x_forward, x_types, x_num) \
103 const auto& args2 = *(const krnlSetupArgs<GPUCA_M_KRNL_TEMPLATE(x_class) GPUCA_M_STRIP(x_types)>*)args; \
104 T::template runKernelBackend<GPUCA_M_KRNL_TEMPLATE(x_class)>(args2); \
107#include "GPUReconstructionKernelList.h"
GPUReconstructionKernels(const GPUSettingsDeviceBackend &cfg)
virtual void runKernelImpl(const int num, const void *args)
GLboolean GLboolean GLboolean b
GLint GLint GLsizei GLint GLenum GLenum type
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, GPUDataTypes::RecoStep st)
constexpr krnlExec(uint32_t b, uint32_t t, int32_t s, GPUDataTypes::RecoStep st)
GPUDataTypes::RecoStep step
constexpr krnlExec(uint32_t b, uint32_t t, int32_t s, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto)
GPUReconstruction::krnlDeviceType device
krnlProperties(int32_t t=0, int32_t b=1, int32_t b2=0)
constexpr krnlRunRange()=default
constexpr krnlRunRange(uint32_t v)
krnlSetupArgs(const krnlExec &xx, const krnlRunRange &yy, const krnlEvent &zz, double &tt, const Args &... args)
krnlSetup(const krnlExec &xx, const krnlRunRange &yy={0}, const krnlEvent &zz={nullptr, nullptr, 0})