Octopus
accel.F90 File Reference

Go to the source code of this file.

Modules

module  accel_oct_m
 

Data Types

type  accel_oct_m::accel_context_t
 
type  accel_oct_m::accel_device_t
 
type  accel_oct_m::accel_t
 
type  accel_oct_m::accel_mem_t
 
type  accel_oct_m::accel_kernel_t
 
interface  accel_oct_m::accel_padded_size
 
interface  accel_oct_m::accel_create_buffer
 
interface  accel_oct_m::accel_kernel_run
 
interface  accel_oct_m::accel_set_buffer_to_zero
 
interface  accel_oct_m::accel_write_buffer
 
interface  accel_oct_m::accel_read_buffer
 
interface  accel_oct_m::accel_set_kernel_arg
 
interface  accel_oct_m::accel_get_device_pointer
 

Functions/Subroutines

pure logical function, public accel_oct_m::accel_is_enabled ()
 
pure logical function, public accel_oct_m::accel_allow_cpu_only ()
 
subroutine, public accel_oct_m::accel_init (base_grp, namespace)
 
subroutine select_device (idevice)
 
subroutine device_info ()
 
integer function accel_oct_m::get_platform_id (platform_name)
 
subroutine, public accel_oct_m::accel_end (namespace)
 
integer(int64) function accel_oct_m::accel_padded_size_i8 (nn)
 
integer(int32) function accel_oct_m::accel_padded_size_i4 (nn)
 
subroutine accel_oct_m::accel_create_buffer_4 (this, flags, type, size, set_zero)
 
subroutine accel_oct_m::accel_create_buffer_8 (this, flags, type, size, set_zero)
 
subroutine, public accel_oct_m::accel_release_buffer (this)
 
logical pure function, public accel_oct_m::accel_buffer_is_allocated (this)
 
subroutine, public accel_oct_m::accel_finish ()
 
subroutine accel_oct_m::accel_set_kernel_arg_buffer (kernel, narg, buffer)
 
subroutine accel_oct_m::accel_set_kernel_arg_local (kernel, narg, type, size)
 
subroutine accel_oct_m::accel_kernel_run_8 (kernel, globalsizes, localsizes)
 
subroutine accel_oct_m::accel_kernel_run_4 (kernel, globalsizes, localsizes)
 
integer pure function, public accel_oct_m::accel_max_workgroup_size ()
 
integer function, public accel_oct_m::accel_kernel_workgroup_size (kernel)
 
subroutine accel_oct_m::opencl_build_program (prog, filename, flags)
 
subroutine accel_oct_m::opencl_release_program (prog)
 
subroutine accel_oct_m::opencl_release_kernel (prog)
 
subroutine accel_oct_m::opencl_create_kernel (kernel, prog, name)
 
subroutine accel_oct_m::opencl_print_error (ierr, name)
 
subroutine, public accel_oct_m::clblas_print_error (ierr, name)
 
subroutine, public accel_oct_m::clfft_print_error (ierr, name)
 
logical function accel_oct_m::f90_cl_device_has_extension (device, extension)
 
integer(int64) pure function accel_oct_m::opencl_pad (size, blk)
 
subroutine accel_oct_m::accel_set_buffer_to_zero_i8 (buffer, type, nval, offset, async)
 
subroutine accel_oct_m::accel_set_buffer_to_zero_i4 (buffer, type, nval, offset, async)
 
subroutine accel_oct_m::opencl_check_bandwidth ()
 
logical pure function, public accel_oct_m::accel_use_shared_mem ()
 
subroutine accel_oct_m::accel_kernel_global_init ()
 
subroutine accel_oct_m::accel_kernel_global_end ()
 
subroutine, public accel_oct_m::accel_kernel_build (this, file_name, kernel_name, flags)
 
subroutine accel_oct_m::accel_kernel_end (this)
 
subroutine, public accel_oct_m::accel_kernel_start_call (this, file_name, kernel_name, flags)
 
integer(int64) pure function, public accel_oct_m::accel_global_memory_size ()
 
integer(int64) pure function, public accel_oct_m::accel_local_memory_size ()
 
integer pure function, public accel_oct_m::accel_max_size_per_dim (dim)
 
subroutine, public accel_oct_m::accel_set_stream (stream_number)
 
subroutine, public accel_oct_m::accel_get_stream (stream_number)
 
subroutine, public accel_oct_m::accel_synchronize_all_streams ()
 
type(c_ptr) function, public accel_oct_m::daccel_get_pointer_with_offset (buffer, offset)
 
type(c_ptr) function, public accel_oct_m::zaccel_get_pointer_with_offset (buffer, offset)
 
subroutine, public accel_oct_m::accel_clean_pointer (buffer)
 
subroutine, public accel_oct_m::accel_get_unfolded_size (size, grid_size, thread_block_size)
 Get unfolded size: some kernels (e.g. projectors) unfold the array across warps as an optimization. This is, however, only benefitial on Nvidia GPUs. More...
 
subroutine accel_oct_m::daccel_write_buffer_single (this, data, async)
 
subroutine accel_oct_m::daccel_write_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_write_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_read_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::daccel_set_kernel_arg_data (kernel, narg, data)
 
subroutine accel_oct_m::daccel_get_device_pointer_1 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::daccel_get_device_pointer_2 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::daccel_get_device_pointer_3 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::daccel_get_device_pointer_1l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::daccel_get_device_pointer_2l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::daccel_get_device_pointer_3l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_write_buffer_single (this, data, async)
 
subroutine accel_oct_m::zaccel_write_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_write_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_read_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::zaccel_set_kernel_arg_data (kernel, narg, data)
 
subroutine accel_oct_m::zaccel_get_device_pointer_1 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_get_device_pointer_2 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_get_device_pointer_3 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_get_device_pointer_1l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_get_device_pointer_2l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::zaccel_get_device_pointer_3l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_write_buffer_single (this, data, async)
 
subroutine accel_oct_m::iaccel_write_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_write_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_read_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::iaccel_set_kernel_arg_data (kernel, narg, data)
 
subroutine accel_oct_m::iaccel_get_device_pointer_1 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_get_device_pointer_2 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_get_device_pointer_3 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_get_device_pointer_1l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_get_device_pointer_2l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::iaccel_get_device_pointer_3l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_write_buffer_single (this, data, async)
 
subroutine accel_oct_m::laccel_write_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_write_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_0 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_1 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_2 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_3 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_0_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_1_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_2_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_read_buffer_3_int32 (this, size, data, offset, async)
 
subroutine accel_oct_m::laccel_set_kernel_arg_data (kernel, narg, data)
 
subroutine accel_oct_m::laccel_get_device_pointer_1 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_get_device_pointer_2 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_get_device_pointer_3 (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_get_device_pointer_1l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_get_device_pointer_2l (host_pointer, device_pointer, dimensions)
 
subroutine accel_oct_m::laccel_get_device_pointer_3l (host_pointer, device_pointer, dimensions)
 

Variables

integer, parameter, public accel_oct_m::accel_mem_read_only = CL_MEM_READ_ONLY
 
integer, parameter, public accel_oct_m::accel_mem_read_write = CL_MEM_READ_WRITE
 
integer, parameter, public accel_oct_m::accel_mem_write_only = CL_MEM_WRITE_ONLY
 
type(accel_t), public accel_oct_m::accel
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_vpsi
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_vpsi_complex
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_vpsi_spinors
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_vpsi_spinors_complex
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_daxpy
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_zaxpy
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_copy
 
type(accel_kernel_t), target, save, public accel_oct_m::dpack
 
type(accel_kernel_t), target, save, public accel_oct_m::zpack
 
type(accel_kernel_t), target, save, public accel_oct_m::dunpack
 
type(accel_kernel_t), target, save, public accel_oct_m::zunpack
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_ghost_reorder
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_density_real
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_density_complex
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_density_spinors
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_phase
 
type(accel_kernel_t), target, save, public accel_oct_m::kernel_phase_spiral
 
type(accel_kernel_t), target, save, public accel_oct_m::dkernel_dot_matrix
 
type(accel_kernel_t), target, save, public accel_oct_m::zkernel_dot_matrix
 
type(accel_kernel_t), target, save, public accel_oct_m::zkernel_dot_matrix_spinors
 
type(accel_kernel_t), target, save, public accel_oct_m::dkernel_batch_axpy
 
type(accel_kernel_t), target, save, public accel_oct_m::zkernel_batch_axpy
 
type(accel_kernel_t), target, save, public accel_oct_m::dkernel_ax_function_py
 
type(accel_kernel_t), target, save, public accel_oct_m::zkernel_ax_function_py
 
type(accel_kernel_t), target, save, public accel_oct_m::dkernel_batch_dotp
 
type(accel_kernel_t), target, save, public accel_oct_m::zkernel_batch_dotp
 
type(accel_kernel_t), target, save, public accel_oct_m::dzmul
 
type(accel_kernel_t), target, save, public accel_oct_m::zzmul
 
type(accel_kernel_t), target, save, public accel_oct_m::set_one
 
type(accel_kernel_t), save accel_oct_m::set_zero
 
integer, parameter accel_oct_m::opencl_gpu = -1
 
integer, parameter accel_oct_m::opencl_cpu = -2
 
integer, parameter accel_oct_m::opencl_accelerator = -3
 
integer, parameter accel_oct_m::opencl_default = -4
 
integer, parameter accel_oct_m::cl_plat_invalid = -1
 
integer, parameter accel_oct_m::cl_plat_amd = -2
 
integer, parameter accel_oct_m::cl_plat_nvidia = -3
 
integer, parameter accel_oct_m::cl_plat_ati = -4
 
integer, parameter accel_oct_m::cl_plat_intel = -5
 
integer, public accel_oct_m::cl_status
 
integer accel_oct_m::buffer_alloc_count
 
integer(int64) accel_oct_m::allocated_mem
 
type(accel_kernel_t), pointer accel_oct_m::head
 
type(alloc_cache_t) accel_oct_m::memcache
 

Function/Subroutine Documentation

◆ select_device()

subroutine accel_init::select_device ( integer, intent(inout)  idevice)
private

Definition at line 859 of file accel.F90.

◆ device_info()

subroutine accel_init::device_info
private

Definition at line 888 of file accel.F90.