Skip to content

File Setup_GPU.cu

FileList > src > Setup_GPU.cu

Go to the source code of this file

  • #include "Setup_GPU.h"

Public Functions

Type Name
void AllocateBndTEX (bndparam & side)
Allocate boundary texture for GPU.
void AllocateTEX (int nx, int ny, TexSetP & Tex, float * input)
Allocate and bind a CUDA texture object.
void CUDA_CHECK (cudaError CUDerr)
Check CUDA error status and print message if error occurs.
void CopyGPUtoCPU (int nblk, int blksize, T * z_cpu, T * z_gpu)
Copy data from GPU to CPU memory.
template void CopyGPUtoCPU< bool > (int nblk, int blksize, bool * z_cpu, bool * z_gpu)
template void CopyGPUtoCPU< double > (int nblk, int blksize, double * z_cpu, double * z_gpu)
template void CopyGPUtoCPU< float > (int nblk, int blksize, float * z_cpu, float * z_gpu)
template void CopyGPUtoCPU< int > (int nblk, int blksize, int * z_cpu, int * z_gpu)
void CopytoGPU (int nblk, int blksize, T * z_cpu, T * z_gpu)
Copy data from CPU to GPU memory.
void CopytoGPU (int nblk, int blksize, EvolvingP< T > XEv_cpu, EvolvingP< T > XEv_gpu)
Copy complex data structures from CPU to GPU.
void CopytoGPU (int nblk, int blksize, EvolvingP_M< T > XEv_cpu, EvolvingP_M< T > XEv_gpu)
Copy complex data structures from CPU to GPU.
void CopytoGPU (int nblk, int blksize, GradientsP< T > XGrad_cpu, GradientsP< T > XGrad_gpu)
Copy complex data structures from CPU to GPU.
template void CopytoGPU (int nblk, int blksize, GradientsP< float > XGrad_cpu, GradientsP< float > XGrad_gpu)
template void CopytoGPU (int nblk, int blksize, GradientsP< double > XGrad_cpu, GradientsP< double > XGrad_gpu)
void CopytoGPU (int nblk, int blksize, Param XParam, Model< T > XModel_cpu, Model< T > XModel_gpu)
Copy complex data structures from CPU to GPU.
template void CopytoGPU< bool > (int nblk, int blksize, bool * z_cpu, bool * z_gpu)
template void CopytoGPU< double > (int nblk, int blksize, double * z_cpu, double * z_gpu)
template void CopytoGPU< double > (int nblk, int blksize, EvolvingP< double > XEv_cpu, EvolvingP< double > XEv_gpu)
template void CopytoGPU< double > (int nblk, int blksize, EvolvingP_M< double > XEv_cpu, EvolvingP_M< double > XEv_gpu)
template void CopytoGPU< double > (int nblk, int blksize, Param XParam, Model< double > XModel_cpu, Model< double > XModel_gpu)
template void CopytoGPU< float > (int nblk, int blksize, float * z_cpu, float * z_gpu)
template void CopytoGPU< float > (int nblk, int blksize, EvolvingP< float > XEv_cpu, EvolvingP< float > XEv_gpu)
template void CopytoGPU< float > (int nblk, int blksize, EvolvingP_M< float > XEv_cpu, EvolvingP_M< float > XEv_gpu)
template void CopytoGPU< float > (int nblk, int blksize, Param XParam, Model< float > XModel_cpu, Model< float > XModel_gpu)
template void CopytoGPU< int > (int nblk, int blksize, int * z_cpu, int * z_gpu)
void SetupGPU (Param & XParam, Model< T > XModel, Forcing< float > & XForcing, Model< T > & XModel_g)
Setup and initialize GPU for simulation.
template void SetupGPU< double > (Param & XParam, Model< double > XModel, Forcing< float > & XForcing, Model< double > & XModel_g)
template void SetupGPU< float > (Param & XParam, Model< float > XModel, Forcing< float > & XForcing, Model< float > & XModel_g)

Public Functions Documentation

function AllocateBndTEX

Allocate boundary texture for GPU.

void AllocateBndTEX (
    bndparam & side
) 

Allocates and binds boundary water level data as a CUDA texture for GPU use.

Parameters:

  • side Boundary parameter structure

function AllocateTEX

Allocate and bind a CUDA texture object.

void AllocateTEX (
    int nx,
    int ny,
    TexSetP & Tex,
    float * input
) 

Allocates a CUDA array and creates a texture object for use in GPU kernels.

Parameters:

  • nx Number of x grid points
  • ny Number of y grid points
  • Tex Texture set structure
  • input Input data array

function CUDA_CHECK

Check CUDA error status and print message if error occurs.

void CUDA_CHECK (
    cudaError CUDerr
) 

Checks the CUDA error code and prints an error message if the code indicates failure.

Parameters:

  • CUDerr CUDA error code

function CopyGPUtoCPU

Copy data from GPU to CPU memory.

template<class T>
void CopyGPUtoCPU (
    int nblk,
    int blksize,
    T * z_cpu,
    T * z_gpu
) 

Copies an array from device (GPU) memory to host (CPU) memory using CUDA.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • z_cpu Destination array (CPU)
  • z_gpu Source array (GPU)

function CopyGPUtoCPU< bool >

template void CopyGPUtoCPU< bool > (
    int nblk,
    int blksize,
    bool * z_cpu,
    bool * z_gpu
) 

function CopyGPUtoCPU< double >

template void CopyGPUtoCPU< double > (
    int nblk,
    int blksize,
    double * z_cpu,
    double * z_gpu
) 

function CopyGPUtoCPU< float >

template void CopyGPUtoCPU< float > (
    int nblk,
    int blksize,
    float * z_cpu,
    float * z_gpu
) 

function CopyGPUtoCPU< int >

template void CopyGPUtoCPU< int > (
    int nblk,
    int blksize,
    int * z_cpu,
    int * z_gpu
) 

function CopytoGPU

Copy data from CPU to GPU memory.

template<class T>
void CopytoGPU (
    int nblk,
    int blksize,
    T * z_cpu,
    T * z_gpu
) 

Copies an array from host (CPU) memory to device (GPU) memory using CUDA.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • z_cpu Source array (CPU)
  • z_gpu Destination array (GPU)

function CopytoGPU

Copy complex data structures from CPU to GPU.

template<class T>
void CopytoGPU (
    int nblk,
    int blksize,
    EvolvingP < T > XEv_cpu,
    EvolvingP < T > XEv_gpu
) 

This function copies the evolving variables structure from the host (CPU) to the device (GPU) memory.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • XEv_cpu Source evolving variables structure (CPU)
  • XEv_gpu Destination evolving variables structure (GPU)

function CopytoGPU

Copy complex data structures from CPU to GPU.

template<class T>
void CopytoGPU (
    int nblk,
    int blksize,
    EvolvingP_M < T > XEv_cpu,
    EvolvingP_M < T > XEv_gpu
) 

This function copies the evolving variables with momentum structure from the host (CPU) to the device (GPU) memory.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • XEv_cpu Source evolving variables with momentum structure (CPU)
  • XEv_gpu Destination evolving variables with momentum structure (GPU)

function CopytoGPU

Copy complex data structures from CPU to GPU.

template<class T>
void CopytoGPU (
    int nblk,
    int blksize,
    GradientsP < T > XGrad_cpu,
    GradientsP < T > XGrad_gpu
) 

This function copies the gradients structure from the host (CPU) to the device (GPU) memory.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • XGrad_cpu Source gradients structure (CPU)
  • XGrad_gpu Destination gradients structure (GPU)

function CopytoGPU

template void CopytoGPU (
    int nblk,
    int blksize,
    GradientsP < float > XGrad_cpu,
    GradientsP < float > XGrad_gpu
) 

function CopytoGPU

template void CopytoGPU (
    int nblk,
    int blksize,
    GradientsP < double > XGrad_cpu,
    GradientsP < double > XGrad_gpu
) 

function CopytoGPU

Copy complex data structures from CPU to GPU.

template<class T>
void CopytoGPU (
    int nblk,
    int blksize,
    Param XParam,
    Model < T > XModel_cpu,
    Model < T > XModel_gpu
) 

This function copies the entire model structure from the host (CPU) to the device (GPU) memory.

Template parameters:

  • T Data type

Parameters:

  • nblk Number of blocks
  • blksize Block size
  • XParam Simulation parameters
  • XModel_cpu Source model structure (CPU)
  • XModel_gpu Destination model structure (GPU)

function CopytoGPU< bool >

template void CopytoGPU< bool > (
    int nblk,
    int blksize,
    bool * z_cpu,
    bool * z_gpu
) 

function CopytoGPU< double >

template void CopytoGPU< double > (
    int nblk,
    int blksize,
    double * z_cpu,
    double * z_gpu
) 

function CopytoGPU< double >

template void CopytoGPU< double > (
    int nblk,
    int blksize,
    EvolvingP < double > XEv_cpu,
    EvolvingP < double > XEv_gpu
) 

function CopytoGPU< double >

template void CopytoGPU< double > (
    int nblk,
    int blksize,
    EvolvingP_M < double > XEv_cpu,
    EvolvingP_M < double > XEv_gpu
) 

function CopytoGPU< double >

template void CopytoGPU< double > (
    int nblk,
    int blksize,
    Param XParam,
    Model < double > XModel_cpu,
    Model < double > XModel_gpu
) 

function CopytoGPU< float >

template void CopytoGPU< float > (
    int nblk,
    int blksize,
    float * z_cpu,
    float * z_gpu
) 

function CopytoGPU< float >

template void CopytoGPU< float > (
    int nblk,
    int blksize,
    EvolvingP < float > XEv_cpu,
    EvolvingP < float > XEv_gpu
) 

function CopytoGPU< float >

template void CopytoGPU< float > (
    int nblk,
    int blksize,
    EvolvingP_M < float > XEv_cpu,
    EvolvingP_M < float > XEv_gpu
) 

function CopytoGPU< float >

template void CopytoGPU< float > (
    int nblk,
    int blksize,
    Param XParam,
    Model < float > XModel_cpu,
    Model < float > XModel_gpu
) 

function CopytoGPU< int >

template void CopytoGPU< int > (
    int nblk,
    int blksize,
    int * z_cpu,
    int * z_gpu
) 

function SetupGPU

Setup and initialize GPU for simulation.

template<class T>
void SetupGPU (
    Param & XParam,
    Model < T > XModel,
    Forcing < float > & XForcing,
    Model < T > & XModel_g
) 

This function sets up the GPU device, allocates memory, and copies data from the host to the device.

Parameters:

  • XParam Simulation parameters
  • XModel Host model data structure
  • XForcing Forcing data structure
  • XModel_g Device model data structure

function SetupGPU< double >

template void SetupGPU< double > (
    Param & XParam,
    Model < double > XModel,
    Forcing < float > & XForcing,
    Model < double > & XModel_g
) 

function SetupGPU< float >

template void SetupGPU< float > (
    Param & XParam,
    Model < float > XModel,
    Forcing < float > & XForcing,
    Model < float > & XModel_g
) 


The documentation for this class was generated from the following file src/Setup_GPU.cu