MCPcopy Create free account
hub / github.com/XpuOS/xsched / VecAddTask

Method VecAddTask

platforms/opencl/test/src/vecadd.cpp:13–38  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11)";
12
13VecAddTask::VecAddTask(cl_device_type dev_type, int elem_cnt, int add_cnt)
14 : OclTask(dev_type, "VecAdd", kCode.c_str())
15 , kElemCnt(elem_cnt), kVecSize(elem_cnt * sizeof(int)), kAddCnt(add_cnt)
16{
17 host_vec[0] = new int[elem_cnt];
18 host_vec[1] = new int[elem_cnt];
19 host_adder = new int[elem_cnt];
20
21 for (int i = 0; i < kElemCnt; ++i) {
22 host_vec[0][i] = 0;
23 host_vec[1][i] = 0;
24 host_adder[i] = 1;
25 }
26
27 dev_vec[0] = clCreateBuffer(ctx_, CL_MEM_READ_WRITE, kVecSize, NULL, NULL);
28 dev_vec[1] = clCreateBuffer(ctx_, CL_MEM_READ_WRITE, kVecSize, NULL, NULL);
29 dev_adder = clCreateBuffer(ctx_, CL_MEM_READ_ONLY, kVecSize, NULL, NULL);
30
31 OCL_ASSERT(clEnqueueWriteBuffer(cmdq_, dev_vec[0], CL_FALSE, 0, kVecSize, host_vec[0], 0, NULL, NULL));
32 OCL_ASSERT(clEnqueueWriteBuffer(cmdq_, dev_vec[1], CL_FALSE, 0, kVecSize, host_vec[1], 0, NULL, NULL));
33 OCL_ASSERT(clEnqueueWriteBuffer(cmdq_, dev_adder, CL_FALSE, 0, kVecSize, host_adder, 0, NULL, NULL));
34 OCL_ASSERT(clFinish(cmdq_));
35
36 OCL_ASSERT(clSetKernelArg(kern_, 1, sizeof(cl_mem), &dev_adder));
37 OCL_ASSERT(clSetKernelArg(kern_, 3, sizeof(int), &elem_cnt));
38}
39
40VecAddTask::~VecAddTask()
41{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected