|
|
|
@ -48,17 +48,18 @@ void FetchOpHandle::RunImpl() {
|
|
|
|
|
WaitInputVarGenerated(platform::CPUPlace());
|
|
|
|
|
|
|
|
|
|
tensors_.resize(inputs_.size());
|
|
|
|
|
auto *var_handle = static_cast<VarHandle *>(inputs_[0]);
|
|
|
|
|
auto &var_name = var_handle->name_;
|
|
|
|
|
platform::CPUPlace cpu;
|
|
|
|
|
auto &scopes = *local_scopes_;
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < scopes.size(); ++i) {
|
|
|
|
|
auto &scope = scopes[i];
|
|
|
|
|
auto *var =
|
|
|
|
|
scope->FindVar(kLocalExecScopeName)->Get<Scope *>()->FindVar(var_name);
|
|
|
|
|
for (size_t i = 0; i < inputs_.size(); ++i) {
|
|
|
|
|
auto *var_handle = static_cast<VarHandle *>(inputs_[i]);
|
|
|
|
|
auto &scope = scopes.at(var_handle->scope_idx_);
|
|
|
|
|
auto *var = scope->FindVar(kLocalExecScopeName)
|
|
|
|
|
->Get<Scope *>()
|
|
|
|
|
->FindVar(var_handle->name_);
|
|
|
|
|
PADDLE_ENFORCE_NOT_NULL(var, "Cannot find variable %s in execution scope",
|
|
|
|
|
var_name);
|
|
|
|
|
var_handle->name_);
|
|
|
|
|
|
|
|
|
|
auto &t = var->Get<framework::LoDTensor>();
|
|
|
|
|
if (platform::is_gpu_place(t.place())) {
|
|
|
|
|
#ifdef PADDLE_WITH_CUDA
|
|
|
|
|