| 17 | } |
| 18 | |
| 19 | bool RelayoutForwardImpl::Param::try_copy_contig() { |
| 20 | auto &&lsrc = m_src.layout, &&ldst = m_dst.layout; |
| 21 | if (lsrc.ndim != 1 || ldst.ndim != 1) |
| 22 | return false; |
| 23 | if (lsrc.stride[0] != 1 || ldst.stride[0] != 1) |
| 24 | return false; |
| 25 | hip_check(hipMemcpyAsync( |
| 26 | m_dst.raw_ptr(), m_src.raw_ptr(), ldst.total_nr_elems() * dtype_size(), |
| 27 | hipMemcpyDeviceToDevice, m_opr->stream())); |
| 28 | return true; |
| 29 | } |
| 30 | |
| 31 | bool RelayoutForwardImpl::expand_dim2(TensorLayout& dst, const TensorLayout& src) { |
| 32 | megdnn_assert(src.ndim == 2 && dst.ndim == 1); |
no test coverage detected