samskalicky opened a new issue #15296: Graph Executor does not track mutable 
input dependencies
URL: https://github.com/apache/incubator-mxnet/issues/15296
 
 
   ## Description
   In the Symbol/Module flow, the graph executor does not track mutable input 
dependencies when setting up the use_vars and mutate_vars arrays here:
   
https://github.com/apache/incubator-mxnet/blob/master/src/executor/graph_executor.cc#L1222-L1234
   
   Notice that inputs are only added to use_vars on line 1224, and mutate_vars 
only contains outputs. 
   
   Compare this to the CachedOp flow in Gluon where we get the mutable inputs 
here:
   
https://github.com/apache/incubator-mxnet/blob/master/src/imperative/imperative_utils.h#L245
   
   and then add all mutable inputs to the write_vars array on line 294 (here 
read_vars is the same as use_vars, and write_vars is the same as mutate_vars in 
the graph executor above). 
   
   This means that its possible that write dependencies would not be tracked 
correctly in the symbol/module flows for operators that use the FMutateInputs 
attribute. Currently it looks like only BatchNorm uses this. 
   
   ## Test case
   This can be tested using BatchNorm, by creating a symbol graph that only 
contains batch norm and run with the same running mean and variance many times

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to