|
|
@ -633,7 +633,7 @@ void ParallelExecutor::Run(const std::vector<std::string> &fetch_tensors,
|
|
|
|
auto fetched_data = std::make_shared<FetchedData>(fetch_tensors.size());
|
|
|
|
auto fetched_data = std::make_shared<FetchedData>(fetch_tensors.size());
|
|
|
|
// Version --> VarHandle
|
|
|
|
// Version --> VarHandle
|
|
|
|
member_->exception_.reset();
|
|
|
|
member_->exception_.reset();
|
|
|
|
std::unordered_map<VarHandleBase *, bool> pending_vars;
|
|
|
|
std::unordered_map<VarHandleBase *, std::atomic<bool>> pending_vars;
|
|
|
|
std::unordered_map<OpHandle *, size_t> pending_ops;
|
|
|
|
std::unordered_map<OpHandle *, size_t> pending_ops;
|
|
|
|
|
|
|
|
|
|
|
|
for (auto &place_pair : member_->vars_) {
|
|
|
|
for (auto &place_pair : member_->vars_) {
|
|
|
@ -737,9 +737,9 @@ void ParallelExecutor::Run(const std::vector<std::string> &fetch_tensors,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ParallelExecutor::RunOp(
|
|
|
|
void ParallelExecutor::RunOp(
|
|
|
|
std::unordered_map<VarHandleBase *, bool> &pending_vars,
|
|
|
|
std::unordered_map<VarHandleBase *, std::atomic<bool>> &pending_vars,
|
|
|
|
OpHandle *op) const {
|
|
|
|
OpHandle *op) const {
|
|
|
|
std::vector<bool *> ready_buffer;
|
|
|
|
std::vector<std::atomic<bool> *> ready_buffer;
|
|
|
|
for (auto *var : op->outputs_) {
|
|
|
|
for (auto *var : op->outputs_) {
|
|
|
|
ready_buffer.emplace_back(&pending_vars[var]);
|
|
|
|
ready_buffer.emplace_back(&pending_vars[var]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|