MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / refine_block_discard_rec

Method refine_block_discard_rec

src/core/impl/graph/seq_sublinear_memory.cpp:465–481  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

463}
464
465void SeqModifierForSublinearMemory::ModifyActionPlanner::refine_block_discard_rec(
466 const OprArray& all_oprs, size_t block_num, VarSet& discard_vars) {
467 if (block_num) {
468 for (auto&& opr : all_oprs) {
469 for (auto i : opr->input) {
470 auto discard = i->visit_discard_tailing_access();
471 if (discard && discard[1].opr == opr &&
472 m_prev_block_discard_vars.count(i)) {
473 // i is discarded after previous block, but used in this
474 // block, so do not discard it
475 i->discard_tailing_access = None;
476 }
477 }
478 }
479 }
480 m_prev_block_discard_vars.swap(discard_vars);
481}
482
483/* ==================== ActionSearcherSingleCN ==================== */
484class SeqModifierForSublinearMemory::ActionSearcherSingleCN {

Callers

nothing calls this directly

Calls 3

countMethod · 0.45
swapMethod · 0.45

Tested by

no test coverage detected