This module is a Fortran part of C/C++ interface
C pointer to Fortran plan
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(dtfft_plan_t), | public, | allocatable | :: | p |
Actual Fortran plan |
Structure to hold pencil decomposition info
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=c_int8_t), | public | :: | dim |
Aligned dimension id |
|||
integer(kind=c_int8_t), | public | :: | ndims |
Number of dimensions |
|||
integer(kind=c_int32_t), | public | :: | starts(3) |
Local starts, starting from 0 for both C and Fortran |
|||
integer(kind=c_int32_t), | public | :: | counts(3) |
Local counts of data, in elements |
|||
integer(kind=c_size_t), | public | :: | size |
Total number of elements in a pencil |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int32_t), | intent(in) | :: | c_comm |
Creates R2R dtFFT Plan, allocates all structures and prepares FFT, C/C++/Python interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int8_t), | intent(in) | :: | ndims |
Rank of transform. Can be 2 or 3. |
||
type(c_ptr), | intent(in), | value | :: | dims |
Global sizes of transform |
|
type(c_ptr), | intent(in), | value | :: | kinds |
FFT R2R kinds |
|
integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Creates C2C dtFFT Plan, allocates all structures and prepares FFT, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int8_t), | intent(in) | :: | ndims |
Rank of transform. Can be 2 or 3. |
||
type(c_ptr), | intent(in), | value | :: | dims |
Global sizes of transform |
|
integer(kind=c_int32_t), | intent(in), | value | :: | comm |
Communicator |
|
type(dtfft_precision_t), | intent(in) | :: | precision |
Precision of transform |
||
type(dtfft_effort_t), | intent(in) | :: | effort |
|
||
type(dtfft_executor_t), | intent(in) | :: | executor |
Type of External FFT Executor |
||
type(c_ptr), | intent(out) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Checks if dtFFT Plan is using Z-slab optimization
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
logical(kind=c_bool), | intent(out) | :: | is_z_slab_enabled |
Is plan internally using Z-slab optimization |
The enumerated type dtfft_error_t defines API call result codes.
Executes dtFFT Plan, C/C++ interface. aux
can be NULL.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
type(c_ptr), | intent(in), | value | :: | in |
Incomming pointer, not NULL |
|
type(c_ptr), | intent(in), | value | :: | out |
Outgoing buffer, not NULL |
|
type(dtfft_execute_t), | intent(in) | :: | execute_type |
Type of execution |
||
type(c_ptr), | intent(in), | value | :: | aux |
Aux buffer, can be NULL |
The enumerated type dtfft_error_t defines API call result codes.
Executes single transposition, C/C++ interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | intent(in), | value | :: | plan_ptr |
C pointer to Fortran plan |
|
type(c_ptr), | intent(in), | value | :: | in |
Incomming pointer, not NULL |
|
type(c_ptr), | intent(in), | value | :: | out |
Outgoing buffer, not NULL |
|
type(dtfft_transpose_t), | intent(in) | :: | transpose_type |
Type of transposition. |
The enumerated type dtfft_error_t defines API call result codes.
Destroys dtFFT Plan, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr) | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Returns local sizes, counts in real and Fourier spaces and number of elements to be allocated for in
and out
buffers,
C/C++ interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_int32_t), | intent(out), | optional | :: | in_starts(3) |
Starts of local portion of data in ‘real’ space |
|
integer(kind=c_int32_t), | intent(out), | optional | :: | in_counts(3) |
Counts of local portion of data in ‘real’ space |
|
integer(kind=c_int32_t), | intent(out), | optional | :: | out_starts(3) |
Starts of local portion of data in ‘fourier’ space |
|
integer(kind=c_int32_t), | intent(out), | optional | :: | out_counts(3) |
Counts of local portion of data in ‘fourier’ space |
|
integer(kind=c_size_t), | intent(out), | optional | :: | alloc_size |
Minimum data needs to be allocated |
The enumerated type dtfft_error_t defines API call result codes.
Returns minimum number of bytes to be allocated for in
and out
buffers, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_size_t), | intent(out) | :: | alloc_size |
Minimum data needs to be allocated |
The enumerated type dtfft_error_t defines API call result codes.
Returns pencil decomposition info, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_int32_t), | intent(in) | :: | dim |
Dimension requested |
||
type(pencil_c) | :: | pencil |
Pencil pointer |
The enumerated type dtfft_error_t defines API call result codes.
Returns size of element in bytes, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_size_t), | intent(out) | :: | element_size |
Size of element in bytes |
The enumerated type dtfft_error_t defines API call result codes.
Returns minimum number of bytes required to execute plan, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_size_t), | intent(out) | :: | alloc_bytes |
Number of bytes required |
The enumerated type dtfft_error_t defines API call result codes.
Sets dtFFT configuration, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_config_t), | intent(in) | :: | config |
Configuration to set |
The enumerated type dtfft_error_t defines API call result codes.
Reports dtFFT Plan, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
The enumerated type dtfft_error_t defines API call result codes.
Allocates memory for dtFFT Plan, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
integer(kind=c_size_t), | value | :: | alloc_bytes |
Number of bytes to allocate |
||
type(c_ptr) | :: | ptr |
Allocated pointer |
The enumerated type dtfft_error_t defines API call result codes.
Frees memory for dtFFT Plan, C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
type(c_ptr), | value | :: | ptr |
Pointer to deallocate |
The enumerated type dtfft_error_t defines API call result codes.
Returns Stream associated with plan
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
type(dtfft_stream_t), | intent(out) | :: | stream |
CUDA stream |
The enumerated type dtfft_error_t defines API call result codes.
Returns selected dtfft_backend_t during autotuning
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
type(dtfft_backend_t), | intent(out) | :: | backend |
The enumerated type dtfft_backend_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns selected dtfft_platform_t during autotuning
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(c_ptr), | value | :: | plan_ptr |
C pointer to Fortran plan |
||
type(dtfft_platform_t), | intent(out) | :: | platform |
The enumerated type dtfft_platform_t |
The enumerated type dtfft_error_t defines API call result codes.
Returns an explaination of error_code
that could have been previously returned by one of dtFFT API calls,
C/C++ interface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int32_t), | intent(in) | :: | error_code |
The enumerated type dtfft_error_t defines API call result codes. |
||
character(len=c_char), | intent(out) | :: | error_string(*) |
Explanation of error |
||
integer(kind=c_size_t), | intent(out) | :: | error_string_size |
Size of |
Returns string representation of dtfft_backend_t
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dtfft_backend_t), | intent(in) | :: | backend |
The enumerated type dtfft_backend_t |
||
character(len=c_char), | intent(out) | :: | backend_string(*) |
Resulting string |
||
integer(kind=c_size_t), | intent(out) | :: | backend_string_size |
Size of string |