Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooFit::NodeInfo Struct Reference

A struct used by the Evaluator to store information on the RooAbsArgs in the computation graph.

Definition at line 97 of file Evaluator.cxx.

Public Member Functions

void decrementRemainingClients ()
 Check the servers of a node that has been computed and release its resources if they are no longer needed.
 
bool isScalar () const
 

Public Attributes

RooAbsArgabsArg = nullptr
 
std::shared_ptr< RooBatchCompute::AbsBufferbuffer
 
std::vector< NodeInfo * > clientInfos
 
bool computeInGPU = false
 
bool copyAfterEvaluation = false
 
bool fromArrayInput = false
 
bool hasLogged = false
 
std::size_t iNode = 0
 
bool isCategory = false
 
bool isDirty = true
 
bool isValueServer = false
 
bool isVariable = false
 
int lastCatVal = std::numeric_limits<int>::max()
 
std::size_t lastSetValCount = std::numeric_limits<std::size_t>::max()
 
RooAbsArg::OperMode originalOperMode
 
std::size_t outputSize = 1
 
int remClients = 0
 
double scalarBuffer = 0.0
 
std::vector< NodeInfo * > serverInfos
 

Member Function Documentation

◆ decrementRemainingClients()

void RooFit::NodeInfo::decrementRemainingClients ( )
inline

Check the servers of a node that has been computed and release its resources if they are no longer needed.

Buffers of nodes whose results are copied between host and device (copyAfterEvaluation) must not be released eagerly: their pinned host memory can still be the source of an asynchronous copy that was enqueued on the CUDA stream, and a new owner would overwrite it from the CPU without any stream ordering. Those buffers are released at the beginning of the next evaluation instead, after the stream was synchronized at the end of this one.

Definition at line 130 of file Evaluator.cxx.

◆ isScalar()

bool RooFit::NodeInfo::isScalar ( ) const
inline

Definition at line 99 of file Evaluator.cxx.

Member Data Documentation

◆ absArg

RooAbsArg* RooFit::NodeInfo::absArg = nullptr

Definition at line 101 of file Evaluator.cxx.

◆ buffer

std::shared_ptr<RooBatchCompute::AbsBuffer> RooFit::NodeInfo::buffer

Definition at line 104 of file Evaluator.cxx.

◆ clientInfos

std::vector<NodeInfo *> RooFit::NodeInfo::clientInfos

Definition at line 120 of file Evaluator.cxx.

◆ computeInGPU

bool RooFit::NodeInfo::computeInGPU = false

Definition at line 113 of file Evaluator.cxx.

◆ copyAfterEvaluation

bool RooFit::NodeInfo::copyAfterEvaluation = false

Definition at line 107 of file Evaluator.cxx.

◆ fromArrayInput

bool RooFit::NodeInfo::fromArrayInput = false

Definition at line 108 of file Evaluator.cxx.

◆ hasLogged

bool RooFit::NodeInfo::hasLogged = false

Definition at line 112 of file Evaluator.cxx.

◆ iNode

std::size_t RooFit::NodeInfo::iNode = 0

Definition at line 105 of file Evaluator.cxx.

◆ isCategory

bool RooFit::NodeInfo::isCategory = false

Definition at line 111 of file Evaluator.cxx.

◆ isDirty

bool RooFit::NodeInfo::isDirty = true

Definition at line 110 of file Evaluator.cxx.

◆ isValueServer

bool RooFit::NodeInfo::isValueServer = false

Definition at line 114 of file Evaluator.cxx.

◆ isVariable

bool RooFit::NodeInfo::isVariable = false

Definition at line 109 of file Evaluator.cxx.

◆ lastCatVal

int RooFit::NodeInfo::lastCatVal = std::numeric_limits<int>::max()

Definition at line 117 of file Evaluator.cxx.

◆ lastSetValCount

std::size_t RooFit::NodeInfo::lastSetValCount = std::numeric_limits<std::size_t>::max()

Definition at line 116 of file Evaluator.cxx.

◆ originalOperMode

RooAbsArg::OperMode RooFit::NodeInfo::originalOperMode

Definition at line 102 of file Evaluator.cxx.

◆ outputSize

std::size_t RooFit::NodeInfo::outputSize = 1

Definition at line 115 of file Evaluator.cxx.

◆ remClients

int RooFit::NodeInfo::remClients = 0

Definition at line 106 of file Evaluator.cxx.

◆ scalarBuffer

double RooFit::NodeInfo::scalarBuffer = 0.0

Definition at line 118 of file Evaluator.cxx.

◆ serverInfos

std::vector<NodeInfo *> RooFit::NodeInfo::serverInfos

Definition at line 119 of file Evaluator.cxx.

Collaboration diagram for RooFit::NodeInfo:
[legend]

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