Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooBatchCompute.cu File Reference
#include "RooBatchCompute.h"
#include "Batches.h"
#include "CudaInterface.h"
#include <algorithm>
#include <cassert>
#include <functional>
#include <map>
#include <queue>
#include <vector>
Include dependency graph for RooBatchCompute.cu:

Classes

class  RooBatchCompute::CUDA::RooBatchComputeClass
 This class overrides some RooBatchComputeInterface functions, for the purpose of providing a cuda specific implementation of the library. More...
 

Namespaces

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

Functions

std::vector< void(*)(Batches &)> RooBatchCompute::CUDA::getFunctions ()
 Returns a std::vector of pointers to the compute functions in this file.
 
__global__ void RooBatchCompute::CUDA::kahanSum (const double *__restrict__ input, const double *__restrict__ carries, size_t n, double *__restrict__ result, bool nll)
 
__device__ void RooBatchCompute::CUDA::kahanSumReduction (double *shared, size_t n, double *__restrict__ result, int carry_index)
 
__device__ void RooBatchCompute::CUDA::kahanSumUpdate (double &sum, double &carry, double a, double otherCarry)
 
__global__ void RooBatchCompute::CUDA::nllSumKernel (const double *__restrict__ probas, const double *__restrict__ weights, const double *__restrict__ offsetProbas, size_t n, double *__restrict__ result)
 

Variables

constexpr int RooBatchCompute::CUDA::blockSize = 512
 
static RooBatchComputeClass RooBatchCompute::CUDA::computeObj
 Static object to trigger the constructor which overwrites the dispatch pointer.
 

Variable Documentation

◆ _arr

CudaInterface::PinnedHostArray<double> _arr
private

Definition at line 415 of file RooBatchCompute.cu.

◆ _cudaStream

CudaInterface::CudaStream* _cudaStream = nullptr
private

Definition at line 469 of file RooBatchCompute.cu.

◆ _gpuBuffer

GPUBufferContainer _gpuBuffer
private

Definition at line 468 of file RooBatchCompute.cu.

◆ _lastAccess

LastAccessType _lastAccess = LastAccessType::CPU_READ
mutableprivate

Definition at line 470 of file RooBatchCompute.cu.

◆ _queue

Queue& _queue
private

Definition at line 503 of file RooBatchCompute.cu.

◆ _queuesMaps

std::unique_ptr<BufferQueuesMaps> _queuesMaps
private

Definition at line 543 of file RooBatchCompute.cu.

◆ _val

double _val
private

Definition at line 356 of file RooBatchCompute.cu.

◆ _vec

std::unique_ptr<Container> _vec
private

Definition at line 384 of file RooBatchCompute.cu.

◆ cpuBufferQueuesMap

std::map<std::size_t, CPUBuffer::Queue> cpuBufferQueuesMap

Definition at line 513 of file RooBatchCompute.cu.

◆ gpuBufferQueuesMap

std::map<std::size_t, GPUBuffer::Queue> gpuBufferQueuesMap

Definition at line 514 of file RooBatchCompute.cu.

◆ pinnedBufferQueuesMap

std::map<std::size_t, PinnedBuffer::Queue> pinnedBufferQueuesMap

Definition at line 515 of file RooBatchCompute.cu.

◆ scalarBufferQueuesMap

std::map<std::size_t, ScalarBuffer::Queue> scalarBufferQueuesMap

Definition at line 512 of file RooBatchCompute.cu.