From cccccbf6cca94a3eaf813b4468453160e91c332b Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Mon, 14 Apr 2014 08:14:45 +0800 Subject: First commit --- src/CuBaseLib/.svn/text-base/cucommon.h.svn-base | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/CuBaseLib/.svn/text-base/cucommon.h.svn-base (limited to 'src/CuBaseLib/.svn/text-base/cucommon.h.svn-base') diff --git a/src/CuBaseLib/.svn/text-base/cucommon.h.svn-base b/src/CuBaseLib/.svn/text-base/cucommon.h.svn-base new file mode 100644 index 0000000..6dc7e94 --- /dev/null +++ b/src/CuBaseLib/.svn/text-base/cucommon.h.svn-base @@ -0,0 +1,46 @@ +#ifndef _CUCOMMON_H_ +#define _CUCOMMON_H_ + +#include +#include + +#include + +#include "Error.h" + + + +#define cuSafeCall(fun) \ +{ \ + int ret; \ + if((ret = (fun)) != 0) { \ + std::ostringstream os; \ + os << "CUDA ERROR #" << ret << " " << __FILE__ ":" << __LINE__ << " " << __func__ << "()" << " '" << #fun << "' " << cudaGetErrorString((cudaError_t)ret); \ + throw(MyException(os.str())); \ + } \ + cudaThreadSynchronize(); \ +} + + + + +namespace TNet { + + /** The size of edge of CUDA square block **/ + static const int CUBLOCK = 16; + + /** Number of blocks in which is split task of size 'size' **/ + inline int n_blocks(int size, int block_size) + { return size / block_size + ((size % block_size == 0)? 0 : 1); } + + /** Printing dim3 output operator **/ + inline std::ostream& operator<<(std::ostream& os, dim3 arr) { + os << "[" << arr.x << "," << arr.y << "," << arr.z << "]"; + return os; + } + +} + + + +#endif -- cgit v1.2.3-70-g09d2