Why Each Step of Recurrent Network Has Its Own Workspace? C++


I am reading caffe2 c++ codes: operators/rnn/recurrent_network_op.h.
In RecurrentNetworkOp::DoRunWIthType, the Op created a collection of workspaces, one for each t. Why each time step needs unique workspace? Seemed the hidden_state and cell_state and other recurrent states (both forward pass and backward pass) have been assigned enough storage for states of all the time steps?

Thank you very much!

Maybe for parallel execution and storage of output of internal operator of each step.