소개

Data

HOME > RESOURCES > Data 33

CUDA sample 1 for memcpy
HRYU   2009.09.19   5771

#include #define mem 20 #define small 5 void cuErr(const char *msg); __global__ void functionG(); main(){ //memory allocation float *a_host, float *a_host_new; // for CPU float *b_dev, float *b_dev_new; // for GPU : initial data float *c_dev, float *c_dev_new; // for GPU : results size_t memSize1 = sizeof(float)* mem; size_t memSize2 = sizeof(float)* small; size_t memSize3 = sizeof(float)* mem*4; a_host = (float *) malloc( memSize1); // CPU pointer cudaMalloc( (void**)&b_dev , memSize1 );cuErr("malloc_b_dev"); // GPU pointer for initial cudaMalloc( (void**)&c_dev , memSize1 );cuErr("malloc_c_dev"); // GPU pointer for result //point arithmetic a_host_new = &a_host[small]; // new starting point of a_host b_dev_new = &b_dev[small+small]; // new starting point of b_dev c_dev_new = &c_dev[small]; // new starting point of c_dev cudaMemset( b_dev, 0., memSize1); cuErr("memset_b_dev"); cudaMemset( c_dev, 0., memSize1);cuErr("memset_c_dev"); for( int i =0; i>>(); cuErr("functionG"); //kernel launch //memcpy for results return 0; } __global__ void functionG(){ int idx = blockDim.x + threadIdx.x; } void cuErr(const char *msg){ cudaError_t err = cudaGetLastError(); if(cudaSuccess !=err) printf("cuErr(%d)in %s:%s ", err, msg, cudaGetErrorString(err) ); }

Comment









List


35 2009.10.09
34 2009.09.25
33 2009.09.19
32 2009.09.18
31 2009.09.17