 #include "cuda.h"
 #include "cuda_runtime.h"
 
-#define CUDADMA_DEBUG_ON
+//#define CUDADMA_DEBUG_ON
 #include "../../include/cudaDMA.h"
 
 #define WARP_SIZE 32

	return pass;
}

__host__
int main()
{


	// Allocate the inpute data
	int input_size = (pitch*(dimy+2*RADIUS)+ALIGN_OFFSET);
	ELMT_TYPE *h_idata = (ELMT_TYPE*)malloc(input_size*sizeof(ELMT_TYPE));
	for (int i=0; i<input_size; i++)
		initialize<ELMT_TYPE>(h_idata[i],(rand()%10));
	// Allocate device memory and copy down
	ELMT_TYPE *d_idata;
	CUDA_SAFE_CALL( cudaMalloc( (void**)&d_idata, input_size*sizeof(ELMT_TYPE)));
	CUDA_SAFE_CALL( cudaMemcpy( d_idata, h_idata, input_size*sizeof(ELMT_TYPE), cudaMemcpyHostToDevice));

	// Allocate the output size
	ELMT_TYPE *h_odata = (ELMT_TYPE*)malloc(shared_buffer_size*sizeof(ELMT_TYPE));
	for (int i=0; i<shared_buffer_size; i++)
		initialize<ELMT_TYPE>(h_odata[i],0.0f);
	// Allocate device memory and copy down
	ELMT_TYPE *d_odata;
	CUDA_SAFE_CALL( cudaMalloc( (void**)&d_odata, shared_buffer_size*sizeof(ELMT_TYPE)));
	CUDA_SAFE_CALL( cudaMemcpy( d_odata, h_odata, shared_buffer_size*sizeof(ELMT_TYPE), cudaMemcpyHostToDevice));

	int num_compute_warps = 1;
	int total_threads = (num_compute_warps + dma_warps)*WARP_SIZE;
