Function to handle input reordering Check if we need to reorder this input of an operation. Return true and allocate reorder memory primitive if reorder is needed. Otherwise, return false and do not allocate reorder memory primitive. To check if reorder is needed, this function compares memory primitive descriptor (memory descriptor for v1.x) of an operation (op_pd) for the given input with the
| 1470 | /// <argument-type, dnnl::memory>. |
| 1471 | /// @return: true in case reorder of input is needed; false, otherwise. |
| 1472 | inline bool CheckReorderToOpMem(const memory::desc& op_md, |
| 1473 | std::vector<primitive>& net, |
| 1474 | std::vector<MemoryArgsMap>& net_args, |
| 1475 | const engine& engine) { |
| 1476 | DCHECK(user_memory_); |
| 1477 | DCHECK_EQ(net.size(), net_args.size()); |
| 1478 | if (IsReorderNeeded(op_md)) { |
| 1479 | // TODO(nhasabni): can we remove dynamic memory allocation? |
| 1480 | reorder_memory_ = new memory(op_md, engine); |
| 1481 | net.push_back(CreateReorder(user_memory_, reorder_memory_)); |
| 1482 | net_args.push_back(MemoryArgsMap{{DNNL_ARG_FROM, *user_memory_}, |
| 1483 | {DNNL_ARG_TO, *reorder_memory_}}); |
| 1484 | return true; |
| 1485 | } |
| 1486 | return false; |
| 1487 | } |
| 1488 | |
| 1489 | inline bool CheckReorderToOpMem(const memory::desc& op_md, |
| 1490 | const engine& engine, |
no test coverage detected