//////////////////////////////////////////////////////////////////////////////// //! Load PPM image file (with unsigned char as data element type), padding 4th component //! @return CUTTrue if reading the file succeeded, otherwise false //! @param file name of the image file //! @param data handle to the data read //! @param w width of the image //! @param h height of the image //////////////////////////////////////////////////////////////////////////////// int cutLoadPPM4ub( const char* file, unsigned char** data, unsigned int *w,unsigned int *h) { unsigned char *idata = 0; unsigned int channels; if (loadPPM( file, &idata, w, h, &channels)) { // pad 4th component int size = *w * *h; // keep the original pointer unsigned char* idata_orig = idata; *data = (unsigned char*) malloc( sizeof(unsigned char) * size * 4); unsigned char *ptr = *data; int i; for(i=0; i<size; i++) { *ptr++ = *idata++; *ptr++ = *idata++; *ptr++ = *idata++; *ptr++ = 0; } free( idata_orig); return CUTTrue; } else { cutFree( idata); return CUTFalse; } }
void cleanup() { cutilCheckError( cutDeleteTimer( timer)); if(h_img)cutFree(h_img); cutilSafeCall(cudaFree(d_img)); cutilSafeCall(cudaFree(d_temp)); // Refer to boxFilter_kernel.cu for implementation freeTextures(); //DEPRECATED: cutilSafeCall(cudaGLUnregisterBufferObject(pbo)); cudaGraphicsUnregisterResource(cuda_pbo_resource); glDeleteBuffersARB(1, &pbo); glDeleteTextures(1, &texid); glDeleteProgramsARB(1, &shader); if (g_CheckRender) { delete g_CheckRender; g_CheckRender = NULL; } if (g_FrameBufferObject) { delete g_FrameBufferObject; g_FrameBufferObject = NULL; } }
static CUresult initCuda(CUcontext _cuContext, char* executablePath, CUfunction *mathop, int argc, char** argv, const char* cubin_name, const char* kernel_name) { CUdevice cuDevice; CUT_DEVICE_INIT_DRV(cuDevice, argc, argv); print_GetProperties(cuDevice); CUresult status = cuCtxCreate( &_cuContext, 0, cuDevice ); if ( CUDA_SUCCESS != status ) { Error(_cuContext, status); } else printf("(1) context creation successful\n"); char* module_path = cutFindFilePath(cubin_name, executablePath); printf ("\t cubin:%s, path:%s, mmp_ptr:%lu\n", cubin_name, executablePath, module_path); if(module_path != NULL) printf ("\t cubin:%s, path:%s, module_path:%c%c%c%c\n", cubin_name, executablePath, *module_path, *(module_path+1), *(module_path+2), *(module_path+3)); char* data_path = "./data/"; size_t len_path = strlen(data_path); size_t len_fn = strlen(cubin_name); // printf ("Sizes: data:%lu, cubinname:%lu\n", len_path, len_fn); char* module_path_new = (char*)malloc(sizeof(char) * (len_path + len_fn)); strcpy(module_path_new, data_path); strcat(module_path_new, cubin_name); strcat(module_path_new, "\0"); if (module_path_new == 0) { status = CUDA_ERROR_NOT_FOUND; Error(_cuContext, status); } FILE *fp = fopen(module_path_new,"r"); if( fp ) { printf("(2) cubin_File found in modulepath:%s\n", module_path_new); fclose(fp); } else { printf("(2) cubin file not exist: %s\n", module_path_new); } CUmodule cuModule; status = cuModuleLoad(&cuModule, module_path_new); cutFree(module_path_new); if ( CUDA_SUCCESS != status ) { Error(_cuContext, status); } else printf ("(3) module Load successful\n"); CUfunction cuFunction = 0; status = cuModuleGetFunction(&cuFunction, cuModule, kernel_name); if ( CUDA_SUCCESS != status) { Error(_cuContext, status); } else printf ("(4) getFunction successful w/cuFunction\n"); *mathop = cuFunction; return CUDA_SUCCESS; }
void loadDefaultImage( int argc, char ** argv ) { printf("Reading image: lena.pgm\n"); const char* image_filename = "lena.pgm"; char* image_path = cutFindFilePath(image_filename, argv[0] ); if (image_path == 0) { printf( "Reading image failed.\n"); exit(EXIT_FAILURE); } initializeData( image_path, argc, argv ); cutFree( image_path ); }
void loadDefaultImage( int argc, char ** argv ) { printf("Loading input image: lena.pgm\n"); const char* image_filename = "lena.pgm"; char* image_path = cutFindFilePath(image_filename, argv[0] ); if (image_path == NULL) { printf( "FunctionPointers unable to find and load image file <%s>.\nExiting...\n", image_filename); shrQAFinishExit(argc, (const char **)argv, QA_FAILED); } initializeData( image_path, argc, argv ); cutFree( image_path ); }
void loadDefaultImage(char* loc_exec) { printf("Reading image: lena.pgm\n"); const char* image_filename = "lena.pgm"; char* image_path = cutFindFilePath(image_filename, loc_exec); if (image_path == 0) { printf( "Reading image: lena.pgm failed.\n"); exit(EXIT_FAILURE); } initializeData(image_path); cutFree(image_path); }