Inheritance diagram for q3::execution::gpu::blas::HIPGPUBLAS:Public Member Functions | |
| HIPGPUBLAS (std::shared_ptr< device::GPUDeviceBackend > device_backend) | |
| ~HIPGPUBLAS () override | |
| void | axpy (int number_of_elements, Complex scaling_factor, const Complex *vector_x, Complex *vector_y) const override |
| void | dgemm (char transpose_a, char transpose_b, int m, int n, int k, Real alpha, const Real *matrix_a, int leading_dimension_a, const Real *matrix_b, int leading_dimension_b, Real beta, Real *matrix_c, int leading_dimension_c) const override |
| Complex | dot_product (int number_of_elements, const Complex *vector_x, const Complex *vector_y) const override |
| ComplexSingle | dot_product_single (int number_of_elements, const ComplexSingle *vector_x, const ComplexSingle *vector_y) const override |
| void | gemm (char transpose_a, char transpose_b, int m, int n, int k, Complex alpha, const Complex *matrix_a, int leading_dimension_a, const Complex *matrix_b, int leading_dimension_b, Complex beta, Complex *matrix_c, int leading_dimension_c) const override |
| void | gemm_single (char transpose_a, char transpose_b, int m, int n, int k, ComplexSingle alpha, const ComplexSingle *matrix_a, int leading_dimension_a, const ComplexSingle *matrix_b, int leading_dimension_b, ComplexSingle beta, ComplexSingle *matrix_c, int leading_dimension_c) const override |
| double | norm (int number_of_elements, const Complex *vector_x) const override |
| float | norm_single (int number_of_elements, const ComplexSingle *vector_x) const override |
| void | scale (int number_of_elements, Complex scaling_factor, Complex *vector_x) const override |
Public Member Functions inherited from q3::execution::gpu::blas::GPUBLAS | |
| GPUBLAS (std::shared_ptr< device::GPUDeviceBackend > device_backend) | |
| virtual | ~GPUBLAS ()=default |
| device::GPUDeviceBackend & | device_backend () |
| const device::GPUDeviceBackend & | device_backend () const |
Additional Inherited Members | |
Protected Attributes inherited from q3::execution::gpu::blas::GPUBLAS | |
| std::shared_ptr< device::GPUDeviceBackend > | device_backend_ |
|
inlineexplicit |
|
inlineoverride |
|
inlineoverridevirtual |
Scaled vector addition (ZAXPY) via hipblasZaxpy.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Real double-precision DGEMM via hipblasDgemm.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Complex double-precision conjugated dot product via hipblasZdotc.
Use reinterpret_cast for portable access — hipblasDoubleComplex field names (.real/.imag vs .x/.y) vary across ROCm versions.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Complex single-precision conjugated dot product via hipblasCdotc.
Use reinterpret_cast for portable access — hipblasComplex field names (.real/.imag vs .x/.y) vary across ROCm versions.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Complex double-precision ZGEMM via hipblasZgemm.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Complex single-precision CGEMM via hipblasCgemm.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Euclidean norm of a complex double-precision vector via hipblasDznrm2.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Euclidean norm of a complex single-precision vector via hipblasScnrm2.
Implements q3::execution::gpu::blas::GPUBLAS.
|
inlineoverridevirtual |
Scale a complex double-precision vector in-place via hipblasZscal.
Implements q3::execution::gpu::blas::GPUBLAS.