double run (clutils::GPUTimer<period> &timer, const std::vector<cl::Event> *events = nullptr) { queue.enqueueNDRangeKernel (kernel, cl::NullRange, global, cl::NullRange, events, &timer.event ()); queue.flush (); timer.wait (); return timer.duration (); }