23namespace Experimental {
32 throw std::runtime_error(
"ScalarBufferContainer can only be of size 1");
34 std::size_t
size()
const {
return 1; }
50 std::size_t
size()
const {
return _vec.size(); }
55 throw std::bad_function_call();
62 throw std::bad_function_call();
89 other._data =
nullptr;
98 throw std::bad_function_call();
105 throw std::bad_function_call();
130 other._data =
nullptr;
149 return static_cast<double *
>(
_data);
166 return static_cast<double *
>(
_data);
184template <
class Container>
187 using Queue = std::queue<Container>;
252 out->vec().setCudaStream(stream);
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
double * cpuWritePtr() override
BufferImpl(std::size_t size, QueuesMap &queuesMap)
double * gpuWritePtr() override
std::map< std::size_t, Queue > QueuesMap
std::queue< Container > Queue
double const * gpuReadPtr() const override
double const * cpuReadPtr() const override
BufferQueuesMaps * _queuesMaps
AbsBuffer * makeScalarBuffer()
AbsBuffer * makeCpuBuffer(std::size_t size)
AbsBuffer * makePinnedBuffer(std::size_t size, cudaStream_t *stream=nullptr)
AbsBuffer * makeGpuBuffer(std::size_t size)
std::vector< double > _vec
CPUBufferContainer(std::size_t size)
double const * gpuReadPtr() const
double const * cpuReadPtr() const
double const * cpuReadPtr() const
GPUBufferContainer(const GPUBufferContainer &)=delete
double * gpuWritePtr() const
GPUBufferContainer(std::size_t size)
GPUBufferContainer & operator=(const GPUBufferContainer &)=delete
double * cpuWritePtr() const
GPUBufferContainer(GPUBufferContainer &&other)
GPUBufferContainer & operator=(GPUBufferContainer &&other)
double const * gpuReadPtr() const
LastAccessType _lastAccess
PinnedBufferContainer & operator=(const PinnedBufferContainer &)=delete
cudaStream_t * _cudaStream
PinnedBufferContainer(const PinnedBufferContainer &)=delete
PinnedBufferContainer(std::size_t size)
double const * cpuReadPtr() const
double const * gpuReadPtr() const
void setCudaStream(cudaStream_t *stream)
GPUBufferContainer _gpuBuffer
PinnedBufferContainer & operator=(PinnedBufferContainer &&other)
PinnedBufferContainer(PinnedBufferContainer &&other)
double const * cpuReadPtr() const
double const * gpuReadPtr() const
ScalarBufferContainer(std::size_t size)
virtual void * cudaMalloc(size_t)
virtual void memcpyToCPU(void *, const void *, size_t, cudaStream_t *=nullptr)
virtual void cudaFree(void *)
virtual void * cudaMallocHost(size_t)
virtual void memcpyToCUDA(void *, const void *, size_t, cudaStream_t *=nullptr)
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
R__EXTERN RooBatchComputeInterface * dispatchCUDA
PinnedBuffer::QueuesMap pinnedBufferQueuesMap
ScalarBuffer::QueuesMap scalarBufferQueuesMap
CPUBuffer::QueuesMap cpuBufferQueuesMap
GPUBuffer::QueuesMap gpuBufferQueuesMap