From ee25ad42c5e9ecdc5a3aa7125e657ce26cc9535c Mon Sep 17 00:00:00 2001
From: Edmond Yoo <hj3yoo@uwaterloo.ca>
Date: Sun, 16 Sep 2018 02:48:50 +0000
Subject: [PATCH] temp
---
src/cuda.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/src/cuda.h b/src/cuda.h
index 9d949b0..50bb82b 100644
--- a/src/cuda.h
+++ b/src/cuda.h
@@ -1,6 +1,24 @@
#ifndef CUDA_H
#define CUDA_H
+#if defined(_MSC_VER) && _MSC_VER < 1900
+ #define inline __inline
+#endif
+
+#ifdef YOLODLL_EXPORTS
+#if defined(_MSC_VER)
+#define YOLODLL_API __declspec(dllexport)
+#else
+#define YOLODLL_API __attribute__((visibility("default")))
+#endif
+#else
+#if defined(_MSC_VER)
+#define YOLODLL_API
+#else
+#define YOLODLL_API
+#endif
+#endif
+
extern int gpu_index;
#ifdef GPU
@@ -11,16 +29,36 @@
#include "curand.h"
#include "cublas_v2.h"
-void check_error(cudaError_t status);
-cublasHandle_t blas_handle();
-float *cuda_make_array(float *x, int n);
-int *cuda_make_int_array(int n);
-void cuda_push_array(float *x_gpu, float *x, int n);
-void cuda_pull_array(float *x_gpu, float *x, int n);
-void cuda_free(float *x_gpu);
-void cuda_random(float *x_gpu, int n);
-float cuda_compare(float *x_gpu, float *x, int n, char *s);
-dim3 cuda_gridsize(size_t n);
+#ifdef CUDNN
+#include "cudnn.h"
+#endif // CUDNN
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+ void check_error(cudaError_t status);
+ cublasHandle_t blas_handle();
+ float *cuda_make_array(float *x, size_t n);
+ int *cuda_make_int_array(size_t n);
+ void cuda_push_array(float *x_gpu, float *x, size_t n);
+ YOLODLL_API void cuda_pull_array(float *x_gpu, float *x, size_t n);
+ YOLODLL_API void cuda_set_device(int n);
+ int cuda_get_device();
+ void cuda_free(float *x_gpu);
+ void cuda_random(float *x_gpu, size_t n);
+ float cuda_compare(float *x_gpu, float *x, size_t n, char *s);
+ dim3 cuda_gridsize(size_t n);
+ cudaStream_t get_cuda_stream();
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#ifdef CUDNN
+cudnnHandle_t cudnn_handle();
+enum {cudnn_fastest, cudnn_smallest};
#endif
-#endif
+
+#else // GPU
+YOLODLL_API void cuda_set_device(int n);
+#endif // GPU
+#endif // CUDA_H
--
Gitblit v1.10.0