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

Function FindOrCreateBackwardPassScope

oneflow/core/framework/scope_util.cpp:136–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134
135extern const std::string kBackwardPass;
136Maybe<Scope> FindOrCreateBackwardPassScope(const std::shared_ptr<Scope>& scope) {
137 auto* storage = BackwardPassScopeStorage::Global();
138 auto& scopes = storage->get();
139 std::lock_guard<std::mutex> lock(storage->mutex);
140 auto it = scopes.find(JUST(scope->symbol_id()));
141 if (it != scopes.end()) { return it->second; }
142 auto scope_proto = JUST((scope->MakeChildScopeProto()));
143 scope_proto->set_calculation_pass_name(kBackwardPass);
144 std::shared_ptr<Scope> backward_pass_scope;
145 JUST(PhysicalRun([&](InstructionsBuilder* builder) -> Maybe<void> {
146 backward_pass_scope = JUST(builder->GetScopeSymbol(*scope_proto));
147 return Maybe<void>::Ok();
148 }));
149 scopes.emplace(JUST(scope->symbol_id()), backward_pass_scope);
150 return backward_pass_scope;
151}
152
153void ClearAllBackwardPassScope() {
154 auto* storage = BackwardPassScopeStorage::Global();

Callers 1

Calls 6

PhysicalRunFunction · 0.85
findMethod · 0.80
MakeChildScopeProtoMethod · 0.80
GetScopeSymbolMethod · 0.80
getMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected