diff options
author | Determinant <ted.sybil@gmail.com> | 2016-02-24 16:58:32 +0800 |
---|---|---|
committer | Determinant <ted.sybil@gmail.com> | 2016-02-24 16:58:32 +0800 |
commit | e91fc2ddaa74dd2c46ce93c9e92020d66c037c8e (patch) | |
tree | 94165c3c81b1af93e9b77b408372c0d9ff23dd6b /nerv/lib/matrix/cumatrix.h | |
parent | 9642bd16922b288c81dee25f17373466ae6888c4 (diff) |
add CuContext/MContextwrapped-handles
Diffstat (limited to 'nerv/lib/matrix/cumatrix.h')
-rw-r--r-- | nerv/lib/matrix/cumatrix.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/nerv/lib/matrix/cumatrix.h b/nerv/lib/matrix/cumatrix.h index b47e14b..280035b 100644 --- a/nerv/lib/matrix/cumatrix.h +++ b/nerv/lib/matrix/cumatrix.h @@ -2,8 +2,19 @@ #define NERV_CUMATRIX_H #include "matrix.h" #include "../common.h" -void nerv_cumatrix_print_profile(); -void nerv_cumatrix_clear_profile(); -void nerv_cumatrix_init(); -void nerv_cumatrix_select_gpu(int dev, Status *status); +#include "cuda_helper.h" + +typedef struct CuContext { + cublasHandle_t cublas_handle; + cudaEvent_t profile_start, profile_stop; + curandGenerator_t curand_gen; + HashMap *profile; +} CuContext; + +void nerv_cuda_context_print_profile(CuContext *context); +void nerv_cuda_context_clear_profile(CuContext *context); +void nerv_cuda_context_accu_profile(CuContext *context, const char *name, float delta); +void nerv_cuda_context_select_gpu(CuContext *context, int dev, Status *status); +CuContext *nerv_cuda_context_create(Status *status); +void nerv_cuda_context_destroy(CuContext *contex, Status *status); #endif |