This module defines kernel_host type and its type bound procedures.
The host kernel is an implementation of the abstract_kernel type
that runs on the host CPU.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int8), | private, | parameter | :: | ACCESS_MODE_WRITE | = | -1_int8 |
Aligned writing |
| integer(kind=int8), | private, | parameter | :: | ACCESS_MODE_READ | = | +1_int8 |
Aligned reading |
| integer(kind=int8), | private, | parameter | :: | DEFAULT_ACCESS_MODE | = | ACCESS_MODE_WRITE |
Assuming that aligned writing is more important then aligned reading |
| type(host_kernel_t), | private, | parameter | :: | HOST_KERNEL_BASE | = | host_kernel_t(1_int8) |
Base host kernel type |
| type(host_kernel_t), | private, | parameter | :: | HOST_KERNEL_BLOCK_16 | = | host_kernel_t(2_int8) |
Host kernel with block size of 16 |
| type(host_kernel_t), | private, | parameter | :: | HOST_KERNEL_BLOCK_32 | = | host_kernel_t(3_int8) |
Host kernel with block size of 32 |
| type(host_kernel_t), | private, | parameter | :: | HOST_KERNEL_BLOCK_64 | = | host_kernel_t(4_int8) |
Host kernel with block size of 64 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(host_kernel_t), | intent(in) | :: | left | |||
| type(host_kernel_t), | intent(in) | :: | right |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Host kernel implementation
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | is_created | = | .false. |
Kernel is created flag. |
|
| logical, | public | :: | is_dummy | = | .false. |
If kernel should do anything or not. |
|
| type(kernel_type_t), | public | :: | kernel_type |
Type of the kernel |
|||
| character(len=:), | public, | allocatable | :: | kernel_string | |||
| integer(kind=int32), | public, | allocatable | :: | neighbor_data(:,:) |
Neighbor data for pipelined unpacking |
||
| integer(kind=int32), | public, | allocatable | :: | dims(:) |
Local dimensions to process |
||
| integer(kind=int8), | public | :: | access_mode |
Access mode for kernel execution |
|||
| procedure(execute_host_interface), | public, | pointer | :: | execute_impl | => | null() |
Pointer to the execute implementation |
| procedure, public, pass(self) :: create | ../../ Creates kernel |
| procedure, public, pass(self) :: execute | ../../ Executes kernel |
| procedure, public, pass(self) :: destroy | ../../ Destroys kernel |
| procedure, public :: create_private => create_host | ../../ Creates kernel |
| procedure, public :: execute_private => execute_host | ../../ Executes kernel |
| procedure, public :: destroy_private => destroy_host | ../../ Destroys kernel |
| procedure, public :: execute_benchmark | |
| procedure, public :: select_access_mode_f32 | |
| procedure, public :: select_access_mode_f64 | |
| procedure, public :: select_access_mode_f128 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int8), | public | :: | val |
Selects the kernel implementation based on the given id and base storage size
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(host_kernel_t), | intent(in) | :: | kernel |
Kernel id |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Size of single element in bytes |
Selected kernel implementation
Returns string representation of the given host kernel type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(host_kernel_t), | intent(in) | :: | kernel |
Host kernel type |
String representation of the kernel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(host_kernel_t), | intent(in) | :: | left | |||
| type(host_kernel_t), | intent(in) | :: | right |
Forward permutation of a 2D and 3D arrays, contiguous writing, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays, contiguous reading, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous writing, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous reading, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous writing, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous reading, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor, contiguous writing, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor, contiguous reading, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank, real(real32) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Creates host kernel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
Effort level for generating transpose kernels |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Number of bytes needed to store single element |
||
| logical, | intent(in), | optional | :: | force_effort |
Should effort be forced or not |
Executes benchmark for the given kernel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in) | :: | in(:) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(:) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | n_warmup_iters |
Number of warmup iterations to perform before testing kernel |
||
| integer(kind=int32), | intent(in) | :: | n_iters |
Number of iterations to perform when testing kernel |
||
| real(kind=real64), | intent(out) | :: | execution_time |
Execution time of the selected access |
Executes host kernel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| type(dtfft_stream_t), | intent(in) | :: | stream |
Stream to execute on, unused here |
||
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Destroys host kernel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
Executes kernel based on its type and access mode, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Selects the best access mode for host kernels, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in) | :: | in(:) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(:) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | n_warmup_iters |
Number of warmup iterations to perform before testing kernel |
||
| integer(kind=int32), | intent(in) | :: | n_iters |
Number of iterations to perform when testing kernel |
||
| real(kind=real64), | intent(out) | :: | execution_time |
Execution time of the selected access |
Forward permutation of a 2D and 3D arrays, contiguous writing, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays, contiguous reading, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous writing, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous reading, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous writing, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous reading, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor, contiguous writing, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors, contiguous writing, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor, contiguous reading, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors, contiguous reading, complex(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank, complex(real64) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks, complex(real64) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| complex(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes kernel based on its type and access mode, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Selects the best access mode for host kernels, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in) | :: | in(:) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(:) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | n_warmup_iters |
Number of warmup iterations to perform before testing kernel |
||
| integer(kind=int32), | intent(in) | :: | n_iters |
Number of iterations to perform when testing kernel |
||
| real(kind=real64), | intent(out) | :: | execution_time |
Execution time of the selected access |
Forward permutation of a 2D and 3D arrays, contiguous writing, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays, contiguous reading, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous writing, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays, contiguous reading, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous writing, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array, contiguous reading, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor, contiguous writing, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors, contiguous writing, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor, contiguous reading, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors, contiguous reading, real(real64) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank, real(real64) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(*) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks, real(real64) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Forward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation of a 2D and 3D arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation start of a 3D array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for a single neighbor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks part of contiguous buffer recieved from a single rank.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real64), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes kernel based on its type and access mode, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Selects the best access mode for host kernels, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(inout) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in) | :: | in(:) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(:) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | n_warmup_iters |
Number of warmup iterations to perform before testing kernel |
||
| integer(kind=int32), | intent(in) | :: | n_iters |
Number of iterations to perform when testing kernel |
||
| real(kind=real64), | intent(out) | :: | execution_time |
Execution time of the selected access |
Backward permutation end of a 3D array for all neighbors, contiguous writing, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors, contiguous reading, real(real32) version
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(*) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks, real(real32) version.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Executes the given kernel on host
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(kernel_host), | intent(in) | :: | self |
Host kernel class |
||
| real(kind=real32), | intent(in), | target | :: | in(:) |
Source host-allocated buffer |
|
| real(kind=real32), | intent(inout), | target | :: | out(:) |
Target host-allocated buffer |
|
| integer(kind=int32), | intent(in), | optional | :: | neighbor |
Source rank for pipelined unpacking |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Backward permutation end of a 3D array for all neighbors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |
Unpacks pack of contiguous buffer recieved from all ranks.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real32), | intent(in) | :: | in(*) |
Source host-allocated buffer |
||
| real(kind=real32), | intent(inout) | :: | out(*) |
Target host-allocated buffer |
||
| integer(kind=int32), | intent(in) | :: | dims(:) |
Dimensions of the array |
||
| integer(kind=int32), | intent(in) | :: | locals(:,:) |
Neighbor data |