SG++-Doxygen-Documentation
|
#include <OperationMultiEvalStreamingModOCLOpt.hpp>
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::OCLManagerMultiPlatform > | manager |
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::OCLOperationConfiguration > | parameters |
sgpp::base::DataMatrix | preparedDataset |
std::shared_ptr< sgpp::base::QueueLoadBalancerOpenMP > | queueLoadBalancerMult |
std::shared_ptr< sgpp::base::QueueLoadBalancerOpenMP > | queueLoadBalancerMultTrans |
base::GridStorage & | storage |
bool | verbose |
Protected Attributes inherited from sgpp::base::OperationMultipleEval | |
DataMatrix & | dataset |
Grid & | grid |
bool | isPrepared |
|
inline |
References sgpp::datadriven::StreamingModOCLOpt::Configuration::getKernelName(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getSize(), python.statsfileInfo::i, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::prepare(), sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::queueLoadBalancerMultTrans, and sgpp::base::DataMatrix::transpose().
|
inline |
|
inlinevirtual |
|
inlineoverridevirtual |
Multiplication of \(B^T\) with vector \(\alpha\).
alpha | vector, to which \(B\) is applied. Typically the coefficient vector |
result | the result vector of the matrix vector multiplication |
Implements sgpp::base::OperationMultipleEval.
References sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::datasetSizePadded, sgpp::base::DataVector::getSize(), sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::gridSizePadded, python.statsfileInfo::i, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::prepare(), sgpp::base::SGppStopwatch::start(), python.leja::start, and sgpp::base::SGppStopwatch::stop().
|
inlineoverridevirtual |
Multiplication of \(B\) with vector \(\alpha\).
source | vector, to which \(B^T\) is applied. Typically the coefficient vector |
result | the result vector of the matrix vector multiplication |
Implements sgpp::base::OperationMultipleEval.
References sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::datasetSizePadded, sgpp::base::DataVector::getSize(), sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::gridSizePadded, python.statsfileInfo::i, sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::prepare(), sgpp::datadriven::OperationMultiEvalStreamingModOCLOpt< T >::queueLoadBalancerMultTrans, sgpp::base::SGppStopwatch::start(), python.leja::start, and sgpp::base::SGppStopwatch::stop().
|
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().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Member to store the sparse grid's indices for better vectorization.
|
protected |
Member to store the sparse grid's indices for better vectorization.
|
protected |
|
protected |
Member to store the sparse grid's levels for better vectorization.
|
protected |
Member to store the sparse grid's levels for better vectorization.
|
protected |
|
protected |
Member to store the sparse grid's mask for better vectorization.
|
protected |
|
protected |
|
protected |
Timer object to handle time measurements.
|
protected |
Member to store the sparse grid's offset for better vectorization.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |