From 1a259d4fc8e43ba67767951fa5438f1c173d6f36 Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Tue, 26 Apr 2016 14:24:04 +0100 Subject: [PATCH] Add a copy kernel --- src/CUDAStream.cu | 9 ++++++++- src/CUDAStream.h | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/CUDAStream.cu b/src/CUDAStream.cu index d95f9a1..163a3f1 100644 --- a/src/CUDAStream.cu +++ b/src/CUDAStream.cu @@ -1,10 +1,17 @@ #include "CUDAStream.h" +template +__global__ void copy_kernel(const T * a, T * c) +{ + const int i = blockDim.x * blockIdx.x + threadIdx.x; + c[i] = a[i]; +} + template void CUDAStream::copy() { - return; + copy<<<1024, 1024>>>(a, c); } template diff --git a/src/CUDAStream.h b/src/CUDAStream.h index bfea7ed..ab9ac38 100644 --- a/src/CUDAStream.h +++ b/src/CUDAStream.h @@ -10,4 +10,11 @@ class CUDAStream : public Stream void add(); void mul(); void triad(); + + private: + // Device side pointers to arrays + T *d_a; + T *d_b; + T *d_c; + };