Stacks of small matrix multiplications
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=*), | private, | parameter | :: | moduleN | = | 'dbcsr_mm_hostdrv' | |
character(len=*), | private, | parameter | :: | int_print | = | "(10(1X,I7))" | |
logical, | private, | parameter | :: | debug_mod | = | .FALSE. | |
logical, | private, | parameter | :: | careful_mod | = | .FALSE. |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(dbcsr_data_obj), | public | :: | data_area | = | dbcsr_data_obj() |
Initialize the library
Finalize the library
Initialize the library
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mm_hostdrv_type), | intent(inout) | :: | this | |||
type(dbcsr_work_type), | POINTER | :: | product_wm |
Calls the various drivers that process the stack.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mm_hostdrv_type), | intent(inout) | :: | this | |||
type(dbcsr_type), | intent(in) | :: | left |
Left-matrix data Right-matrix data |
||
type(dbcsr_type), | intent(in) | :: | right |
Left-matrix data Right-matrix data |
||
integer, | intent(inout), | DIMENSION(1:dbcsr_ps_width, stack_size) | :: | params |
Stack of GEMM parameters |
|
integer, | intent(in) | :: | stack_size | |||
type(stack_descriptor_type), | intent(in) | :: | stack_descr | |||
logical, | intent(out) | :: | success | |||
logical, | intent(out) | :: | used_smm |
Helper-routine used by dbcsr_mm_hostdrv_process to print debug info.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(:, :) | :: | params |
Processes MM stack and issues BLAS xGEMM calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues internal MM calls.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues SMM library calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(stack_descriptor_type), | intent(in) | :: | stack_descr | |||
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
|
logical, | intent(out) | :: | used_smm |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | M | |||
integer, | intent(in) | :: | N | |||
integer, | intent(in) | :: | K | |||
real(kind=real_8), | intent(in) | :: | A(M,K) | |||
real(kind=real_8), | intent(in) | :: | B(K,N) | |||
real(kind=real_8), | intent(inout) | :: | C(M,N) |
Processes MM stack and issues BLAS xGEMM calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues internal MM calls.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues SMM library calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(stack_descriptor_type), | intent(in) | :: | stack_descr | |||
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
real(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
|
logical, | intent(out) | :: | used_smm |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | M | |||
integer, | intent(in) | :: | N | |||
integer, | intent(in) | :: | K | |||
real(kind=real_4), | intent(in) | :: | A(M,K) | |||
real(kind=real_4), | intent(in) | :: | B(K,N) | |||
real(kind=real_4), | intent(inout) | :: | C(M,N) |
Processes MM stack and issues BLAS xGEMM calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues internal MM calls.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues SMM library calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(stack_descriptor_type), | intent(in) | :: | stack_descr | |||
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_8), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
|
logical, | intent(out) | :: | used_smm |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | M | |||
integer, | intent(in) | :: | N | |||
integer, | intent(in) | :: | K | |||
complex(kind=real_8), | intent(in) | :: | A(M,K) | |||
complex(kind=real_8), | intent(in) | :: | B(K,N) | |||
complex(kind=real_8), | intent(inout) | :: | C(M,N) |
Processes MM stack and issues BLAS xGEMM calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues internal MM calls.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
Processes MM stack and issues SMM library calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(stack_descriptor_type), | intent(in) | :: | stack_descr | |||
integer, | intent(in), | DIMENSION(dbcsr_ps_width, 1:stack_size) | :: | params |
Stack of MM parameters |
|
integer, | intent(in) | :: | stack_size |
Number of parameters |
||
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | a_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(in), | DIMENSION(*) | :: | b_data |
Left-matrix data Right-matrix data |
|
complex(kind=real_4), | intent(inout), | DIMENSION(*) | :: | c_data |
Product data |
|
logical, | intent(out) | :: | used_smm |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | M | |||
integer, | intent(in) | :: | N | |||
integer, | intent(in) | :: | K | |||
complex(kind=real_4), | intent(in) | :: | A(M,K) | |||
complex(kind=real_4), | intent(in) | :: | B(K,N) | |||
complex(kind=real_4), | intent(inout) | :: | C(M,N) |