FK20 CUDA
fr_fft.cu File Reference
#include "fr.cuh"
#include "fk20.cuh"
Include dependency graph for fr_fft.cu:

Go to the source code of this file.

Functions

__device__ void fr_fft (fr_t *output, const fr_t *input)
 FFT over Fr. More...
 
__device__ void fr_ift (fr_t *output, const fr_t *input)
 Inverse FFT for fr_t[512]. More...
 
__global__ void fr_fft_wrapper (fr_t *output, const fr_t *input)
 wrapper for fr_fft: FFT for fr_t[512] More...
 
__global__ void fr_ift_wrapper (fr_t *output, const fr_t *input)
 wrapper for fr_ift: inverse FFT for fr_t[512] More...
 

Variables

__shared__ fr_t fr_smem []
 Workspace in shared memory. Must be 512*sizeof(fr_t) bytes. More...
 

Function Documentation

◆ fr_fft()

__device__ void fr_fft ( fr_t output,
const fr_t input 
)

FFT over Fr.

Performs one FFT-512 for each thread block. This function must be called with 256 threads per block, i.e. dim3(256,1,1). Input and output arrays can overlap without side effects. There is no interleaving of data for different FFTs (the stride is 1).

Parameters
[out]output
[in]input
Returns
void

Definition at line 26 of file fr_fft.cu.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fr_fft_wrapper()

__global__ void fr_fft_wrapper ( fr_t output,
const fr_t input 
)

wrapper for fr_fft: FFT for fr_t[512]

Executes an FFT over many arrays fr_t[512]. One array per block. input and output can overlap without side effects. There is no interleaving of data for different FFTs.

Parameters
[out]output
[in]input
Returns
void

Definition at line 316 of file fr_fft.cu.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fr_ift()

__device__ void fr_ift ( fr_t output,
const fr_t input 
)

Inverse FFT for fr_t[512].

Performs one inverse FFT-512 in each thread block. This function must be called with 256 threads per block, i.e. dim3(256,1,1). Input and output arrays can overlap without side effects. There is no interleaving of data for different FFTs (the stride is 1).

Parameters
[out]output
[in]input
Returns
void

Definition at line 170 of file fr_fft.cu.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fr_ift_wrapper()

__global__ void fr_ift_wrapper ( fr_t output,
const fr_t input 
)

wrapper for fr_ift: inverse FFT for fr_t[512]

Executes an inverse FFT over many arrays fr_t[512]. One array per block. input and output can overlap without side effects. There is no interleaving of data for different iFFTs.

Parameters
[out]output
[in]input
Returns
void

Definition at line 345 of file fr_fft.cu.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ fr_smem

__shared__ fr_t fr_smem[]
extern

Workspace in shared memory. Must be 512*sizeof(fr_t) bytes.