Namespace for dispatching RooFit computations to various backends. More...
Namespaces | |
| namespace | CUDA | 
| namespace | CudaInterface | 
Classes | |
| class | AbsBuffer | 
| class | AbsBufferManager | 
| class | Batch | 
| class | Batches | 
| class | BracketAdapter | 
| Little adapter that gives a bracket operator to types that don't have one.  More... | |
| class | BracketAdapterWithMask | 
| class | Config | 
| Minimal configuration struct to steer the evaluation of a single node with the RooBatchCompute library.  More... | |
| struct | ReduceNLLOutput | 
| class | RooBatchComputeInterface | 
| The interface which should be implemented to provide optimised computation functions for implementations of RooAbsReal::doEval().  More... | |
Typedefs | |
| typedef std::span< double > | ArgSpan | 
| typedef const double *__restrict | InputArr | 
| typedef std::span< const std::span< const double > > | VarSpan | 
Enumerations | |
| enum class | Architecture {  AVX512 , AVX2 , AVX , SSE4 , GENERIC , CUDA }  | 
| enum | Computer {  AddPdf , ArgusBG , BMixDecay , Bernstein , BifurGauss , BreitWigner , Bukin , CBShape , Chebychev , ChiSquare , DeltaFunction , DstD0BG , ExpPoly , Exponential , ExponentialNeg , Gamma , GaussModelExpBasis , Gaussian , Identity , Johnson , Landau , Lognormal , LognormalStandard , NegativeLogarithms , NormalizedPdf , Novosibirsk , Poisson , Polynomial , Power , ProdPdf , Ratio , TruthModelExpBasis , TruthModelSinBasis , TruthModelCosBasis , TruthModelLinBasis , TruthModelQuadBasis , TruthModelSinhBasis , TruthModelCoshBasis , Voigtian }  | 
Variables | |
| constexpr std::size_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.
A space to attach TBranches.
This namespace contains an interface for providing high-performance computation functions for use in RooAbsReal::doEval(), 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::span<double> RooBatchCompute::ArgSpan | 
Definition at line 45 of file RooBatchCompute.h.
Definition at line 46 of file RooBatchCompute.h.
| typedef std::span<const std::span<const double> > RooBatchCompute::VarSpan | 
Definition at line 44 of file RooBatchCompute.h.
| Enumerator | |
|---|---|
| AVX512 | |
| AVX2 | |
| AVX | |
| SSE4 | |
| GENERIC | |
| CUDA | |
Definition at line 65 of file RooBatchCompute.h.
Definition at line 74 of file RooBatchCompute.h.
      
  | 
  inline | 
It is not possible to construct a std::span directly from an initializer list (probably it will be with C++26).
That's why we need an explicit overload for this.
Definition at line 221 of file RooBatchCompute.h.
      
  | 
  inline | 
Definition at line 212 of file RooBatchCompute.h.
      
  | 
  inline | 
Definition at line 202 of file RooBatchCompute.h.
      
  | 
  inline | 
Definition at line 207 of file RooBatchCompute.h.
      
  | 
  inline | 
Definition at line 78 of file RooVDTHeaders.h.
      
  | 
  inline | 
Definition at line 68 of file RooVDTHeaders.h.
      
  | 
  inline | 
Definition at line 88 of file RooVDTHeaders.h.
      
  | 
  inline | 
Definition at line 83 of file RooVDTHeaders.h.
      
  | 
  inline | 
Definition at line 73 of file RooVDTHeaders.h.
| std::string RooBatchCompute::getBatchComputeChoice | ( | ) | 
Definition at line 106 of file Initialisation.cxx.
| int RooBatchCompute::initCPU | ( | ) | 
Inspect hardware capabilities, and load the optimal library for RooFit computations.
Definition at line 50 of file Initialisation.cxx.
| int RooBatchCompute::initCUDA | ( | ) | 
Definition at line 95 of file Initialisation.cxx.
      
  | 
  inline | 
Definition at line 233 of file RooBatchCompute.h.
Definition at line 227 of file RooBatchCompute.h.
| void RooBatchCompute::setBatchComputeChoice | ( | std::string const & | value | ) | 
Definition at line 111 of file Initialisation.cxx.
      
  | 
  constexpr | 
Definition at line 48 of file RooBatchCompute.h.
| 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 199 of file RooBatchCompute.h.
| RooBatchCompute::RooBatchComputeInterface * RooBatchCompute::dispatchCUDA = nullptr | 
Definition at line 200 of file RooBatchCompute.h.