dbcsr_config Module

Configuration options for DBCSR



Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=*), private, parameter:: moduleN ='dbcsr_config'
real(kind=dp), public, parameter:: default_resize_factor =1.2_dp
integer, public, parameter:: mm_driver_auto =0
integer, public, parameter:: mm_driver_matmul =1
integer, public, parameter:: mm_driver_blas =2
integer, public, parameter:: mm_driver_smm =3
integer, public, parameter:: mm_driver_xsmm =4
character(len=*), private, parameter:: mm_name_auto ="AUTO"
character(len=*), private, parameter:: mm_name_blas ="BLAS"
character(len=*), private, parameter:: mm_name_matmul ="MATMUL"
character(len=*), private, parameter:: mm_name_smm ="SMM"
character(len=*), private, parameter:: mm_name_xsmm ="XSMM"
logical, private, parameter:: has_smm =.FALSE.
logical, private, parameter:: has_smm_vec =.FALSE.
logical, private, parameter:: has_xsmm =.FALSE.
logical, public, parameter:: has_acc =.FALSE.
logical, public, parameter:: has_MPI =.FALSE.
integer, private, parameter:: mm_stack_default_size =1000
integer, private, parameter:: mm_default_driver =mm_driver_blas
type(dbcsr_config_type), public, SAVE:: dbcsr_cfg =dbcsr_config_type()
integer, public, parameter:: max_kernel_dim =80
integer, private, parameter:: default_accdrv_active_device_id =-1
integer, private :: accdrv_active_device_id =default_accdrv_active_device_id

Derived Types

type, private :: dbcsr_config_type

Components

TypeVisibilityAttributesNameInitial
integer, public :: mm_driver =mm_default_driver
integer, public :: mm_stack_size =mm_stack_default_size
integer, public :: avg_elements_images =-1
integer, public :: num_mult_images =1
integer, public :: nm_stacks =3
integer, public :: nn_stacks =3
integer, public :: nk_stacks =3
logical, public :: use_mpi_rma =.FALSE.
integer, public :: num_layers_3D =1
logical, public :: use_comm_thread =.TRUE.
integer, public :: comm_thread_load =100
logical, public :: mm_densification =.TRUE.
integer, public :: multrec_limit =512
integer, public :: accdrv_thread_buffers =8
logical, public :: accdrv_avoid_after_busy =.FALSE.
integer, public :: accdrv_min_flop_process =0
logical, public :: accdrv_stack_sort =.TRUE.
integer, public :: accdrv_min_flop_sort =4000
logical, public :: accdrv_do_inhomogenous =.TRUE.
integer, public :: accdrv_binning_nbins =4096
integer, public :: accdrv_binning_binsize =16
logical, public :: use_mempools_cpu =.FALSE.
real(kind=real_8), public :: tas_split_factor =1.0_real_8

Functions

public function get_accdrv_active_device_id()

Arguments

None

Return Value integer


Subroutines

public subroutine dbcsr_set_config(mm_driver, use_mpi_allocator, mm_stack_size, avg_elements_images, num_mult_images, nstacks, use_mpi_rma, num_layers_3D, use_comm_thread, comm_thread_load, mm_densification, multrec_limit, accdrv_thread_buffers, accdrv_avoid_after_busy, accdrv_min_flop_process, accdrv_stack_sort, accdrv_min_flop_sort, accdrv_do_inhomogenous, accdrv_binning_nbins, accdrv_binning_binsize, use_mempools_cpu, tas_split_factor)

Arguments

TypeIntentOptionalAttributesName
character(len=*), intent(in), optional :: mm_driver
logical, intent(in), optional :: use_mpi_allocator
integer, intent(in), optional :: mm_stack_size
integer, intent(in), optional :: avg_elements_images

Maximum number of elements for each image

integer, intent(in), optional :: num_mult_images

Multiplicative factor for number of virtual images

integer, intent(in), optional :: nstacks

Number of stacks to use

logical, intent(in), optional :: use_mpi_rma

use_mpi_rma RMA algorithm

integer, intent(in), optional :: num_layers_3D

num_layers_3D 3D layers

logical, intent(in), optional :: use_comm_thread
integer, intent(in), optional :: comm_thread_load
logical, intent(in), optional :: mm_densification
integer, intent(in), optional :: multrec_limit
integer, intent(in), optional :: accdrv_thread_buffers
logical, intent(in), optional :: accdrv_avoid_after_busy
integer, intent(in), optional :: accdrv_min_flop_process
logical, intent(in), optional :: accdrv_stack_sort
integer, intent(in), optional :: accdrv_min_flop_sort
logical, intent(in), optional :: accdrv_do_inhomogenous
integer, intent(in), optional :: accdrv_binning_nbins
integer, intent(in), optional :: accdrv_binning_binsize
logical, intent(in), optional :: use_mempools_cpu
real(kind=real_8), intent(in), optional :: tas_split_factor

public subroutine dbcsr_get_default_config(use_mpi_allocator, mm_stack_size, avg_elements_images, num_mult_images, nstacks, use_mpi_rma, num_layers_3D, use_comm_thread, comm_thread_load, mm_densification, multrec_limit, accdrv_thread_buffers, accdrv_avoid_after_busy, accdrv_min_flop_process, accdrv_stack_sort, accdrv_min_flop_sort, accdrv_do_inhomogenous, accdrv_binning_nbins, accdrv_binning_binsize, use_mempools_cpu, tas_split_factor)

Arguments

TypeIntentOptionalAttributesName
logical, intent(out), optional :: use_mpi_allocator
integer, intent(out), optional :: mm_stack_size
integer, intent(out), optional :: avg_elements_images
integer, intent(out), optional :: num_mult_images
integer, intent(out), optional :: nstacks
logical, intent(out), optional :: use_mpi_rma
integer, intent(out), optional :: num_layers_3D
logical, intent(out), optional :: use_comm_thread
integer, intent(out), optional :: comm_thread_load
logical, intent(out), optional :: mm_densification
integer, intent(out), optional :: multrec_limit
integer, intent(out), optional :: accdrv_thread_buffers
logical, intent(out), optional :: accdrv_avoid_after_busy
integer, intent(out), optional :: accdrv_min_flop_process
logical, intent(out), optional :: accdrv_stack_sort
integer, intent(out), optional :: accdrv_min_flop_sort
logical, intent(out), optional :: accdrv_do_inhomogenous
integer, intent(out), optional :: accdrv_binning_nbins
integer, intent(out), optional :: accdrv_binning_binsize
logical, intent(out), optional :: use_mempools_cpu
real(kind=real_8), intent(out), optional :: tas_split_factor

public subroutine dbcsr_print_config(unit_nr)

Prints configuration for DBCSR

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: unit_nr

public subroutine set_accdrv_active_device_id(in_accdrv_active_device_id)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: in_accdrv_active_device_id

public subroutine reset_accdrv_active_device_id()

Arguments

None