votca 2024-dev
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
votca::xtp::OpenMP_CUDA Class Reference

#include <openmp_cuda.h>

Collaboration diagram for votca::xtp::OpenMP_CUDA:
Collaboration graph
[legend]

Classes

struct  CPU_data
 
class  DefaultReference
 

Public Member Functions

 OpenMP_CUDA ()
 
void setOperators (const std::vector< Eigen::MatrixXd > &tensor, const Eigen::MatrixXd &rightoperator)
 
void MultiplyRight (Eigen::MatrixXd &matrix, Index OpenmpThread)
 
void setOperators (const Eigen::MatrixXd &leftoperator, const Eigen::MatrixXd &rightoperator)
 
void MultiplyLeftRight (Eigen::MatrixXd &matrix, Index OpenmpThread)
 
void createTemporaries (Index rows, Index cols)
 
void PushMatrix (const Eigen::MatrixXd &mat, Index OpenmpThread)
 
void A_TDA (const Eigen::VectorXd &vec, Index OpenmpThread)
 
void createTemporaries (const Eigen::VectorXd &vec, const Eigen::MatrixXd &input, Index rows1, Index rows2, Index cols)
 
void PrepareMatrix1 (Eigen::MatrixXd &mat, Index OpenmpThread)
 
void SetTempZero (Index OpenmpThread)
 
void PrepareMatrix2 (const Eigen::Block< const Eigen::MatrixXd > &mat, bool Hd2, Index OpenmpThread)
 
void Addvec (const Eigen::VectorXd &row, Index OpenmpThread)
 
void MultiplyRow (Index row, Index OpenmpThread)
 
void createAdditionalTemporaries (Index rows, Index cols)
 
void PushMatrix1 (const Eigen::MatrixXd &mat, Index OpenmpThread)
 
void MultiplyBlocks (const Eigen::Block< const Eigen::MatrixXd > &mat, Index i1, Index i2, Index OpenmpThread)
 
Eigen::MatrixXd getReductionVar ()
 

Static Public Member Functions

static Index UsingGPUs ()
 
static Index AvailableGPUs ()
 
static void SetNoGPUs (Index number)
 

Private Member Functions

Index getParentThreadId (Index OpenmpThreadId) const
 
Index getLocalThreadId (Index ParentThreadId) const
 
Index getNumberThreads () const
 

Private Attributes

DefaultReference< const Eigen::MatrixXd > rOP_
 
DefaultReference< const Eigen::MatrixXd > lOP_
 
DefaultReference< const Eigen::VectorXd > vec_
 
std::vector< CPU_datacpus_
 
bool inside_Parallel_region_
 
Index threadID_parent_
 

Static Private Attributes

static Index number_of_gpus = 0
 

Detailed Description

Definition at line 68 of file openmp_cuda.h.

Constructor & Destructor Documentation

◆ OpenMP_CUDA()

votca::xtp::OpenMP_CUDA::OpenMP_CUDA ( )

Definition at line 48 of file openmp_cuda.cc.

Member Function Documentation

◆ A_TDA()

void votca::xtp::OpenMP_CUDA::A_TDA ( const Eigen::VectorXd &  vec,
Index  OpenmpThread 
)

Definition at line 235 of file openmp_cuda.cc.

◆ Addvec()

void votca::xtp::OpenMP_CUDA::Addvec ( const Eigen::VectorXd &  row,
Index  OpenmpThread 
)

Definition at line 371 of file openmp_cuda.cc.

◆ AvailableGPUs()

Index votca::xtp::OpenMP_CUDA::AvailableGPUs ( )
static

Definition at line 32 of file openmp_cuda.cc.

◆ createAdditionalTemporaries()

void votca::xtp::OpenMP_CUDA::createAdditionalTemporaries ( Index  rows,
Index  cols 
)

Definition at line 422 of file openmp_cuda.cc.

◆ createTemporaries() [1/2]

void votca::xtp::OpenMP_CUDA::createTemporaries ( const Eigen::VectorXd &  vec,
const Eigen::MatrixXd &  input,
Index  rows1,
Index  rows2,
Index  cols 
)

Definition at line 285 of file openmp_cuda.cc.

◆ createTemporaries() [2/2]

void votca::xtp::OpenMP_CUDA::createTemporaries ( Index  rows,
Index  cols 
)

Definition at line 212 of file openmp_cuda.cc.

◆ getLocalThreadId()

Index votca::xtp::OpenMP_CUDA::getLocalThreadId ( Index  ParentThreadId) const
private

Definition at line 109 of file openmp_cuda.cc.

◆ getNumberThreads()

Index votca::xtp::OpenMP_CUDA::getNumberThreads ( ) const
private

Definition at line 112 of file openmp_cuda.cc.

◆ getParentThreadId()

Index votca::xtp::OpenMP_CUDA::getParentThreadId ( Index  OpenmpThreadId) const
private

Definition at line 106 of file openmp_cuda.cc.

◆ getReductionVar()

Eigen::MatrixXd votca::xtp::OpenMP_CUDA::getReductionVar ( )

Definition at line 480 of file openmp_cuda.cc.

◆ MultiplyBlocks()

void votca::xtp::OpenMP_CUDA::MultiplyBlocks ( const Eigen::Block< const Eigen::MatrixXd > &  mat,
Index  i1,
Index  i2,
Index  OpenmpThread 
)

Definition at line 442 of file openmp_cuda.cc.

◆ MultiplyLeftRight()

void votca::xtp::OpenMP_CUDA::MultiplyLeftRight ( Eigen::MatrixXd &  matrix,
Index  OpenmpThread 
)

Definition at line 189 of file openmp_cuda.cc.

◆ MultiplyRight()

void votca::xtp::OpenMP_CUDA::MultiplyRight ( Eigen::MatrixXd &  matrix,
Index  OpenmpThread 
)

Definition at line 147 of file openmp_cuda.cc.

◆ MultiplyRow()

void votca::xtp::OpenMP_CUDA::MultiplyRow ( Index  row,
Index  OpenmpThread 
)

Definition at line 388 of file openmp_cuda.cc.

◆ PrepareMatrix1()

void votca::xtp::OpenMP_CUDA::PrepareMatrix1 ( Eigen::MatrixXd &  mat,
Index  OpenmpThread 
)

Definition at line 299 of file openmp_cuda.cc.

◆ PrepareMatrix2()

void votca::xtp::OpenMP_CUDA::PrepareMatrix2 ( const Eigen::Block< const Eigen::MatrixXd > &  mat,
bool  Hd2,
Index  OpenmpThread 
)

Definition at line 334 of file openmp_cuda.cc.

◆ PushMatrix()

void votca::xtp::OpenMP_CUDA::PushMatrix ( const Eigen::MatrixXd &  mat,
Index  OpenmpThread 
)

Definition at line 218 of file openmp_cuda.cc.

◆ PushMatrix1()

void votca::xtp::OpenMP_CUDA::PushMatrix1 ( const Eigen::MatrixXd &  mat,
Index  OpenmpThread 
)

Definition at line 425 of file openmp_cuda.cc.

◆ SetNoGPUs()

void votca::xtp::OpenMP_CUDA::SetNoGPUs ( Index  number)
static

Definition at line 40 of file openmp_cuda.cc.

◆ setOperators() [1/2]

void votca::xtp::OpenMP_CUDA::setOperators ( const Eigen::MatrixXd &  leftoperator,
const Eigen::MatrixXd &  rightoperator 
)

Definition at line 152 of file openmp_cuda.cc.

◆ setOperators() [2/2]

void votca::xtp::OpenMP_CUDA::setOperators ( const std::vector< Eigen::MatrixXd > &  tensor,
const Eigen::MatrixXd &  rightoperator 
)

Definition at line 89 of file openmp_cuda.cc.

◆ SetTempZero()

void votca::xtp::OpenMP_CUDA::SetTempZero ( Index  OpenmpThread)

Definition at line 318 of file openmp_cuda.cc.

◆ UsingGPUs()

Index votca::xtp::OpenMP_CUDA::UsingGPUs ( )
static

Definition at line 30 of file openmp_cuda.cc.

Member Data Documentation

◆ cpus_

std::vector<CPU_data> votca::xtp::OpenMP_CUDA::cpus_
private

Definition at line 149 of file openmp_cuda.h.

◆ inside_Parallel_region_

bool votca::xtp::OpenMP_CUDA::inside_Parallel_region_
private

Definition at line 151 of file openmp_cuda.h.

◆ lOP_

DefaultReference<const Eigen::MatrixXd> votca::xtp::OpenMP_CUDA::lOP_
private

Definition at line 131 of file openmp_cuda.h.

◆ number_of_gpus

Index votca::xtp::OpenMP_CUDA::number_of_gpus = 0
staticprivate

Definition at line 154 of file openmp_cuda.h.

◆ rOP_

DefaultReference<const Eigen::MatrixXd> votca::xtp::OpenMP_CUDA::rOP_
private

Definition at line 130 of file openmp_cuda.h.

◆ threadID_parent_

Index votca::xtp::OpenMP_CUDA::threadID_parent_
private

Definition at line 152 of file openmp_cuda.h.

◆ vec_

DefaultReference<const Eigen::VectorXd> votca::xtp::OpenMP_CUDA::vec_
private

Definition at line 132 of file openmp_cuda.h.


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