| 79 | } |
| 80 | |
| 81 | void CLQLSTMLayer::TensorCopyKernel::run() |
| 82 | { |
| 83 | auto &q = CLScheduler::get().queue(); |
| 84 | |
| 85 | _src->map(q, true); |
| 86 | _dst->map(q, true); |
| 87 | |
| 88 | Iterator input_iter{_src, _window}; |
| 89 | Iterator output_iter{_dst, _window}; |
| 90 | |
| 91 | execute_window_loop( |
| 92 | _window, [&](const Coordinates &) { memcpy(output_iter.ptr(), input_iter.ptr(), _row_size); }, input_iter, |
| 93 | output_iter); |
| 94 | |
| 95 | _src->unmap(q); |
| 96 | _dst->unmap(q); |
| 97 | } |
| 98 | |
| 99 | CLQLSTMLayer::CLQLSTMLayer(std::shared_ptr<IMemoryManager> memory_manager) |
| 100 | : _input_to_input_reduction(std::make_unique<ClGemmLowpMatrixAReductionKernel>()), |