SG++-Doxygen-Documentation
|
OperationMultipleEval for polynomial basis functions (grad >= 2) using CUDA on grids without boundary nodes. More...
#include <OperationMultiEvalCuda.hpp>
Public Member Functions | |
double | getDuration () override |
Returns time in s of last mult, multTransposed, multTransposedFMA. More... | |
void | mult (base::DataVector &source, base::DataVector &result) override |
Standard evaluation. More... | |
void | multTranspose (base::DataVector &source, base::DataVector &result) override |
Transposed evaluation. More... | |
void | multTransposeFMA (base::DataVector &source, base::DataVector &prev, double lambda, base::DataVector &result) |
Transposed evaluation with additional FMA. result = 1/M * B*source + lambda * prev. More... | |
OperationMultiEvalCuda (base::Grid &grid, base::DataMatrix &dataset, const uint32_t &grad) | |
Constructor. Autocheck dataset for Morton order and turn on permutation if not. More... | |
OperationMultiEvalCuda (base::Grid &grid, base::DataMatrix &dataset, const uint32_t &grad, bool autocheck) | |
Constructor. Autocheck for Morton order can be disabled. More... | |
void | prepare () override |
Does all preprocessing for given grid and dataset and copies data to the GPU. More... | |
~OperationMultiEvalCuda () | |
Destructor. More... | |
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 | |
uint32_t | _M |
uint32_t | _N |
OpMultiEvalCudaDetail::HostDevPtr< double > | alpha |
OpMultiEvalCudaDetail::HostDevPtr< double > | data |
uint32_t | DIM |
double | duration |
OpMultiEvalCudaDetail::HostDevPtr< uint32_t > | levellimit |
uint32_t | M |
uint32_t | maxlevel |
base::SGppStopwatch | myTimer |
uint32_t | N |
OpMultiEvalCudaDetail::HostDevPtr< OpMultiEvalCudaDetail::gridnode_t > | node |
uint32_t | polygrad |
OpMultiEvalCudaDetail::HostDevPtr< double > | pos |
OpMultiEvalCudaDetail::HostDevPtr< OpMultiEvalCudaDetail::limit_t > | streamlimit |
OpMultiEvalCudaDetail::HostDevPtr< uint32_t > | subs |
OpMultiEvalCudaDetail::MortonOrder * | zorder |
Protected Attributes inherited from sgpp::base::OperationMultipleEval | |
DataMatrix & | dataset |
Grid & | grid |
bool | isPrepared |
OperationMultipleEval for polynomial basis functions (grad >= 2) using CUDA on grids without boundary nodes.
sgpp::datadriven::OperationMultiEvalCuda::OperationMultiEvalCuda | ( | base::Grid & | grid, |
base::DataMatrix & | dataset, | ||
const uint32_t & | grad | ||
) |
sgpp::datadriven::OperationMultiEvalCuda::OperationMultiEvalCuda | ( | base::Grid & | grid, |
base::DataMatrix & | dataset, | ||
const uint32_t & | grad, | ||
bool | autocheck | ||
) |
sgpp::datadriven::OperationMultiEvalCuda::~OperationMultiEvalCuda | ( | ) |
|
overridevirtual |
Returns time in s of last mult, multTransposed, multTransposedFMA.
Returns last measured time.
Implements sgpp::base::OperationMultipleEval.
References duration.
|
overridevirtual |
Standard evaluation.
Implements sgpp::base::OperationMultipleEval.
References _M, _N, alpha, data, DIM, duration, python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, levellimit, M, maxlevel, myTimer, N, node, pos, sgpp::base::SGppStopwatch::start(), sgpp::base::SGppStopwatch::stop(), subs, and zorder.
|
overridevirtual |
Transposed evaluation.
Implements sgpp::base::OperationMultipleEval.
References _M, _N, alpha, data, duration, python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, M, myTimer, node, pos, sgpp::base::SGppStopwatch::start(), sgpp::base::SGppStopwatch::stop(), streamlimit, and zorder.
void sgpp::datadriven::OperationMultiEvalCuda::multTransposeFMA | ( | base::DataVector & | source, |
base::DataVector & | prev, | ||
double | lambda, | ||
base::DataVector & | result | ||
) |
Transposed evaluation with additional FMA. result = 1/M * B*source + lambda * prev.
Transposed evaluation with additional FMA.
References _M, _N, alpha, chess::b, data, duration, python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, lambda, M, myTimer, N, node, pos, sgpp::base::SGppStopwatch::start(), sgpp::base::SGppStopwatch::stop(), streamlimit, and zorder.
|
overridevirtual |
Does all preprocessing for given grid and dataset and copies data to the GPU.
Preprocessing.
Reimplemented from sgpp::base::OperationMultipleEval.
References _M, _N, alpha, data, sgpp::base::OperationMultipleEval::dataset, DIM, sgpp::base::DataMatrix::get(), sgpp::base::HashGridPoint::getIndex(), sgpp::base::HashGridPoint::getLeftChild(), sgpp::base::HashGridPoint::getLevel(), sgpp::base::DataMatrix::getNrows(), sgpp::base::HashGridPoint::getRightChild(), sgpp::base::Grid::getStorage(), sgpp::base::OperationMultipleEval::grid, python.statsfileInfo::i, sgpp::base::OperationMultipleEval::isPrepared, python.utils.statsfile2gnuplot::j, level, levellimit, M, maxlevel, N, node, polygrad, pos, create_scripts::s, streamlimit, subs, and zorder.
Referenced by OperationMultiEvalCuda().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), prepare(), and python.learner.Classifier.Classifier::refineGrid().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
|
protected |
Referenced by getDuration(), mult(), multTranspose(), and multTransposeFMA().
|
protected |
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
|
protected |
Referenced by mult(), multTranspose(), and multTransposeFMA().
|
protected |
Referenced by mult(), multTransposeFMA(), and prepare().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
Referenced by OperationMultiEvalCuda(), and prepare().
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), and prepare().
|
protected |
Referenced by multTranspose(), multTransposeFMA(), and prepare().
|
protected |
|
protected |
Referenced by mult(), multTranspose(), multTransposeFMA(), OperationMultiEvalCuda(), prepare(), and ~OperationMultiEvalCuda().