TEST( testCopyLocal, basic ) { EasyCL *cl = EasyCL::createForFirstGpuOtherwiseCpu(); float a[] = { 1,2,3,4, 5,6,7,8, 9,10,11,12 }; float b[16]; memset(b, 0, sizeof(float)*16); CLKernel *kernel = makeKernel( cl ); kernel->in( 12, a )->out( 16, b )->in( 12 ); kernel->localFloats( 12 ); kernel->run_1d(12,12); cl->finish(); for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 4; j++ ) { cout << b[i*4+j] << " "; EXPECT_EQ( i * 4 + j + 1, b[i*4+j] ); } cout << endl; } cout << endl; for( int i = 12; i < 16; i++ ) { cout << b[i] << " "; EXPECT_EQ( 0, b[i] ); } cout << endl; delete kernel; delete cl; }
void imageProcessFGaussianConvolve(LPFImage image, float sigma){ float truncate = DEFAULT_GAUSS_TRUNCATE; makeKernel(sigma, truncate); convolveHorizontal(image, kernel, ksize); convolveVertical(image, kernel, ksize); yl_free(kernel); }