Heat Transfere Using Texture and Shared Memory

Heat Transfer

The complete project for visual studio 2010 can be downloaded Here

Class definition:

The class is define as follows for

miauu
class CHeatTrasfer{
	// Device pointers
	vector deviceMatrices;
	vector hostMatrices;
	// Dimentions of the image
	int x,y;
public:
	// reference to texture
	float *frontTex;
	float *backTex;
	// Wrapper functions
	void blend(float* in, bool swaped);
	void cpy_const(float* dest);
	~CHeatTrasfer();
	CHeatTrasfer(int x1,int y1){x=x1;y=y1;}
	float* reserveDeviceFloatMatrix();
	float* reserveHostFloatMatrix();
	void cudaCopy(float* src,float* dest,cudaMemcpyKind mem);
	float* reserveMatrix(bool device);
	void setTo(float v,float* dev_mem);
	int getTotalSize(){return x*y*sizeof(float);}
	dim3 getNBlocks(){
		return dim3(x/tX,y/tY);
	}
	float* initConstTemp();
	dim3 getNThreads(){
		return dim3(tX,tY);
	}
	void setUpTextureMemmory(float* dev_const,float* dev_front,float* dev_back);
};
									
Definition list
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
This should be four
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
#include 
#include 

class CudaPerformance{
	cudaEvent_t start,end;
public:
	CudaPerformance(){
		cudaEventCreate(&start);
		cudaEventCreate(&end);
	}
	~CudaPerformance(){
		( cudaEventDestroy( start ) );
		( cudaEventDestroy( end ) );
	}
	void setStartPoint(){
		cudaEventRecord(start,0);
	}

	float getTime(){
		float   elapsedTime;
		cudaEventRecord(end,0);
		cudaEventSynchronize(end);
		cudaEventElapsedTime( &elapsedTime,
                                        start, end  );
		printf( "Time to generate:  %3.1f ms\n", elapsedTime );
		 return elapsedTime;
	}

};