This class overrides some RooBatchComputeInterface functions, for the purpose of providing a cuda specific implementation of the library.
Definition at line 234 of file RooBatchCompute.cu.
Public Member Functions | |
| RooBatchComputeClass () | |
| Architecture | architecture () const override |
| std::string | architectureName () const 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 override |
| void | deleteCudaStream (CudaInterface::CudaStream *stream) const override |
| CudaInterface::CudaStream * | newCudaStream () const 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 (RooBatchCompute::Config const &cfg, InputArr input, size_t n) override |
| Return the sum of an input array. | |
| void | synchronizeCudaStream (CudaInterface::CudaStream *stream) const override |
| Wait until all work that was enqueued on the stream has completed. | |
Private Member Functions | |
| StreamScratch & | scratch (CudaInterface::CudaStream *stream) |
Private Attributes | |
| const std::vector< void(*)(Batches &)> | _computeFunctions |
| std::unordered_map< CudaInterface::CudaStream *, StreamScratch > | _scratchMap |
|
inline |
Definition at line 237 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 242 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 243 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Compute multiple values using cuda kernels.
This method creates a Batches object and passes it to the correct compute function. The compute function is launched as a cuda kernel.
| 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 252 of file RooBatchCompute.cu.
|
overridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 786 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 317 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 316 of file RooBatchCompute.cu.
|
overridevirtual |
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 498 of file RooBatchCompute.cu.
|
overridevirtual |
Return the sum of an input array.
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 477 of file RooBatchCompute.cu.
|
inlineprivate |
Definition at line 334 of file RooBatchCompute.cu.
|
inlineoverridevirtual |
Wait until all work that was enqueued on the stream has completed.
Implements RooBatchCompute::RooBatchComputeInterface.
Definition at line 322 of file RooBatchCompute.cu.
|
private |
Definition at line 336 of file RooBatchCompute.cu.
|
mutableprivate |
Definition at line 337 of file RooBatchCompute.cu.