Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
RooBatchCompute::RF_ARCH::RooBatchComputeClass Class Reference

This class overrides some RooBatchComputeInterface functions, for the purpose of providing a CPU specific implementation of the library.

Definition at line 83 of file RooBatchCompute.cxx.

Public Member Functions

 RooBatchComputeClass ()
Architecture architecture () const override
std::string architectureName () const override
void compute (Config const &, Computer computer, std::span< double > output, VarSpan vars, ArgSpan extraArgs) override
 Compute multiple values using optimized functions.
std::unique_ptr< AbsBufferManagercreateBufferManager () const override
void cudaEventRecord (CudaInterface::CudaEvent *, CudaInterface::CudaStream *) const override
bool cudaStreamIsActive (CudaInterface::CudaStream *) const override
void cudaStreamWaitForEvent (CudaInterface::CudaStream *, CudaInterface::CudaEvent *) const override
void deleteCudaEvent (CudaInterface::CudaEvent *) const override
void deleteCudaStream (CudaInterface::CudaStream *) const override
CudaInterface::CudaEventnewCudaEvent (bool) const override
CudaInterface::CudaStreamnewCudaStream () const override
ReduceNLLOutput reduceNLL (Config const &, std::span< const double > probas, std::span< const double > weights, std::span< const double > offsetProbas) override
double reduceSum (Config const &, InputArr input, size_t n) override

Private Attributes

const std::vector< void(*)(Batches &)> _computeFunctions
Inheritance diagram for RooBatchCompute::RF_ARCH::RooBatchComputeClass:
RooBatchCompute::RooBatchComputeInterface

Constructor & Destructor Documentation

◆ RooBatchComputeClass()

RooBatchCompute::RF_ARCH::RooBatchComputeClass::RooBatchComputeClass ( )
inline

Definition at line 85 of file RooBatchCompute.cxx.

Member Function Documentation

◆ architecture()

Architecture RooBatchCompute::RF_ARCH::RooBatchComputeClass::architecture ( ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 91 of file RooBatchCompute.cxx.

◆ architectureName()

std::string RooBatchCompute::RF_ARCH::RooBatchComputeClass::architectureName ( ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 92 of file RooBatchCompute.cxx.

◆ compute()

void RooBatchCompute::RF_ARCH::RooBatchComputeClass::compute ( Config const & ,
Computer computer,
std::span< double > output,
VarSpan vars,
ArgSpan extraArgs )
overridevirtual

Compute multiple values using optimized functions.

This method creates a Batches object and passes it to the correct compute function. In case Implicit Multithreading is enabled, the events to be processed are equally divided among the tasks to be generated and computed in parallel.

Parameters
computerAn enum specifying the compute function to be used.
outputThe array where the computation results are stored.
varsA std::span containing pointers to the variables involved in the computation.
extraArgsAn optional std::span containing extra double values that may participate in the computation.

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 187 of file RooBatchCompute.cxx.

◆ createBufferManager()

std::unique_ptr< AbsBufferManager > RooBatchCompute::RF_ARCH::RooBatchComputeClass::createBufferManager ( ) const
overridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 417 of file RooBatchCompute.cxx.

◆ cudaEventRecord()

void RooBatchCompute::RF_ARCH::RooBatchComputeClass::cudaEventRecord ( CudaInterface::CudaEvent * ,
CudaInterface::CudaStream *  ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 111 of file RooBatchCompute.cxx.

◆ cudaStreamIsActive()

bool RooBatchCompute::RF_ARCH::RooBatchComputeClass::cudaStreamIsActive ( CudaInterface::CudaStream * ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 119 of file RooBatchCompute.cxx.

◆ cudaStreamWaitForEvent()

void RooBatchCompute::RF_ARCH::RooBatchComputeClass::cudaStreamWaitForEvent ( CudaInterface::CudaStream * ,
CudaInterface::CudaEvent *  ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 115 of file RooBatchCompute.cxx.

◆ deleteCudaEvent()

void RooBatchCompute::RF_ARCH::RooBatchComputeClass::deleteCudaEvent ( CudaInterface::CudaEvent * ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 109 of file RooBatchCompute.cxx.

◆ deleteCudaStream()

void RooBatchCompute::RF_ARCH::RooBatchComputeClass::deleteCudaStream ( CudaInterface::CudaStream * ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 110 of file RooBatchCompute.cxx.

◆ newCudaEvent()

CudaInterface::CudaEvent * RooBatchCompute::RF_ARCH::RooBatchComputeClass::newCudaEvent ( bool ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 107 of file RooBatchCompute.cxx.

◆ newCudaStream()

CudaInterface::CudaStream * RooBatchCompute::RF_ARCH::RooBatchComputeClass::newCudaStream ( ) const
inlineoverridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 108 of file RooBatchCompute.cxx.

◆ reduceNLL()

ReduceNLLOutput RooBatchCompute::RF_ARCH::RooBatchComputeClass::reduceNLL ( Config const & ,
std::span< const double > probas,
std::span< const double > weights,
std::span< const double > offsetProbas )
overridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 263 of file RooBatchCompute.cxx.

◆ reduceSum()

double RooBatchCompute::RF_ARCH::RooBatchComputeClass::reduceSum ( Config const & ,
InputArr input,
size_t n )
overridevirtual

Implements RooBatchCompute::RooBatchComputeInterface.

Definition at line 258 of file RooBatchCompute.cxx.

Member Data Documentation

◆ _computeFunctions

const std::vector<void (*)(Batches &)> RooBatchCompute::RF_ARCH::RooBatchComputeClass::_computeFunctions
private

Definition at line 126 of file RooBatchCompute.cxx.


The documentation for this class was generated from the following file: