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) |