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

Method OclKernelCommand

platforms/opencl/hal/src/ocl_command.cpp:97–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97OclKernelCommand::OclKernelCommand(cl_kernel kernel, cl_uint work_dim,
98 const size_t *global_work_offset,
99 const size_t *global_work_size,
100 const size_t *local_work_size,
101 cl_uint num_events_in_wait_list,
102 const cl_event *event_wait_list,
103 cl_event *event,
104 std::shared_ptr<std::list<KernelArgument>> args)
105 : OclCommand(num_events_in_wait_list, event_wait_list, event)
106 , kernel_(kernel) , work_dim_(work_dim), args_(args)
107{
108 if (work_dim_ <= 0) return;
109
110 const size_t buf_size = work_dim_ * sizeof(size_t);
111 global_work_size_ = (size_t *)malloc(buf_size);
112 XASSERT(global_work_size_ != nullptr, "failed to malloc global_work_size_");
113 XASSERT(global_work_size != nullptr, "global_work_size is nullptr");
114 memcpy(global_work_size_, global_work_size, buf_size);
115
116 // local_work_size is optional and can be nullptr
117 if (local_work_size != nullptr) {
118 local_work_size_ = (size_t *)malloc(buf_size);
119 XASSERT(local_work_size_ != nullptr, "failed to malloc local_work_size_");
120 memcpy(local_work_size_, local_work_size, buf_size);
121 }
122
123 // global_work_offset is optional and can be nullptr
124 if (global_work_offset != nullptr) {
125 global_work_offset_ = (size_t *)malloc(buf_size);
126 XASSERT(global_work_offset_ != nullptr, "failed to malloc global_work_offset_");
127 memcpy(global_work_offset_, global_work_offset, buf_size);
128 }
129}
130
131OclKernelCommand::~OclKernelCommand()
132{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected