SG++-Doxygen-Documentation
sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T > Class Template Reference

#include <OperationMultiEvalStreamingModOCLOpt.hpp>

Inheritance diagram for sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >:
sgpp::base::OperationMultipleEval

Public Member Functions

double getDuration ()
 
void mult (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result) override
 Multiplication of \(B^T\) with vector \(\alpha\). More...
 
void multTranspose (sgpp::base::DataVector &source, sgpp::base::DataVector &result) override
 Multiplication of \(B\) with vector \(\alpha\). More...
 
 OperationMultiEvalStreamingModOCLOpt (base::Grid &grid, base::DataMatrix &dataset, std::shared_ptr< base::OCLManagerMultiPlatform > manager, std::shared_ptr< base::OCLOperationConfiguration > parameters)
 
void prepare () override
 Used for kernel-specific setup like special data structures that are defined from the current state of the grid. More...
 
 ~OperationMultiEvalStreamingModOCLOpt ()
 
- Public Member Functions inherited from sgpp::base::OperationMultipleEval
void eval (DataVector &alpha, DataVector &result)
 Evaluate multiple datapoints with the specified grid. More...
 
virtual std::string getImplementationName ()
 Name of this implementation of the operation. More...
 
virtual void mult (DataVector &alpha, DataVector &result, size_t startIndexData, size_t endIndexData)
 Multiplication of \(B^T\) with vector \(\alpha\). More...
 
virtual void multTranspose (DataVector &source, DataVector &result, size_t startIndexGrid, size_t endIndexGrid)
 Multiplication of \(B\) with vector \(\alpha\). More...
 
 OperationMultipleEval (sgpp::base::Grid &grid, DataMatrix &dataset)
 Constructor. More...
 
virtual ~OperationMultipleEval ()
 Destructor. More...
 

Protected Attributes

size_t datasetSizePadded
 
size_t datasetSizeUnpadded
 
std::vector< std::shared_ptr< base::OCLDevice > > devices
 
size_t dims
 
double duration
 
size_t gridSizePadded
 
size_t gridSizeUnpadded
 
std::vector< T > indexFast
 Member to store the sparse grid's indices for better vectorization. More...
 
std::vector< T > indexMask
 Member to store the sparse grid's indices for better vectorization. More...
 
std::vector< T > kernelDataset
 
std::vector< T > levelFast
 Member to store the sparse grid's levels for better vectorization. More...
 
std::vector< T > levelMask
 Member to store the sparse grid's levels for better vectorization. More...
 
std::shared_ptr< base::OCLManagerMultiPlatformmanager
 
std::vector< T > maskMask
 Member to store the sparse grid's mask for better vectorization. More...
 
std::vector< StreamingModOCLOpt::KernelMult< T > > multKernels
 
std::vector< StreamingModOCLOpt::KernelMultTranspose< T > > multTransposeKernels
 
sgpp::base::SGppStopwatch myTimer
 Timer object to handle time measurements. More...
 
std::vector< T > offsetMask
 Member to store the sparse grid's offset for better vectorization. More...
 
size_t overallDataBlockingSize
 
size_t overallGridBlockingSize
 
std::shared_ptr< base::OCLOperationConfigurationparameters
 
sgpp::base::DataMatrix preparedDataset
 
std::shared_ptr< sgpp::base::QueueLoadBalancerOpenMPqueueLoadBalancerMult
 
std::shared_ptr< sgpp::base::QueueLoadBalancerOpenMPqueueLoadBalancerMultTrans
 
base::GridStoragestorage
 
bool verbose
 
- Protected Attributes inherited from sgpp::base::OperationMultipleEval
DataMatrixdataset
 
Gridgrid
 
bool isPrepared
 

Constructor & Destructor Documentation

◆ OperationMultiEvalStreamingModOCLOpt()

◆ ~OperationMultiEvalStreamingModOCLOpt()

Member Function Documentation

◆ getDuration()

◆ mult()

◆ multTranspose()

◆ prepare()

template<typename T>
void sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::prepare ( )
inlineoverridevirtual

Used for kernel-specific setup like special data structures that are defined from the current state of the grid.

This function is by default called with each "mult()", "multTranspose()" or evaluation operation and can be ignored from an external perspective. This is not overridden by every kernel.

Reimplemented from sgpp::base::OperationMultipleEval.

References sgpp::base::OperationMultipleEval::dataset, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::datasetSizePadded, chess::dim, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::dims, sgpp::base::HashGridPoint::get(), sgpp::base::HashGridStorage::getDimension(), sgpp::datadriven::StreamingModOCLOpt::Configuration::getKernelName(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), sgpp::base::HashGridStorage::getPoint(), sgpp::base::DataMatrix::getRow(), sgpp::base::HashGridStorage::getSize(), sgpp::base::Grid::getStorage(), sgpp::base::OperationMultipleEval::grid, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::gridSizePadded, python.statsfileInfo::i, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::overallGridBlockingSize, sgpp::base::DataMatrix::resize(), and sgpp::base::DataMatrix::setRow().

Referenced by sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::mult(), sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::multTranspose(), and sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::OperationMultiEvalStreamingModOCLOpt().

Member Data Documentation

◆ datasetSizePadded

◆ datasetSizeUnpadded

template<typename T>
size_t sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::datasetSizeUnpadded
protected

◆ devices

template<typename T>
std::vector<std::shared_ptr<base::OCLDevice> > sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::devices
protected

◆ dims

◆ duration

◆ gridSizePadded

◆ gridSizeUnpadded

template<typename T>
size_t sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::gridSizeUnpadded
protected

◆ indexFast

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::indexFast
protected

Member to store the sparse grid's indices for better vectorization.

◆ indexMask

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::indexMask
protected

Member to store the sparse grid's indices for better vectorization.

◆ kernelDataset

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::kernelDataset
protected

◆ levelFast

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::levelFast
protected

Member to store the sparse grid's levels for better vectorization.

◆ levelMask

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::levelMask
protected

Member to store the sparse grid's levels for better vectorization.

◆ manager

template<typename T>
std::shared_ptr<base::OCLManagerMultiPlatform> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::manager
protected

◆ maskMask

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::maskMask
protected

Member to store the sparse grid's mask for better vectorization.

◆ multKernels

template<typename T>
std::vector<StreamingModOCLOpt::KernelMult<T> > sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::multKernels
protected

◆ multTransposeKernels

template<typename T>
std::vector<StreamingModOCLOpt::KernelMultTranspose<T> > sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::multTransposeKernels
protected

◆ myTimer

Timer object to handle time measurements.

◆ offsetMask

template<typename T>
std::vector<T> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::offsetMask
protected

Member to store the sparse grid's offset for better vectorization.

◆ overallDataBlockingSize

template<typename T>
size_t sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::overallDataBlockingSize
protected

◆ overallGridBlockingSize

template<typename T>
size_t sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::overallGridBlockingSize
protected

◆ parameters

template<typename T>
std::shared_ptr<base::OCLOperationConfiguration> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::parameters
protected

◆ preparedDataset

template<typename T>
sgpp::base::DataMatrix sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::preparedDataset
protected

◆ queueLoadBalancerMult

template<typename T>
std::shared_ptr<sgpp::base::QueueLoadBalancerOpenMP> sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::queueLoadBalancerMult
protected

◆ queueLoadBalancerMultTrans

◆ storage

template<typename T>
base::GridStorage& sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::storage
protected

◆ verbose


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