Documentation for module dbcsr_mm_sched

Fourth layer of the dbcsr matrix-matrix multiplication. It hides the differences between performing calculations on the accelerator device or on the CPU.

source: dbcsr_mm_sched.F
Loading...

public Types:

dbcsr_mm_sched_type
...

public Subroutines/Functions:

Signal that previous stacks should be processed first
Signal begin of a burst of calls to dbcsr_mm_sched_process.
Finalizes a multiplication cycle for a set of C-blocks.
Signal end of a burst of calls to dbcsr_mm_sched_process.
Finalizes a multiplication cycle for a set of C-blocks.
Initializes a multiplication cycle for new set of C-blocks.
Finalize the library and prints DBCSR statistics
Initialize the library
Signal approaching end of multiplication
Processes a given stack.
Change the datasize of the original workspace buffer

public Types:

TYPE :: dbcsr_mm_sched_type

...


POINTER :: product_wm => NULL() ...
:: accdrv ...
:: hostdrv ...
LOGICAL
:: avoid_accdrv = .FALSE. ...
LOGICAL
:: product_wm_cleared = .FALSE. ...
INTEGER
:: product_wm_orig_datasize = -1 ...

SUBROUTINEdbcsr_mm_sched_barrier()

Signal that previous stacks should be processed first

SUBROUTINEdbcsr_mm_sched_begin_burst(this)

Signal begin of a burst of calls to dbcsr_mm_sched_process.

Arguments:
INTENT(inout)
:: this ...

SUBROUTINEdbcsr_mm_sched_dev2host_init(this)

Finalizes a multiplication cycle for a set of C-blocks.

Arguments:
INTENT(inout)
:: this ...

SUBROUTINEdbcsr_mm_sched_end_burst()

Signal end of a burst of calls to dbcsr_mm_sched_process.

SUBROUTINEdbcsr_mm_sched_finalize(this)

Finalizes a multiplication cycle for a set of C-blocks.

Arguments:
INTENT(inout)
:: this ...

SUBROUTINEdbcsr_mm_sched_init(this, product_wm, nlayers)

Initializes a multiplication cycle for new set of C-blocks.

Arguments:
INTENT(inout)
:: this ...
POINTER
:: product_wm ...
INTEGER,
OPTIONAL
:: nlayers ...

SUBROUTINEdbcsr_mm_sched_lib_finalize(group, output_unit)

Finalize the library and prints DBCSR statistics

Arguments:
INTEGER,
INTENT(in)
:: group ...
INTEGER,
INTENT(in)
:: output_unit ...

SUBROUTINEdbcsr_mm_sched_lib_init()

Initialize the library

SUBROUTINEdbcsr_mm_sched_phaseout(this)

Signal approaching end of multiplication

Arguments:
INTENT(inout)
:: this ...

SUBROUTINEdbcsr_mm_sched_process(this, left, right, stack_data, stack_fillcount, stack_descr)

Processes a given stack.

Arguments:
INTENT(inout)
:: this ...
TYPE(dbcsr_type),
INTENT(in)
:: left ...
TYPE(dbcsr_type),
INTENT(in)
:: right ...
INTEGER,
POINTER
:: stack_data(:,:) ...
INTEGER,
POINTER
:: stack_fillcount ...
INTENT(in)
:: stack_descr ...

SUBROUTINEdbcsr_mm_sched_set_orig_datasize(this, newsize)

Change the datasize of the original workspace buffer

Arguments:
INTENT(inout)
:: this ...
INTEGER,
INTENT(in)
:: newsize ...