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 vectordeviceMatrices; 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; } };