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

Function generatePoints

examples/opencl/field.cpp:64–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

mainFunction · 0.70

Calls 1

divupFunction · 0.70

Tested by

no test coverage detected