Shared scratch MultiVectors (large-batch and small-batch variants) that can be reused across ChebyshevFilteredEigenSolver, OrthonormalizationFunctions, RayleighRitzEigenSolver, and KohnShamEigenSolver to avoid redundant GPU allocations. More...
#include <MultivectorScratch.h>
Public Member Functions | |
| MultivectorScratch (std::shared_ptr< MultiVector< ValueType, memorySpace > > XinBatch, std::shared_ptr< MultiVector< ValueType, memorySpace > > XoutBatch) | |
| void | acquire () |
| void | release () |
| void | setXinBatchSmall (std::shared_ptr< MultiVector< ValueType, memorySpace > > v) |
| void | setXoutBatchSmall (std::shared_ptr< MultiVector< ValueType, memorySpace > > v) |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | getXinBatch () const |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | getXoutBatch () const |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | getXinBatchSmall () const |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | getXoutBatchSmall () const |
| bool | hasXinBatch () const |
| bool | hasXoutBatch () const |
| bool | hasXinBatchSmall () const |
| bool | hasXoutBatchSmall () const |
| size_type | getXinBatchSize () const |
| size_type | getXoutBatchSize () const |
| size_type | getXinBatchSmallSize () const |
Private Attributes | |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XinBatch |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XoutBatch |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XinBatchSmall |
| std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XoutBatchSmall |
| bool | d_inUse |
Shared scratch MultiVectors (large-batch and small-batch variants) that can be reused across ChebyshevFilteredEigenSolver, OrthonormalizationFunctions, RayleighRitzEigenSolver, and KohnShamEigenSolver to avoid redundant GPU allocations.
The large-batch buffers are supplied at construction (their size is always known upfront). The small-batch buffers are registered lazily via setXinBatchSmall / setXoutBatchSmall the first time a remainder batch is encountered, and are reused by all subsequent solver calls.
|
inline |
|
inline |

|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |