libflame revision_anchor
Functions
FLA_Gemv_external_gpu.c File Reference

(r)

Functions

FLA_Error FLA_Gemv_external_gpu (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, void *A_gpu, FLA_Obj x, void *x_gpu, FLA_Obj beta, FLA_Obj y, void *y_gpu)
 

Function Documentation

◆ FLA_Gemv_external_gpu()

FLA_Error FLA_Gemv_external_gpu ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
void A_gpu,
FLA_Obj  x,
void x_gpu,
FLA_Obj  beta,
FLA_Obj  y,
void y_gpu 
)
18{
19 FLA_Datatype datatype;
20 int m_A, n_A;
21 int ldim_A;
22 int inc_x;
23 int inc_y;
24 char blas_transa;
25
28
29 if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
30
31 datatype = FLA_Obj_datatype( A );
32
33 m_A = FLA_Obj_length( A );
34 n_A = FLA_Obj_width( A );
36
37 inc_x = 1;
38 inc_y = 1;
39
41
42
43 switch( datatype ){
44
45 case FLA_FLOAT:
46 {
47 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
48 float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
49
51 m_A,
52 n_A,
53 *buff_alpha,
54 ( float * ) A_gpu, ldim_A,
55 ( float * ) x_gpu, inc_x,
56 *buff_beta,
57 ( float * ) y_gpu, inc_y );
58
59 break;
60 }
61
62 case FLA_DOUBLE:
63 {
64 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
65 double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
66
68 m_A,
69 n_A,
70 *buff_alpha,
71 ( double * ) A_gpu, ldim_A,
72 ( double * ) x_gpu, inc_x,
73 *buff_beta,
74 ( double * ) y_gpu, inc_y );
75
76 break;
77 }
78
79 case FLA_COMPLEX:
80 {
83
85 m_A,
86 n_A,
87 *buff_alpha,
88 ( cuComplex * ) A_gpu, ldim_A,
89 ( cuComplex * ) x_gpu, inc_x,
90 *buff_beta,
91 ( cuComplex * ) y_gpu, inc_y );
92
93 break;
94 }
95
97 {
100
102 m_A,
103 n_A,
104 *buff_alpha,
107 *buff_beta,
108 ( cuDoubleComplex * ) y_gpu, inc_y );
109
110 break;
111 }
112
113 }
114
115 return FLA_SUCCESS;
116}
FLA_Error FLA_Gemv_check(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition FLA_Gemv_check.c:13
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition FLA_Query.c:400
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
void FLA_Param_map_flame_to_netlib_trans(FLA_Trans trans, void *blas_trans)
Definition FLA_Param.c:15
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
int i
Definition bl1_axmyv2.c:145

References FLA_Check_error_level(), FLA_Gemv_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_width(), FLA_Param_map_flame_to_netlib_trans(), and i.

Referenced by FLASH_Queue_exec_task_gpu().