Namespace for dispatching RooFit computations to various backends. More...
Namespaces | |
| namespace | RF_ARCH |
Classes | |
| class | BracketAdapter |
| Little adapter that gives a bracket operator to types that don't have one. More... | |
| class | BracketAdapterWithMask |
| class | RooBatchComputeInterface |
| The interface which should be implemented to provide optimised computation functions for implementations of RooAbsReal::evaluateSpan(). More... | |
| struct | RunContext |
| This struct enables passing computation data around between elements of a computation graph. More... | |
Typedefs | |
| typedef std::vector< double > | ArgVector |
| typedef const double *__restrict | InputArr |
| typedef double *__restrict | RestrictArr |
| typedef std::vector< RooSpan< const double > > | VarVector |
Enumerations | |
| enum class | Architecture { AVX512 , AVX2 , AVX , SSE4 , GENERIC , CUDA } |
| enum | Computer { AddPdf , ArgusBG , Bernstein , BifurGauss , BreitWigner , Bukin , CBShape , Chebychev , ChiSquare , DstD0BG , Exponential , Gamma , Gaussian , Johnson , Landau , Lognormal , NegativeLogarithms , Novosibirsk , Poisson , Polynomial , ProdPdf , Ratio , Voigtian } |
Functions | |
| __roodevice__ double | fast_exp (double x) |
| __roodevice__ double | fast_isqrt (double x) |
| __roodevice__ double | fast_log (double x) |
| void | init () |
| Inspect hardware capabilities, and load the optimal library for RooFit computations. | |
Variables | |
| constexpr uint16_t | bufferSize = 64 |
| R__EXTERN RooBatchComputeInterface * | dispatchCPU = nullptr |
| This dispatch pointer points to an implementation of the compute library, provided one has been loaded. | |
| R__EXTERN RooBatchComputeInterface * | dispatchCUDA = nullptr |
Namespace for dispatching RooFit computations to various backends.
This namespace contains an interface for providing high-performance computation functions for use in RooAbsReal::evaluateSpan(), see RooBatchComputeInterface.
Furthermore, several implementations of this interface can be created, which reside in RooBatchCompute::RF_ARCH, where RF_ARCH may be replaced by the architecture that this implementation targets, e.g. SSE, AVX, etc.
Using the pointer RooBatchCompute::dispatch, a computation request can be dispatched to the fastest backend that is available on a specific platform.
| typedef std::vector<double> RooBatchCompute::ArgVector |
Definition at line 37 of file RooBatchComputeTypes.h.
| typedef const double* __restrict RooBatchCompute::InputArr |
Definition at line 39 of file RooBatchComputeTypes.h.
| typedef double* __restrict RooBatchCompute::RestrictArr |
Definition at line 38 of file RooBatchComputeTypes.h.
| typedef std::vector<RooSpan<const double> > RooBatchCompute::VarVector |
Definition at line 36 of file RooBatchComputeTypes.h.
|
strong |
| Enumerator | |
|---|---|
| AVX512 | |
| AVX2 | |
| AVX | |
| SSE4 | |
| GENERIC | |
| CUDA | |
Definition at line 37 of file RooBatchCompute.h.
Definition at line 39 of file RooBatchCompute.h.
|
inline |
Definition at line 53 of file RooVDTHeaders.h.
|
inline |
Definition at line 61 of file RooVDTHeaders.h.
|
inline |
Definition at line 57 of file RooVDTHeaders.h.
| void RooBatchCompute::init | ( | ) |
Inspect hardware capabilities, and load the optimal library for RooFit computations.
Definition at line 43 of file Initialisation.cxx.
|
constexpr |
| RooBatchCompute::RooBatchComputeInterface * RooBatchCompute::dispatchCPU = nullptr |
This dispatch pointer points to an implementation of the compute library, provided one has been loaded.
Using a virtual call, computation requests are dispatched to backends with architecture-specific functions such as SSE, AVX, AVX2, etc.
Definition at line 93 of file RooBatchCompute.h.
| RooBatchCompute::RooBatchComputeInterface * RooBatchCompute::dispatchCUDA = nullptr |
Definition at line 93 of file RooBatchCompute.h.