Highly Efficient FFT for Exascale: HeFFTe v2.4
Toggle main menu visibility
Loading...
Searching...
No Matches
heffte_c_defines.h
1
/*
2
-- heFFTe --
3
Univ. of Tennessee, Knoxville
4
@date
5
*/
6
7
#ifndef HEFFTE_C_DEFINES_H
8
#define HEFFTE_C_DEFINES_H
9
46
47
#include "heffte_config.h"
48
49
54
#define Heffte_BACKEND_STOCK 0
55
56
#ifdef Heffte_ENABLE_FFTW
61
#define Heffte_BACKEND_FFTW 1
62
#endif
63
#ifdef Heffte_ENABLE_MKL
68
#define Heffte_BACKEND_MKL 2
69
#endif
70
#ifdef Heffte_ENABLE_CUDA
75
#define Heffte_BACKEND_CUFFT 10
76
#endif
77
#ifdef Heffte_ENABLE_ROCM
82
#define Heffte_BACKEND_ROCFFT 11
83
#endif
84
89
#define Heffte_SUCCESS 0
90
95
#define Heffte_RESHAPE_ALGORITHM_ALLTOALLV 0
100
#define Heffte_RESHAPE_ALGORITHM_P2P_PLINED 1
105
#define Heffte_RESHAPE_ALGORITHM_P2P 2
106
113
typedef
struct
{
115
int
use_reorder
;
117
int
algorithm
;
119
int
use_pencils
;
121
int
use_gpu_aware
;
122
}
heffte_plan_options
;
123
133
typedef
struct
{
135
int
backend_type
;
137
int
using_r2c
;
139
void
*
fft
;
140
}
heffte_fft_plan
;
141
146
typedef
heffte_fft_plan
*
heffte_plan
;
147
152
#define Heffte_SCALE_NONE 0
157
#define Heffte_SCALE_FULL 1
162
#define Heffte_SCALE_SYMMETRIC 2
163
164
#endif
// HEFFTE_C_DEFINES_H
heffte_plan
heffte_fft_plan * heffte_plan
C-style wrapper around an instance of heffte::fft3d or heffte::fft3d_r2c using some backend.
Definition
heffte_c_defines.h:146
heffte_fft_plan
Generic wrapper around some fft3d/fft3d_r2c instance, use heffte_plan instead of this.
Definition
heffte_c_defines.h:133
heffte_fft_plan::backend_type
int backend_type
Remembers the type of the backend.
Definition
heffte_c_defines.h:135
heffte_fft_plan::using_r2c
int using_r2c
If 0 then using heffte::fft3d, otherwise using heffte::fft3d_r2c.
Definition
heffte_c_defines.h:137
heffte_fft_plan::fft
void * fft
Wrapper around an object of type heffte::fft3d or heffte::fft3d_r2c.
Definition
heffte_c_defines.h:139
heffte_plan_options
Equivalent to heffte::plan_options but defined for the C API.
Definition
heffte_c_defines.h:113
heffte_plan_options::use_gpu_aware
int use_gpu_aware
Corresponds to heffte::plan_options::use_gpu_aware.
Definition
heffte_c_defines.h:121
heffte_plan_options::use_reorder
int use_reorder
Corresponds to heffte::plan_options::use_reorder.
Definition
heffte_c_defines.h:115
heffte_plan_options::use_pencils
int use_pencils
Corresponds to heffte::plan_options::use_pencils.
Definition
heffte_c_defines.h:119
heffte_plan_options::algorithm
int algorithm
Corresponds to heffte::plan_options::use_alltoall, must be one of the Heffte_RESHAPE_ALGORITHM option...
Definition
heffte_c_defines.h:117
include
heffte_c_defines.h
Generated by
1.17.0