![]() |
COMPASS
5.4.4
End-to-end AO simulation tool using GPU acceleration
|
this class provides wrappers to the generic carma object More...
#include <carma_obj.h>
Public Member Functions | |
CarmaObj () | |
CarmaObj (const CarmaObj< T_data > *obj) | |
CarmaObj (CarmaContext *current_context, const long *dims_data) | |
CarmaObj (CarmaContext *current_context, const std::vector< long > &dims) | |
CarmaObj (CarmaContext *current_context, const CarmaObj< T_data > *obj) | |
CarmaObj (CarmaContext *current_context, const long *dims_data, const T_data *data) | |
CarmaObj (CarmaContext *current_context, const long *dims_data, int nb_streams) | |
CarmaObj (CarmaContext *current_context, const CarmaObj< T_data > *obj, int nb_streams) | |
CarmaObj (CarmaContext *current_context, const long *dims_data, const T_data *data, int nb_streams) | |
CarmaObj (const CarmaObj &)=delete | |
~CarmaObj () | |
void | sync_h_data () |
T_data * | get_h_data () |
int | get_nb_streams () const |
int | add_stream () |
int | add_stream (int nb) |
int | del_stream () |
int | del_stream (int nb) |
cudaStream_t | get_cuda_stream (int stream) |
int | wait_stream (int stream) |
int | wait_all_streams () |
void | swap_ptr (T_data *ptr) |
void | dealloc () |
operator T_data * () | |
std::string | to_string () |
operator std::string () | |
const T_data | operator[] (int index) const |
T_data * | get_data () |
T_data * | get_data_at (int index) |
T_data * | get_o_data () |
const T_data | get_o_data_value () const |
const long * | get_dims () |
long | get_dims (int i) |
int | get_nb_elements () |
CarmaContext * | get_context () |
int | get_device () |
bool | is_rng_init () |
template<typename T_dest > | |
int | host2device (const T_dest *data) |
template<typename T_dest > | |
int | device2host (T_dest *data) |
int | host2device_async (const T_data *data, cudaStream_t stream) |
int | device2host_async (T_data *data, cudaStream_t stream) |
int | device2host_opt (T_data *data) |
int | host2device_vect (const T_data *data, int incx, int incy) |
int | device2host_vect (T_data *data, int incx, int incy) |
int | host2device_mat (const T_data *data, int lda, int ldb) |
int | device2host_mat (T_data *data, int lda, int ldb) |
int | copy_into (T_data *data, int nb_elem) |
int | copy_from (const T_data *data, int nb_elem) |
int | copy_from_async (const T_data *data, int nb_elem, cudaStream_t stream) |
int | reset () |
int | reset (cudaStream_t stream) |
int | memset (T_data value) |
cufftHandle * | get_plan () |
FFT plan. More... | |
cufftType | get_type_plan () |
FFT plan type. More... | |
unsigned int * | get_values () |
optional data (used for sort) More... | |
T_data | sum () |
void | init_reduceCub () |
void | reduceCub (cudaStream_t stream) |
void | reduceCub () |
void | clip (T_data min, T_data max, cudaStream_t stream) |
void | clip (T_data min, T_data max) |
int | transpose (CarmaObj< T_data > *source) |
int | aimax (int incx) |
int | aimin (int incx) |
T_data | asum (int incx) |
T_data | nrm2 (int incx) |
T_data | dot (CarmaObj< T_data > *source, int incx, int incy) |
void | scale (T_data alpha, int incx) |
void | swap (CarmaObj< T_data > *source, int incx, int incy) |
void | copy (CarmaObj< T_data > *source, int incx, int incy) |
void | axpy (T_data alpha, CarmaObj< T_data > *source, int incx, int incy, int offset=0) |
void | rot (CarmaObj< T_data > *source, int incx, int incy, T_data sc, T_data ss) |
void | gemv (char trans, T_data alpha, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *vectx, int incx, T_data beta, int incy) |
void | ger (T_data alpha, CarmaObj< T_data > *vectx, int incx, CarmaObj< T_data > *vecty, int incy, int lda) |
void | symv (char uplo, T_data alpha, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *vectx, int incx, T_data beta, int incy) |
void | gemm (char transa, char transb, T_data alpha, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *matB, int ldb, T_data beta, int ldc) |
void | symm (char side, char uplo, T_data alpha, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *matB, int ldb, T_data beta, int ldc) |
void | syrk (char uplo, char transa, T_data alpha, CarmaObj< T_data > *matA, int lda, T_data beta, int ldc) |
void | syrkx (char uplo, char transa, T_data alpha, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *matB, int ldb, T_data beta, int ldc) |
void | geam (char transa, char transb, T_data alpha, CarmaObj< T_data > *matA, int lda, T_data beta, CarmaObj< T_data > *matB, int ldb, int ldc) |
void | dgmm (char side, CarmaObj< T_data > *matA, int lda, CarmaObj< T_data > *vectx, int incx, int ldc) |
int | init_prng () |
int | init_prng (long seed) |
int | destroy_prng () |
int | prng (T_data *output, char gtype, float alpha, float beta) |
int | prng (T_data *output, char gtype, float alpha) |
int | prng (char gtype, float alpha, float beta) |
int | prng (char gtype, float alpha) |
int | prng (char gtype) |
int | prng_montagn (float init_montagn) |
int | init_prng_host (int seed) |
int | prng_host (char gtype) |
int | prng_host (char gtype, T_data stddev) |
int | prng_host (char gtype, T_data stddev, T_data alpha) |
int | destroy_prng_host () |
Protected Member Functions | |
void | init (CarmaContext *current_context, const long *dims_data, const T_data *data, bool fromHost, int nb_streams) |
Protected Attributes | |
T_data * | d_data = nullptr |
Input data => change to vector. More... | |
std::vector< T_data > | h_data |
T_data * | o_data = nullptr |
optional data (used for scan / reduction) More... | |
T_data * | cub_data = nullptr |
optional data (used for scan / reduction) More... | |
size_t | cub_data_size = 0 |
int | ndim = 0 |
long * | dims_data = nullptr |
dimensions of the array More... | |
int | nb_elem = 0 |
number of elements in the array More... | |
int | device = -1 |
device where the CarmaObj is allocate More... | |
CarmaContext * | current_context |
curandGenerator_t | gen |
curandState * | d_states |
int | nb_threads |
int | nb_blocks |
bool | keys_only |
bool | owner = true |
unsigned int * | values |
optional data (used for sort) More... | |
size_t * | d_num_valid |
used for compact More... | |
cufftHandle | plan |
FFT plan. More... | |
cufftType | type_plan |
FFT plan type. More... | |
CarmaStreams * | streams |
this class provides wrappers to the generic carma object
Definition at line 92 of file carma_obj.h.
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const long * | dims_data | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const std::vector< long > & | dims | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const CarmaObj< T_data > * | obj | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const long * | dims_data, | ||
const T_data * | data | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const long * | dims_data, | ||
int | nb_streams | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const CarmaObj< T_data > * | obj, | ||
int | nb_streams | ||
) |
CarmaObj< T_data >::CarmaObj | ( | CarmaContext * | current_context, |
const long * | dims_data, | ||
const T_data * | data, | ||
int | nb_streams | ||
) |
int CarmaObj< T_data >::add_stream | ( | ) |
int CarmaObj< T_data >::add_stream | ( | int | nb | ) |
int CarmaObj< T_data >::aimax | ( | int | incx | ) |
int CarmaObj< T_data >::aimin | ( | int | incx | ) |
T_data CarmaObj< T_data >::asum | ( | int | incx | ) |
void CarmaObj< T_data >::axpy | ( | T_data | alpha, |
CarmaObj< T_data > * | source, | ||
int | incx, | ||
int | incy, | ||
int | offset = 0 |
||
) |
void CarmaObj< T_data >::clip | ( | T_data | min, |
T_data | max | ||
) |
Definition at line 275 of file carma_obj.h.
void CarmaObj< T_data >::clip | ( | T_data | min, |
T_data | max, | ||
cudaStream_t | stream | ||
) |
void CarmaObj< T_data >::copy | ( | CarmaObj< T_data > * | source, |
int | incx, | ||
int | incy | ||
) |
int CarmaObj< T_data >::copy_from | ( | const T_data * | data, |
int | nb_elem | ||
) |
int CarmaObj< T_data >::copy_from_async | ( | const T_data * | data, |
int | nb_elem, | ||
cudaStream_t | stream | ||
) |
int CarmaObj< T_data >::copy_into | ( | T_data * | data, |
int | nb_elem | ||
) |
void CarmaObj< T_data >::dealloc | ( | ) |
General Utilities
Definition at line 187 of file carma_obj.h.
int CarmaObj< T_data >::del_stream | ( | ) |
int CarmaObj< T_data >::del_stream | ( | int | nb | ) |
int CarmaObj< T_data >::destroy_prng | ( | ) |
int CarmaObj< T_data >::destroy_prng_host | ( | ) |
int CarmaObj< T_data >::device2host | ( | T_dest * | data | ) |
int CarmaObj< T_data >::device2host_async | ( | T_data * | data, |
cudaStream_t | stream | ||
) |
int CarmaObj< T_data >::device2host_mat | ( | T_data * | data, |
int | lda, | ||
int | ldb | ||
) |
int CarmaObj< T_data >::device2host_opt | ( | T_data * | data | ) |
int CarmaObj< T_data >::device2host_vect | ( | T_data * | data, |
int | incx, | ||
int | incy | ||
) |
void CarmaObj< T_data >::dgmm | ( | char | side, |
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | vectx, | ||
int | incx, | ||
int | ldc | ||
) |
Curand
T_data CarmaObj< T_data >::dot | ( | CarmaObj< T_data > * | source, |
int | incx, | ||
int | incy | ||
) |
void CarmaObj< T_data >::geam | ( | char | transa, |
char | transb, | ||
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
T_data | beta, | ||
CarmaObj< T_data > * | matB, | ||
int | ldb, | ||
int | ldc | ||
) |
void CarmaObj< T_data >::gemm | ( | char | transa, |
char | transb, | ||
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | matB, | ||
int | ldb, | ||
T_data | beta, | ||
int | ldc | ||
) |
void CarmaObj< T_data >::gemv | ( | char | trans, |
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | vectx, | ||
int | incx, | ||
T_data | beta, | ||
int | incy | ||
) |
void CarmaObj< T_data >::ger | ( | T_data | alpha, |
CarmaObj< T_data > * | vectx, | ||
int | incx, | ||
CarmaObj< T_data > * | vecty, | ||
int | incy, | ||
int | lda | ||
) |
CarmaContext* CarmaObj< T_data >::get_context | ( | ) |
cudaStream_t CarmaObj< T_data >::get_cuda_stream | ( | int | stream | ) |
T_data* CarmaObj< T_data >::get_data | ( | ) |
Definition at line 208 of file carma_obj.h.
T_data* CarmaObj< T_data >::get_data_at | ( | int | index | ) |
int CarmaObj< T_data >::get_device | ( | ) |
const long* CarmaObj< T_data >::get_dims | ( | ) |
long CarmaObj< T_data >::get_dims | ( | int | i | ) |
Definition at line 218 of file carma_obj.h.
T_data* CarmaObj< T_data >::get_h_data | ( | ) |
Definition at line 147 of file carma_obj.h.
int CarmaObj< T_data >::get_nb_elements | ( | ) |
int CarmaObj< T_data >::get_nb_streams | ( | ) | const |
get the number of streams attached to the host object
Definition at line 149 of file carma_obj.h.
T_data* CarmaObj< T_data >::get_o_data | ( | ) |
Definition at line 210 of file carma_obj.h.
const T_data CarmaObj< T_data >::get_o_data_value | ( | ) | const |
Definition at line 211 of file carma_obj.h.
cufftHandle* CarmaObj< T_data >::get_plan | ( | ) |
FFT plan.
Definition at line 262 of file carma_obj.h.
cufftType CarmaObj< T_data >::get_type_plan | ( | ) |
FFT plan type.
Definition at line 264 of file carma_obj.h.
unsigned int* CarmaObj< T_data >::get_values | ( | ) |
int CarmaObj< T_data >::host2device | ( | const T_dest * | data | ) |
int CarmaObj< T_data >::host2device_async | ( | const T_data * | data, |
cudaStream_t | stream | ||
) |
int CarmaObj< T_data >::host2device_mat | ( | const T_data * | data, |
int | lda, | ||
int | ldb | ||
) |
int CarmaObj< T_data >::host2device_vect | ( | const T_data * | data, |
int | incx, | ||
int | incy | ||
) |
|
protected |
int CarmaObj< T_data >::init_prng | ( | ) |
int CarmaObj< T_data >::init_prng | ( | long | seed | ) |
int CarmaObj< T_data >::init_prng_host | ( | int | seed | ) |
void CarmaObj< T_data >::init_reduceCub | ( | ) |
bool CarmaObj< T_data >::is_rng_init | ( | ) |
Memory transfers both ways
Definition at line 224 of file carma_obj.h.
int CarmaObj< T_data >::memset | ( | T_data | value | ) |
T_data CarmaObj< T_data >::nrm2 | ( | int | incx | ) |
CarmaObj< T_data >::operator std::string | ( | ) |
CarmaObj< T_data >::operator T_data * | ( | ) |
Definition at line 192 of file carma_obj.h.
const T_data CarmaObj< T_data >::operator[] | ( | int | index | ) | const |
Definition at line 202 of file carma_obj.h.
int CarmaObj< T_data >::prng | ( | char | gtype | ) |
int CarmaObj< T_data >::prng | ( | char | gtype, |
float | alpha | ||
) |
int CarmaObj< T_data >::prng | ( | char | gtype, |
float | alpha, | ||
float | beta | ||
) |
int CarmaObj< T_data >::prng | ( | T_data * | output, |
char | gtype, | ||
float | alpha | ||
) |
int CarmaObj< T_data >::prng | ( | T_data * | output, |
char | gtype, | ||
float | alpha, | ||
float | beta | ||
) |
int CarmaObj< T_data >::prng_host | ( | char | gtype | ) |
int CarmaObj< T_data >::prng_host | ( | char | gtype, |
T_data | stddev | ||
) |
int CarmaObj< T_data >::prng_host | ( | char | gtype, |
T_data | stddev, | ||
T_data | alpha | ||
) |
int CarmaObj< T_data >::prng_montagn | ( | float | init_montagn | ) |
void CarmaObj< T_data >::reduceCub | ( | ) |
void CarmaObj< T_data >::reduceCub | ( | cudaStream_t | stream | ) |
int CarmaObj< T_data >::reset | ( | ) |
Definition at line 249 of file carma_obj.h.
int CarmaObj< T_data >::reset | ( | cudaStream_t | stream | ) |
Definition at line 253 of file carma_obj.h.
void CarmaObj< T_data >::rot | ( | CarmaObj< T_data > * | source, |
int | incx, | ||
int | incy, | ||
T_data | sc, | ||
T_data | ss | ||
) |
void CarmaObj< T_data >::scale | ( | T_data | alpha, |
int | incx | ||
) |
T_data CarmaObj< T_data >::sum | ( | ) |
void CarmaObj< T_data >::swap | ( | CarmaObj< T_data > * | source, |
int | incx, | ||
int | incy | ||
) |
void CarmaObj< T_data >::swap_ptr | ( | T_data * | ptr | ) |
void CarmaObj< T_data >::symm | ( | char | side, |
char | uplo, | ||
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | matB, | ||
int | ldb, | ||
T_data | beta, | ||
int | ldc | ||
) |
void CarmaObj< T_data >::symv | ( | char | uplo, |
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | vectx, | ||
int | incx, | ||
T_data | beta, | ||
int | incy | ||
) |
void CarmaObj< T_data >::sync_h_data | ( | ) |
void CarmaObj< T_data >::syrk | ( | char | uplo, |
char | transa, | ||
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
T_data | beta, | ||
int | ldc | ||
) |
void CarmaObj< T_data >::syrkx | ( | char | uplo, |
char | transa, | ||
T_data | alpha, | ||
CarmaObj< T_data > * | matA, | ||
int | lda, | ||
CarmaObj< T_data > * | matB, | ||
int | ldb, | ||
T_data | beta, | ||
int | ldc | ||
) |
std::string CarmaObj< T_data >::to_string | ( | ) |
int CarmaObj< T_data >::wait_all_streams | ( | ) |
int CarmaObj< T_data >::wait_stream | ( | int | stream | ) |
|
protected |
optional data (used for scan / reduction)
Definition at line 97 of file carma_obj.h.
|
protected |
Definition at line 98 of file carma_obj.h.
|
protected |
Definition at line 103 of file carma_obj.h.
|
protected |
Input data => change to vector.
Definition at line 94 of file carma_obj.h.
|
protected |
used for compact
Definition at line 115 of file carma_obj.h.
|
protected |
Definition at line 106 of file carma_obj.h.
|
protected |
device where the CarmaObj is allocate
Definition at line 102 of file carma_obj.h.
|
protected |
dimensions of the array
Definition at line 100 of file carma_obj.h.
|
protected |
Definition at line 105 of file carma_obj.h.
|
protected |
Definition at line 95 of file carma_obj.h.
|
protected |
Definition at line 111 of file carma_obj.h.
|
protected |
Definition at line 109 of file carma_obj.h.
|
protected |
number of elements in the array
Definition at line 101 of file carma_obj.h.
|
protected |
Definition at line 108 of file carma_obj.h.
|
protected |
Definition at line 99 of file carma_obj.h.
|
protected |
optional data (used for scan / reduction)
Definition at line 96 of file carma_obj.h.
|
protected |
Definition at line 112 of file carma_obj.h.
|
protected |
FFT plan.
Definition at line 117 of file carma_obj.h.
|
protected |
Definition at line 120 of file carma_obj.h.
|
protected |
FFT plan type.
Definition at line 118 of file carma_obj.h.
|
protected |
optional data (used for sort)
Definition at line 114 of file carma_obj.h.