Loading...
Searching...
No Matches
q3::execution::gpu::lapack::HIPGPUEigensolver Class Reference
+ Inheritance diagram for q3::execution::gpu::lapack::HIPGPUEigensolver:

Public Member Functions

 HIPGPUEigensolver (std::shared_ptr< device::GPUDeviceBackend > device_backend)
 
 ~HIPGPUEigensolver () override
 
void generalized_hermitian_eigenvalue_solve (int matrix_dimension, Complex *matrix_a_data, int leading_dimension_a, Complex *matrix_b_data, int leading_dimension_b, Real *eigenvalues) override
 
void hermitian_eigenvalue_solve (int matrix_dimension, Complex *matrix_data, int leading_dimension, Real *eigenvalues) override
 
- Public Member Functions inherited from q3::execution::gpu::lapack::GPUEigensolver
 GPUEigensolver (std::shared_ptr< device::GPUDeviceBackend > device_backend)
 
virtual ~GPUEigensolver ()=default
 
device::GPUDeviceBackend & device_backend ()
 
const device::GPUDeviceBackend & device_backend () const
 

Additional Inherited Members

- Protected Attributes inherited from q3::execution::gpu::lapack::GPUEigensolver
std::shared_ptr< device::GPUDeviceBackend > device_backend_
 

Detailed Description

Definition at line 48 of file hip.cpp.

Constructor & Destructor Documentation

◆ HIPGPUEigensolver()

q3::execution::gpu::lapack::HIPGPUEigensolver::HIPGPUEigensolver ( std::shared_ptr< device::GPUDeviceBackend >  device_backend)
inlineexplicit

Construct a hipSOLVER eigensolver, creating a hipSOLVER handle.

Definition at line 53 of file hip.cpp.

◆ ~HIPGPUEigensolver()

q3::execution::gpu::lapack::HIPGPUEigensolver::~HIPGPUEigensolver ( )
inlineoverride

Definition at line 58 of file hip.cpp.

Member Function Documentation

◆ generalized_hermitian_eigenvalue_solve()

void q3::execution::gpu::lapack::HIPGPUEigensolver::generalized_hermitian_eigenvalue_solve ( int  matrix_dimension,
Complex *  matrix_a_data,
int  leading_dimension_a,
Complex *  matrix_b_data,
int  leading_dimension_b,
Real *  eigenvalues 
)
inlineoverridevirtual

Solve A · x = λ · B · x via hipsolverDnZhegvd.

B must be positive definite. On exit, matrix_a_data holds the eigenvectors and eigenvalues contains eigenvalues in ascending order.

Implements q3::execution::gpu::lapack::GPUEigensolver.

Definition at line 132 of file hip.cpp.

◆ hermitian_eigenvalue_solve()

void q3::execution::gpu::lapack::HIPGPUEigensolver::hermitian_eigenvalue_solve ( int  matrix_dimension,
Complex *  matrix_data,
int  leading_dimension,
Real *  eigenvalues 
)
inlineoverridevirtual

Solve A · x = λ · x via hipsolverDnZheevd.

Uses the divide-and-conquer algorithm for better performance on large matrices. On entry, matrix_data holds the Hermitian matrix (upper triangle). On exit, it holds the eigenvectors.

Implements q3::execution::gpu::lapack::GPUEigensolver.

Definition at line 71 of file hip.cpp.


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