This class overrides some RooBatchComputeInterface functions, for the purpose of providing a cuda specific implementation of the library.
This class overrides some RooBatchComputeInterface functions, for the purpose of providing a CPU specific implementation of the library.
Definition at line 90 of file RooBatchCompute.cu.
|
| RooBatchComputeClass () |
|
| RooBatchComputeClass () |
|
Architecture | architecture () const override |
|
Architecture | architecture () const override |
|
std::string | architectureName () const override |
|
std::string | architectureName () const override |
|
void | compute (Config const &, Computer computer, std::span< double > output, VarSpan vars, ArgSpan extraArgs) override |
|
void | compute (RooBatchCompute::Config const &cfg, Computer computer, std::span< double > output, VarSpan vars, ArgSpan extraArgs) override |
| Compute multiple values using cuda kernels.
|
|
std::unique_ptr< AbsBufferManager > | createBufferManager () const |
|
std::unique_ptr< AbsBufferManager > | createBufferManager () const override |
|
void | cudaEventRecord (CudaInterface::CudaEvent *, CudaInterface::CudaStream *) const override |
|
void | cudaEventRecord (CudaInterface::CudaEvent *event, CudaInterface::CudaStream *stream) const override |
|
bool | cudaStreamIsActive (CudaInterface::CudaStream *) const override |
|
bool | cudaStreamIsActive (CudaInterface::CudaStream *stream) const override |
|
void | cudaStreamWaitForEvent (CudaInterface::CudaStream *, CudaInterface::CudaEvent *) const override |
|
void | cudaStreamWaitForEvent (CudaInterface::CudaStream *stream, CudaInterface::CudaEvent *event) const override |
|
void | deleteCudaEvent (CudaInterface::CudaEvent *) const override |
|
void | deleteCudaEvent (CudaInterface::CudaEvent *event) const override |
|
void | deleteCudaStream (CudaInterface::CudaStream *) const override |
|
void | deleteCudaStream (CudaInterface::CudaStream *stream) const override |
|
CudaInterface::CudaEvent * | newCudaEvent (bool forTiming) const override |
|
CudaInterface::CudaEvent * | newCudaEvent (bool) const override |
|
CudaInterface::CudaStream * | newCudaStream () const override |
|
CudaInterface::CudaStream * | newCudaStream () const override |
|
ReduceNLLOutput | reduceNLL (Config const &, std::span< const double > probas, std::span< const double > weights, std::span< const double > offsetProbas) override |
|
ReduceNLLOutput | reduceNLL (RooBatchCompute::Config const &cfg, 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 |
|
double | reduceSum (RooBatchCompute::Config const &cfg, InputArr input, size_t n) override |
| Return the sum of an input array.
|
|
virtual | ~RooBatchComputeInterface ()=default |
|
Compute multiple values using cuda kernels.
Compute multiple values using optimized functions.
This method creates a Batches object and passes it to the correct compute function. The compute function is launched as a cuda kernel.
- Parameters
-
computer | An enum specifying the compute function to be used. |
output | The array where the computation results are stored. |
vars | A std::span containing pointers to the variables involved in the computation. |
extraArgs | An optional std::span containing extra double values that may participate in the computation. |
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
-
computer | An enum specifying the compute function to be used. |
output | The array where the computation results are stored. |
vars | A std::span containing pointers to the variables involved in the computation. |
extraArgs | An optional std::span containing extra double values that may participate in the computation. |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 108 of file RooBatchCompute.cu.