MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / InferLocalSignature

Function InferLocalSignature

oneflow/core/operator/operator.cpp:1533–1550  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1531}
1532
1533Maybe<void> InferLocalSignature(Operator* op, const OpNodeSignature& upstream_signature,
1534 bool is_local, const ParallelDesc& parallel_desc) {
1535 HashMap<std::string, LocalSigInferHint> ibn2local_sig_infer_hint;
1536 for (const std::string& ibn : op->input_bns()) {
1537 const auto& map = upstream_signature.local_signature().bn_in_op2opt_local_parallel();
1538 const auto& opt_local_parallel = map.at(ibn);
1539 ibn2local_sig_infer_hint.emplace(
1540 ibn, LocalSigInferHint(&parallel_desc, opt_local_parallel.has_local_parallel()));
1541 }
1542 const auto& LocalSigInferHint4Ibn =
1543 [&](const std::string& ibn) -> Maybe<const LocalSigInferHint*> {
1544 const auto& iter = ibn2local_sig_infer_hint.find(ibn);
1545 CHECK_OR_RETURN(iter != ibn2local_sig_infer_hint.end()) << "input blob not found. ibn: " << ibn;
1546 return &iter->second;
1547 };
1548 JUST(op->InferLocalSignatureIf(LocalSigInferHint4Ibn, is_local, parallel_desc));
1549 return Maybe<void>::Ok();
1550}
1551
1552Maybe<void> CheckOpInputSignature(const Operator& op, const OpNodeSignature& upstream_signature) {
1553 for (const auto& ibn : op.input_bns()) {

Callers 3

AddAndInferOpMethod · 0.85
InferLocalSignatureIfMethod · 0.85
ConstructAndInferOpFunction · 0.85

Calls 5

findMethod · 0.80
InferLocalSignatureIfMethod · 0.80
LocalSigInferHintClass · 0.70
atMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected