From 03b01e190f2d3d174870ef5704b18e2f8e81bf49 Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Tue, 26 Apr 2016 14:49:04 +0100 Subject: [PATCH] Add cuda constructor declaration and error checking function --- src/CUDAStream.cu | 18 ++++++++++++++++++ src/CUDAStream.h | 4 ++++ src/main.cpp | 5 ++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/CUDAStream.cu b/src/CUDAStream.cu index 9b1b36d..4305ceb 100644 --- a/src/CUDAStream.cu +++ b/src/CUDAStream.cu @@ -1,6 +1,24 @@ #include "CUDAStream.h" +void check_error(void) +{ + cudaError_t err = cudaGetLastError(); + if (err != cudaSuccess) + { + std::cerr << "Error: " << cudaGetErrorString(err) << std::endl; + exit(err); + } +} + +template +CUDAStream::CUDAStream(const unsigned int ARRAY_SIZE) +{ + // Create device buffers + cudaMalloc(&d_a, ARRAY_SIZE*sizeof(T)); + +} + template __global__ void copy_kernel(const T * a, T * c) { diff --git a/src/CUDAStream.h b/src/CUDAStream.h index 9348b29..49e76df 100644 --- a/src/CUDAStream.h +++ b/src/CUDAStream.h @@ -1,4 +1,5 @@ +#include #include "Stream.h" @@ -13,6 +14,9 @@ class CUDAStream : public Stream public: + + CUDAStream(const unsigned int); + void copy(); void add(); void mul(); diff --git a/src/main.cpp b/src/main.cpp index 6702e11..a293eb7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,7 +25,10 @@ int main(int argc, char *argv[]) std::vector c(ARRAY_SIZE, 0.0); Stream *stream; - stream = new CUDAStream(); + + // Use the CUDA implementation + stream = new CUDAStream(ARRAY_SIZE); + stream->copy(); delete[] stream;