Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
RooBatchCompute.h File Reference
#include <ROOT/RSpan.hxx>
#include <DllImport.h>
#include <cstddef>
#include <initializer_list>
#include <memory>
#include <string>

Classes

class  RooBatchCompute::AbsBuffer
class  RooBatchCompute::AbsBufferManager
class  RooBatchCompute::Config
 Minimal configuration struct to steer the evaluation of a single node with the RooBatchCompute library. More...
struct  RooBatchCompute::ReduceNLLOutput
class  RooBatchCompute::RooBatchComputeInterface
 The interface which should be implemented to provide optimised computation functions for implementations of RooAbsReal::doEval(). More...

Namespaces

namespace  RooBatchCompute
 Namespace for dispatching RooFit computations to various backends.
namespace  RooBatchCompute::CudaInterface

Typedefs

typedef std::span< doubleRooBatchCompute::ArgSpan
typedef const double *__restrict RooBatchCompute::InputArr
typedef std::span< const std::span< const double > > RooBatchCompute::VarSpan

Enumerations

enum class  RooBatchCompute::Architecture {
  RooBatchCompute::AVX512 , RooBatchCompute::AVX2 , RooBatchCompute::AVX , RooBatchCompute::SSE4 ,
  RooBatchCompute::GENERIC , RooBatchCompute::CUDA
}
enum  RooBatchCompute::Computer {
  RooBatchCompute::AddPdf , RooBatchCompute::ArgusBG , RooBatchCompute::BMixDecay , RooBatchCompute::Bernstein ,
  RooBatchCompute::BifurGauss , RooBatchCompute::BreitWigner , RooBatchCompute::Bukin , RooBatchCompute::CBShape ,
  RooBatchCompute::Chebychev , RooBatchCompute::ChiSquare , RooBatchCompute::DeltaFunction , RooBatchCompute::DstD0BG ,
  RooBatchCompute::ExpPoly , RooBatchCompute::Exponential , RooBatchCompute::ExponentialNeg , RooBatchCompute::Gamma ,
  RooBatchCompute::GaussModelExpBasis , RooBatchCompute::Gaussian , RooBatchCompute::Identity , RooBatchCompute::Johnson ,
  RooBatchCompute::Landau , RooBatchCompute::Lognormal , RooBatchCompute::LognormalStandard , RooBatchCompute::NegativeLogarithms ,
  RooBatchCompute::NormalizedPdf , RooBatchCompute::Novosibirsk , RooBatchCompute::Poisson , RooBatchCompute::Polynomial ,
  RooBatchCompute::Power , RooBatchCompute::ProdPdf , RooBatchCompute::Ratio , RooBatchCompute::TruthModelExpBasis ,
  RooBatchCompute::TruthModelSinBasis , RooBatchCompute::TruthModelCosBasis , RooBatchCompute::TruthModelLinBasis , RooBatchCompute::TruthModelQuadBasis ,
  RooBatchCompute::TruthModelSinhBasis , RooBatchCompute::TruthModelCoshBasis , RooBatchCompute::Voigtian
}

Functions

void RooBatchCompute::compute (Config cfg, Computer comp, std::span< double > output, std::initializer_list< std::span< const double > > vars, ArgSpan extraArgs={})
 It is not possible to construct a std::span directly from an initializer list (probably it will be with C++26).
void RooBatchCompute::compute (Config cfg, Computer comp, std::span< double > output, VarSpan vars, ArgSpan extraArgs={})
Architecture RooBatchCompute::cpuArchitecture ()
std::string RooBatchCompute::cpuArchitectureName ()
std::string RooBatchCompute::getBatchComputeChoice ()
int RooBatchCompute::initCPU ()
 Inspect hardware capabilities, and load the optimal library for RooFit computations.
int RooBatchCompute::initCUDA ()
ReduceNLLOutput RooBatchCompute::reduceNLL (Config cfg, std::span< const double > probas, std::span< const double > weights, std::span< const double > offsetProbas)
double RooBatchCompute::reduceSum (Config cfg, InputArr input, size_t n)
void RooBatchCompute::setBatchComputeChoice (std::string const &value)

Variables

constexpr std::size_t RooBatchCompute::bufferSize = 64
R__EXTERN RooBatchComputeInterfaceRooBatchCompute::dispatchCPU = nullptr
 This dispatch pointer points to an implementation of the compute library, provided one has been loaded.
R__EXTERN RooBatchComputeInterfaceRooBatchCompute::dispatchCUDA = nullptr