summaryrefslogtreecommitdiff
path: root/ccc/vector_addition.cu
diff options
context:
space:
mode:
Diffstat (limited to 'ccc/vector_addition.cu')
-rw-r--r--ccc/vector_addition.cu61
1 files changed, 0 insertions, 61 deletions
diff --git a/ccc/vector_addition.cu b/ccc/vector_addition.cu
deleted file mode 100644
index 4f16bc3..0000000
--- a/ccc/vector_addition.cu
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "stdio.h"
-
-
-__global__ void add_arrays_gpu( float *in1, float *in2, float *out, int Ntot)
-{
- int idx=blockIdx.x*blockDim.x+threadIdx.x;
- if (idx < Ntot)
- out[idx]=in1[idx]+in2[idx];
-}
-
-
-int main(void)
-{
- /* pointers to host memory */
- float *a, *b, *c;
- /* pointers to device memory */
- float *a_d, *b_d, *c_d;
- int N=100000000;
- int i;
-
- /* Allocate arrays a, b and c on host*/
- a = (float*) malloc(N*sizeof(float));
- b = (float*) malloc(N*sizeof(float));
- c = (float*) malloc(N*sizeof(float));
-
- /* Allocate arrays a_d, b_d and c_d on device*/
- cudaMalloc ((void **) &a_d, sizeof(float)*N);
- cudaMalloc ((void **) &b_d, sizeof(float)*N);
- cudaMalloc ((void **) &c_d, sizeof(float)*N);
-
- /* Initialize arrays a and b */
- for (i=0; i<N; i++) {
- a[i]= (float) i;
- b[i]=(float) -i;
- }
-
-
- /* Copy data from host memory to device memory */
- cudaMemcpy(a_d, a, sizeof(float)*N, cudaMemcpyHostToDevice);
- cudaMemcpy(b_d, b, sizeof(float)*N, cudaMemcpyHostToDevice);
-
- /* Compute the execution configuration */
- int block_size=256;
- dim3 dimBlock(block_size);
- dim3 dimGrid ( (N/dimBlock.x) + (!(N%dimBlock.x)?0:1) );
-
- /* Add arrays a and b, store result in c */
- add_arrays_gpu<<<dimGrid,dimBlock>>>(a_d, b_d, c_d, N);
-
- /* Copy data from deveice memory to host memory */
- //cudaMemcpy(c, c_d, sizeof(float)*N, cudaMemcpyDeviceToHost);
-
- /* Print c */
-/*for(i=0; i<N; i++)
- printf(" c[%d]=%f\n",i,c[i]);*/
-
- /* Free the memory */
- free(a); free(b); free(c);
- cudaFree(a_d); cudaFree(b_d);cudaFree(c_d);
-}
-