MCPcopy Create free account
hub / github.com/arrayfire/forge / kernel

Function kernel

examples/opencl/surface.cpp:63–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63void kernel(cl::Buffer& devOut, cl::CommandQueue& queue, cl::Device& device)
64{
65 static bool compileFlag = true;
66 static cl::Program prog;
67 static cl::Kernel kern;
68
69 if (compileFlag) {
70 try {
71 prog = cl::Program(queue.getInfo<CL_QUEUE_CONTEXT>(), sin_surf_kernel, false);
72
73 std::vector<cl::Device> devs;
74 devs.push_back(device);
75 prog.build(devs);
76
77 kern = cl::Kernel(prog, "surf");
78 } catch (cl::Error err) {
79 std::cout << "Compile Errors: " << std::endl;
80 std::cout << err.what() << err.err() << std::endl;
81 std::cout << prog.getBuildInfo<CL_PROGRAM_BUILD_LOG>(device) << std::endl;
82 exit(255);
83 }
84 std::cout<< "Kernels compiled successfully" << std::endl;
85 compileFlag = false;
86 }
87
88 NDRange local(8, 8);
89 NDRange global(local[0]*divup(XSIZE, (int)(local[0])),
90 local[1]*divup(YSIZE, (int)(local[1])));
91
92 kern.setArg(0, devOut);
93 kern.setArg(1, DX);
94 kern.setArg(2, XMIN);
95 kern.setArg(3, YMIN);
96 kern.setArg(4, XSIZE);
97 kern.setArg(5, YSIZE);
98 queue.enqueueNDRangeKernel(kern, cl::NullRange, global, local);
99}
100
101int main(void)
102{

Callers 1

mainFunction · 0.70

Calls 1

divupFunction · 0.70

Tested by

no test coverage detected