SHTns 3.7
shtns_cuda.h File Reference

shtns_cuda.h declares transforms and initialization functions for cuda-enabled GPU. More...

#include <cuda_runtime.h>

Go to the source code of this file.

Typedefs

typedef cudaStream_t shtns_gpu_stream_t
 

Functions

void cushtns_profiling (shtns_cfg, int on)
 
double cushtns_profiling_read_time (shtns_cfg, double *time_1, double *time_2)
 
const char * cushtns_get_cfg_info (shtns_cfg)
 
Transforms
void cu_spat_to_SH (shtns_cfg shtns, double *Vr, cplx *Qlm, int ltr)
 Same as spat_to_SH, but working on data residing on the GPU.
 
void cu_spat_to_SH_float (shtns_cfg shtns, float *Vr, cplx_f *Qlm, int ltr)
 Same as cu_spat_to_SH, but working on single precision data.
 
void cu_SH_to_spat (shtns_cfg shtns, cplx *Qlm, double *Vr, int ltr)
 Same as SH_to_spat, but working on data residing on the GPU.
 
void cu_SH_to_spat_float (shtns_cfg shtns, cplx_f *Qlm, float *Vr, int ltr)
 Same as cu_SH_to_spat, but working on single precision data.
 
void cu_spat_to_SHsphtor (shtns_cfg, double *Vt, double *Vp, cplx *Slm, cplx *Tlm, int ltr)
 Same as spat_to_SHsphtor, but working on data residing on the GPU.
 
void cu_spat_to_SHsphtor_float (shtns_cfg, float *Vt, float *Vp, cplx_f *Slm, cplx_f *Tlm, int ltr)
 
void cu_SHsphtor_to_spat (shtns_cfg, cplx *Slm, cplx *Tlm, double *Vt, double *Vp, int ltr)
 Same as SHsphtor_to_spat, but working on data residing on the GPU.
 
void cu_SHsphtor_to_spat_float (shtns_cfg, cplx_f *Slm, cplx_f *Tlm, float *Vt, float *Vp, int ltr)
 
void cu_SHsph_to_spat (shtns_cfg, cplx *Slm, double *Vt, double *Vp, int ltr)
 Same as SHsph_to_spat, but working on data residing on the GPU.
 
void cu_SHsph_to_spat_float (shtns_cfg, cplx_f *Slm, float *Vt, float *Vp, int ltr)
 
void cu_SHtor_to_spat (shtns_cfg, cplx *Tlm, double *Vt, double *Vp, int ltr)
 Same as SHtor_to_spat, but working on data residing on the GPU.
 
void cu_SHtor_to_spat_float (shtns_cfg, cplx_f *Tlm, float *Vt, float *Vp, int ltr)
 
void cu_spat_to_SHqst (shtns_cfg, double *Vr, double *Vt, double *Vp, cplx *Qlm, cplx *Slm, cplx *Tlm, int ltr)
 Same as spat_to_SHqst, but working on data residing on the GPU.
 
void cu_spat_to_SHqst_float (shtns_cfg, float *Vr, float *Vt, float *Vp, cplx_f *Qlm, cplx_f *Slm, cplx_f *Tlm, int ltr)
 
void cu_SHqst_to_spat (shtns_cfg, cplx *Qlm, cplx *Slm, cplx *Tlm, double *Vr, double *Vt, double *Vp, int ltr)
 Same as SHqst_to_spat, but working on data residing on the GPU.
 
void cu_SHqst_to_spat_float (shtns_cfg, cplx_f *Qlm, cplx_f *Slm, cplx_f *Tlm, float *Vr, float *Vt, float *Vp, int ltr)
 
Initialization
int cushtns_init_gpu (shtns_cfg shtns)
 Initialize given config to work on the current (or default) GPU, allowing to call GPU transforms cu_* above, working on data residing in the memory of this GPU.
 
shtns_cfg cushtns_clone (shtns_cfg shtns, shtns_gpu_stream_t compute_stream, shtns_gpu_stream_t transfer_stream)
 Clone a gpu-enabled shtns config, and assign it to different streams (to allow compute overlap and/or usage from multiple threads).
 
void cushtns_set_streams (shtns_cfg shtns, shtns_gpu_stream_t compute_stream, shtns_gpu_stream_t transfer_stream)
 Set user-specified streams for compute (including fft) and transfer.
 
void cushtns_release_gpu (shtns_cfg)
 Release resources needed for GPU transforms, which won't work after this call.
 

Detailed Description

shtns_cuda.h declares transforms and initialization functions for cuda-enabled GPU.