aboutsummaryrefslogtreecommitdiff
path: root/matrix/cuda_helper.h
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2015-06-22 19:01:29 +0800
committerDeterminant <ted.sybil@gmail.com>2015-06-22 19:01:29 +0800
commit2497fd9e7a0fae5ee4887890d7a312e0e08a93b8 (patch)
tree382f97575bd2df9ee6abb1662b11b279fc22d72b /matrix/cuda_helper.h
parent196e9b48a3541caccdffc5743001cced70667091 (diff)
major change: use luarocks to manage project
Diffstat (limited to 'matrix/cuda_helper.h')
-rw-r--r--matrix/cuda_helper.h75
1 files changed, 0 insertions, 75 deletions
diff --git a/matrix/cuda_helper.h b/matrix/cuda_helper.h
deleted file mode 100644
index fde6f18..0000000
--- a/matrix/cuda_helper.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef NERV_CUDA_HELPER_H
-#define NERV_CUDA_HELPER_H
-#include "cuda.h"
-#include "cuda_runtime.h"
-#include "driver_types.h"
-#include "cublas_v2.h"
-#define CUBLAS_SAFE_SYNC_CALL(call) \
- do { \
- cublasStatus_t err = (call); \
- if (err != CUBLAS_STATUS_SUCCESS) \
- nerv_error(L, "cumatrix cublas error: %s at %s:%d", \
- cublasGetErrorString(err), __FILE__, __LINE__); \
- cudaDeviceSynchronize(); \
- } while (0)
-
-#define CUDA_SAFE_CALL(call) \
- do { \
- cudaError_t err = (call); \
- if (err != cudaSuccess) \
- nerv_error(L, "cumatrix CUDA error: %s at %s:%d", \
- cudaGetErrorString(err), __FILE__, __LINE__); \
- } while (0)
-
-#define CUDA_SAFE_SYNC_CALL(call) \
- do { \
- CUDA_SAFE_CALL(call); \
- cudaDeviceSynchronize(); \
- } while (0)
-
-#define CHECK_SAME_DIMENSION(a, b) \
- do { \
- if (!(a->nrow == b->nrow && a->ncol == b->ncol)) \
- nerv_error(L, "matrices should be of the same dimension"); \
- } while (0)
-
-static const char *cublasGetErrorString(cublasStatus_t err) {
- switch (err)
- {
- case CUBLAS_STATUS_SUCCESS:
- return "CUBLAS_STATUS_SUCCESS";
- case CUBLAS_STATUS_NOT_INITIALIZED:
- return "CUBLAS_STATUS_NOT_INITIALIZED";
- case CUBLAS_STATUS_ALLOC_FAILED:
- return "CUBLAS_STATUS_ALLOC_FAILED";
- case CUBLAS_STATUS_INVALID_VALUE:
- return "CUBLAS_STATUS_INVALID_VALUE";
- case CUBLAS_STATUS_ARCH_MISMATCH:
- return "CUBLAS_STATUS_ARCH_MISMATCH";
- case CUBLAS_STATUS_MAPPING_ERROR:
- return "CUBLAS_STATUS_MAPPING_ERROR";
- case CUBLAS_STATUS_EXECUTION_FAILED:
- return "CUBLAS_STATUS_EXECUTION_FAILED";
- case CUBLAS_STATUS_INTERNAL_ERROR:
- return "CUBLAS_STATUS_INTERNAL_ERROR";
-/* case CUBLAS_STATUS_NOT_SUPPORTED:
- return "CUBLAS_STATUS_NOT_SUPPORTED";
- case CUBLAS_STATUS_LICENSE_ERROR:
- return "CUBLAS_STATUS_LICENSE_ERROR"; */
- }
- return "<unknown>";
-}
-
-#define PROFILE_START \
- do { \
- cudaEventRecord(profile_start, 0);
-#define PROFILE_STOP \
- cudaEventRecord(profile_stop, 0); \
- cudaEventSynchronize(profile_stop); \
- float milliseconds = 0; \
- cudaEventElapsedTime(&milliseconds, profile_start, profile_stop); \
- accu_profile(__func__, milliseconds / 1000); \
- } while (0);
-
-#define PROFILE_END
-#endif