From 50b8184932102f3f18f097d911a41dc933294da0 Mon Sep 17 00:00:00 2001
From: Zhenhua <1209435+hengzi@users.noreply.github.com>
Date: Tue, 27 Apr 2021 23:04:30 +0800
Subject: [PATCH] Refactor namespace eager (#4727)

* Rename namespace eager to vm

* Merge the same namespace

* Fix conflict

Co-authored-by: oneflow-ci-bot <69100618+oneflow-ci-bot@users.noreply.github.com>
---
 oneflow/core/eager/blob_instruction_type.cpp  |  6 +--
 oneflow/core/eager/blob_instruction_type.h    |  4 +-
 oneflow/core/eager/blob_object.cpp            |  4 +-
 oneflow/core/eager/blob_object.h              |  4 +-
 .../core/eager/cpu_blob_instruction_type.cpp  |  4 +-
 .../eager/cpu_opkernel_instruction_type.cpp   |  4 +-
 .../core/eager/cuda_blob_instruction_type.cpp |  4 +-
 .../eager/cuda_opkernel_instruction_type.cpp  |  4 +-
 oneflow/core/eager/eager_blob_object.cpp      |  4 +-
 oneflow/core/eager/eager_blob_object.h        |  4 +-
 oneflow/core/eager/eager_instruction.proto    |  2 +-
 oneflow/core/eager/eager_oneflow.cpp          | 15 ++++---
 oneflow/core/eager/eager_oneflow.h            | 18 ++-------
 oneflow/core/eager/eager_symbol.proto         |  2 +-
 .../eager/init_symbol_instruction_type.cpp    |  4 +-
 .../init_symbol_instruction_type_test.cpp     |  4 +-
 oneflow/core/eager/lazy_ref_blob_object.h     |  4 +-
 .../local_call_opkernel_phy_instr_operand.cpp |  4 +-
 .../local_call_opkernel_phy_instr_operand.h   |  6 +--
 oneflow/core/eager/opkernel_instruction.msg.h |  4 +-
 .../core/eager/opkernel_instruction_type.cpp  | 10 ++---
 .../core/eager/opkernel_instruction_type.h    |  4 +-
 .../eager/opkernel_instruction_type_test.cpp  |  4 +-
 oneflow/core/eager/opkernel_object.cpp        |  4 +-
 oneflow/core/eager/opkernel_object.h          |  4 +-
 .../eager/release_tensor_instruction_type.cpp |  4 +-
 .../eager/release_tensor_instruction_type.h   |  4 +-
 ...move_foreign_callback_instruction_type.cpp |  4 +-
 .../eager/transport_blob_instruction_type.cpp |  4 +-
 .../eager/transport_blob_instruction_type.h   |  4 +-
 .../transport_blob_instruction_type_test.cpp  |  4 +-
 .../core/framework/instructions_builder.cpp   | 40 +++++++++----------
 oneflow/core/framework/instructions_builder.h | 16 ++++----
 oneflow/core/framework/interpreter.cpp        |  4 +-
 oneflow/core/framework/interpreter.h          |  4 +-
 .../eager_mirrored_op_interpreter.cpp         | 39 +++++++++---------
 .../eager_mirrored_op_interpreter.h           |  3 +-
 .../op_interpreter/op_interpreter_util.cpp    |  2 +-
 .../op_interpreter/op_interpreter_util.h      |  2 +-
 oneflow/core/framework/session_util.cpp       |  4 +-
 oneflow/core/framework/session_util.h         |  4 +-
 oneflow/core/framework/tensor.cpp             |  2 +-
 oneflow/core/framework/tensor.h               | 10 ++---
 oneflow/core/framework/tensor_impl.cpp        |  4 +-
 oneflow/core/framework/tensor_impl.h          | 24 +++++------
 oneflow/core/framework/tensor_storage.cpp     |  4 +-
 oneflow/core/framework/tensor_storage.h       | 12 +++---
 oneflow/core/job/cluster.cpp                  |  2 +-
 oneflow/core/job/cluster_instruction.proto    |  2 +-
 .../vm/access_blob_arg_cb_phy_instr_operand.h | 13 +++---
 ...ad_tensor_shape_arg_cb_phy_instr_operand.h | 11 ++---
 .../vm/release_tensor_arg_phy_instr_operand.h | 13 +++---
 .../user/kernels/stateful_local_opkernel.cpp  | 14 +++----
 .../user/kernels/stateful_local_opkernel.h    | 21 +++++-----
 54 files changed, 190 insertions(+), 215 deletions(-)

diff --git a/oneflow/core/eager/blob_instruction_type.cpp b/oneflow/core/eager/blob_instruction_type.cpp
index 605ffa824..85242fce7 100644
--- a/oneflow/core/eager/blob_instruction_type.cpp
+++ b/oneflow/core/eager/blob_instruction_type.cpp
@@ -33,7 +33,7 @@ limitations under the License.
 #include "oneflow/core/eager/eager_blob_object.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 namespace {
 
@@ -115,7 +115,7 @@ Maybe<void> LazyReferenceInstructionType::Run(vm::Instruction* instruction) cons
       &parallel_ctx, instruction->stream().machine_id(), instruction->stream().device_id()));
   Blob* blob = Global<RegstMgr>::Get()->Blob4LbiAndParallelId(GenLogicalBlobId(lbn),
                                                               parallel_ctx.parallel_id());
-  eager_blob_rw->Init<eager::LazyRefBlobObject>(blob);
+  eager_blob_rw->Init<vm::LazyRefBlobObject>(blob);
   return Maybe<void>::Ok();
 }
 
@@ -158,5 +158,5 @@ class ReadTensorShapeByCallbackInstructionType : public vm::InstructionType {
 COMMAND(vm::RegisterInstructionType<ReadTensorShapeByCallbackInstructionType>(
     "ReadTensorShapeByCallback"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/blob_instruction_type.h b/oneflow/core/eager/blob_instruction_type.h
index 99ba99524..f3b04ecae 100644
--- a/oneflow/core/eager/blob_instruction_type.h
+++ b/oneflow/core/eager/blob_instruction_type.h
@@ -18,7 +18,7 @@ limitations under the License.
 #include "oneflow/core/vm/instruction_operand.msg.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class LazyReferenceInstructionType : public vm::InstructionType {
  public:
@@ -53,5 +53,5 @@ class AccessBlobByCallbackInstructionType : public vm::InstructionType {
   }
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/blob_object.cpp b/oneflow/core/eager/blob_object.cpp
index 90758d410..20edc0240 100644
--- a/oneflow/core/eager/blob_object.cpp
+++ b/oneflow/core/eager/blob_object.cpp
@@ -17,7 +17,7 @@ limitations under the License.
 #include "oneflow/core/job/parallel_desc.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 Maybe<void> BlobObject::CheckMemCase(const ParallelDesc& parallel_desc, int64_t machine_id) const {
   CHECK_OR_RETURN(parallel_desc.HasMachineId(machine_id))
@@ -39,5 +39,5 @@ Maybe<void> BlobObject::CheckMemCase(const ParallelDesc& parallel_desc, int64_t
   return Maybe<void>::Ok();
 }
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/blob_object.h b/oneflow/core/eager/blob_object.h
index d52df2012..0f5acfa73 100644
--- a/oneflow/core/eager/blob_object.h
+++ b/oneflow/core/eager/blob_object.h
@@ -24,7 +24,7 @@ namespace oneflow {
 
 class ParallelDesc;
 
-namespace eager {
+namespace vm {
 
 class BlobObject : public vm::Object {
  public:
@@ -53,7 +53,7 @@ class BlobObject : public vm::Object {
   BlobDesc blob_desc_;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_BLOB_OBJECT_H_
diff --git a/oneflow/core/eager/cpu_blob_instruction_type.cpp b/oneflow/core/eager/cpu_blob_instruction_type.cpp
index ba7bc109d..0aea5c832 100644
--- a/oneflow/core/eager/cpu_blob_instruction_type.cpp
+++ b/oneflow/core/eager/cpu_blob_instruction_type.cpp
@@ -17,7 +17,7 @@ limitations under the License.
 #include "oneflow/core/vm/cpu_stream_type.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 class CpuLazyReferenceInstructionType : public LazyReferenceInstructionType {
  public:
   CpuLazyReferenceInstructionType() = default;
@@ -38,5 +38,5 @@ class CpuAccessBlobByCallbackInstructionType final : public AccessBlobByCallback
 COMMAND(vm::RegisterInstructionType<CpuAccessBlobByCallbackInstructionType>(
     "cpu.AccessBlobByCallback"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/cpu_opkernel_instruction_type.cpp b/oneflow/core/eager/cpu_opkernel_instruction_type.cpp
index 3578ff82f..0561ef6c7 100644
--- a/oneflow/core/eager/cpu_opkernel_instruction_type.cpp
+++ b/oneflow/core/eager/cpu_opkernel_instruction_type.cpp
@@ -26,7 +26,7 @@ limitations under the License.
 #include "oneflow/core/vm/object.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class CpuLocalCallOpKernelInstructionType final : public LocalCallOpKernelInstructionType {
  public:
@@ -116,5 +116,5 @@ class CpuFeedBlobInstructionType final : public FeedBlobInstructionType {
 };
 COMMAND(vm::RegisterInstructionType<CpuFeedBlobInstructionType>("cpu.FeedBlob"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/cuda_blob_instruction_type.cpp b/oneflow/core/eager/cuda_blob_instruction_type.cpp
index 0739564d0..db9b11d23 100644
--- a/oneflow/core/eager/cuda_blob_instruction_type.cpp
+++ b/oneflow/core/eager/cuda_blob_instruction_type.cpp
@@ -18,7 +18,7 @@ limitations under the License.
 #include "oneflow/core/vm/cuda_stream_type.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 class GpuLazyReferenceInstructionType : public LazyReferenceInstructionType {
  public:
   GpuLazyReferenceInstructionType() = default;
@@ -37,6 +37,6 @@ class GpuAccessBlobByCallbackInstructionType final : public AccessBlobByCallback
 COMMAND(vm::RegisterInstructionType<GpuAccessBlobByCallbackInstructionType>(
     "gpu.AccessBlobByCallback"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 #endif
diff --git a/oneflow/core/eager/cuda_opkernel_instruction_type.cpp b/oneflow/core/eager/cuda_opkernel_instruction_type.cpp
index ca057dfb4..7a7d565de 100644
--- a/oneflow/core/eager/cuda_opkernel_instruction_type.cpp
+++ b/oneflow/core/eager/cuda_opkernel_instruction_type.cpp
@@ -30,7 +30,7 @@ limitations under the License.
 #include "oneflow/core/vm/object.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class CudaLocalCallOpKernelInstructionType final : public LocalCallOpKernelInstructionType {
  public:
@@ -155,7 +155,7 @@ class GpuFeedBlobInstructionType final : public FeedBlobInstructionType {
 };
 COMMAND(vm::RegisterInstructionType<GpuFeedBlobInstructionType>("gpu.FeedBlob"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif
diff --git a/oneflow/core/eager/eager_blob_object.cpp b/oneflow/core/eager/eager_blob_object.cpp
index 7e0e4b8f2..b99e7f882 100644
--- a/oneflow/core/eager/eager_blob_object.cpp
+++ b/oneflow/core/eager/eager_blob_object.cpp
@@ -20,7 +20,7 @@ limitations under the License.
 #include "oneflow/core/framework/shut_down_util.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 namespace {
 Maybe<VmLocalDepObject> GetVmLocalDepObject(
@@ -92,5 +92,5 @@ Maybe<void> EagerBlobObject::TryAllocateBlobBodyMemory(DeviceCtx* device_ctx) {
   return Maybe<void>::Ok();
 }
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/eager_blob_object.h b/oneflow/core/eager/eager_blob_object.h
index f347af61f..b0721b91f 100644
--- a/oneflow/core/eager/eager_blob_object.h
+++ b/oneflow/core/eager/eager_blob_object.h
@@ -23,7 +23,7 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
+namespace vm {
 
 class TensorBuffer {
  public:
@@ -79,7 +79,7 @@ class EagerBlobObject final : public BlobObject {
   Maybe<VmLocalDepObject> compute_local_dep_object_;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_EAGER_BLOB_OBJECT_H_
diff --git a/oneflow/core/eager/eager_instruction.proto b/oneflow/core/eager/eager_instruction.proto
index f5eb7260f..4b52e2abf 100644
--- a/oneflow/core/eager/eager_instruction.proto
+++ b/oneflow/core/eager/eager_instruction.proto
@@ -1,5 +1,5 @@
 syntax = "proto2";
-package oneflow.eager;
+package oneflow.vm;
 
 import "oneflow/core/vm/instruction.proto";
 import "oneflow/core/eager/eager_symbol.proto";
diff --git a/oneflow/core/eager/eager_oneflow.cpp b/oneflow/core/eager/eager_oneflow.cpp
index 20daf029c..cf59c06a8 100644
--- a/oneflow/core/eager/eager_oneflow.cpp
+++ b/oneflow/core/eager/eager_oneflow.cpp
@@ -36,7 +36,7 @@ limitations under the License.
 #include "oneflow/core/common/util.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 namespace {
 
@@ -77,23 +77,22 @@ Maybe<void> EagerOneflow::RunPhysicalInstruction(
 
 Maybe<void> EagerOneflow::RunPhysicalInstruction(
     vm::InstructionMsgList* instruction_list,
-    const eager::cfg::EagerSymbolList& cfg_eager_symbol_list) {
-  eager::EagerSymbolList eager_symbol_list;
+    const vm::cfg::EagerSymbolList& cfg_eager_symbol_list) {
+  vm::EagerSymbolList eager_symbol_list;
   cfg_eager_symbol_list.ToProto(&eager_symbol_list);
   return RunPhysicalInstruction(instruction_list, eager_symbol_list);
 }
 
 Maybe<void> EagerOneflow::RunPhysicalInstruction(vm::InstructionMsgList* instruction_list,
-                                                 const eager::EagerSymbolList& eager_symbol_list) {
+                                                 const vm::EagerSymbolList& eager_symbol_list) {
   for (const auto& eager_symbol : eager_symbol_list.eager_symbol()) {
     JUST(StorageAdd(eager_symbol));
   }
   return vm::Run(instruction_list);
 }
 
-Maybe<void> EagerOneflow::RunLogicalInstruction(
-    vm::InstructionMsgList* instruction_list,
-    const eager::cfg::EagerSymbolList& eager_symbol_list) {
+Maybe<void> EagerOneflow::RunLogicalInstruction(vm::InstructionMsgList* instruction_list,
+                                                const vm::cfg::EagerSymbolList& eager_symbol_list) {
   ClusterInstructionProto cluster_instruction;
   auto* repeated_instruction_proto = cluster_instruction.mutable_eager_instruction()
                                          ->mutable_instruction_list()
@@ -111,5 +110,5 @@ Maybe<void> EagerOneflow::RunLogicalInstruction(
 
 COMMAND(Global<EagerOneflow>::SetAllocated(new EagerOneflow()));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/eager_oneflow.h b/oneflow/core/eager/eager_oneflow.h
index cd42aa28f..e536b853f 100644
--- a/oneflow/core/eager/eager_oneflow.h
+++ b/oneflow/core/eager/eager_oneflow.h
@@ -28,36 +28,26 @@ namespace vm {
 namespace cfg {
 
 class InstructionListProto;
-
-}  // namespace cfg
-}  // namespace vm
-
-namespace eager {
-namespace cfg {
-
 class EagerSymbolList;
 
 }  // namespace cfg
-}  // namespace eager
-
-namespace eager {
 
 class EagerOneflow final {
  public:
   Maybe<void> RunLogicalInstruction(vm::InstructionMsgList* instruction_list,
-                                    const eager::cfg::EagerSymbolList& eager_symbol_list);
+                                    const vm::cfg::EagerSymbolList& eager_symbol_list);
 
   Maybe<void> RunPhysicalInstruction(
       const std::shared_ptr<const ClusterInstructionProto>& cluster_instruction);
 
   Maybe<void> RunPhysicalInstruction(vm::InstructionMsgList* instruction_list,
-                                     const eager::cfg::EagerSymbolList& eager_symbol_list);
+                                     const vm::cfg::EagerSymbolList& eager_symbol_list);
 
   Maybe<void> RunPhysicalInstruction(vm::InstructionMsgList* instruction_list,
-                                     const eager::EagerSymbolList& eager_symbol_list);
+                                     const vm::EagerSymbolList& eager_symbol_list);
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_EAGER_ONEFLOW_H_
diff --git a/oneflow/core/eager/eager_symbol.proto b/oneflow/core/eager/eager_symbol.proto
index 104e3c41b..64f688a4f 100644
--- a/oneflow/core/eager/eager_symbol.proto
+++ b/oneflow/core/eager/eager_symbol.proto
@@ -1,5 +1,5 @@
 syntax = "proto2";
-package oneflow.eager;
+package oneflow.vm;
 
 import "oneflow/core/job/job_conf.proto";
 import "oneflow/core/job/placement.proto";
diff --git a/oneflow/core/eager/init_symbol_instruction_type.cpp b/oneflow/core/eager/init_symbol_instruction_type.cpp
index 9d133affd..9283c683a 100644
--- a/oneflow/core/eager/init_symbol_instruction_type.cpp
+++ b/oneflow/core/eager/init_symbol_instruction_type.cpp
@@ -21,7 +21,7 @@ limitations under the License.
 #include "oneflow/core/operator/op_conf_symbol.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 COMMAND(Global<symbol::Storage<Scope>>::SetAllocated(new symbol::Storage<Scope>()));
 using ScopeInstr = vm::InitSymbolInstructionType<Scope>;
@@ -42,5 +42,5 @@ COMMAND(Global<symbol::Storage<OpNodeSignatureDesc>>::SetAllocated(
 using OpNodeSignatureInstr = vm::InitSymbolInstructionType<OpNodeSignatureDesc>;
 COMMAND(vm::RegisterInstructionType<OpNodeSignatureInstr>("InitOpNodeSignatureDescSymbol"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/init_symbol_instruction_type_test.cpp b/oneflow/core/eager/init_symbol_instruction_type_test.cpp
index 123545531..fda538834 100644
--- a/oneflow/core/eager/init_symbol_instruction_type_test.cpp
+++ b/oneflow/core/eager/init_symbol_instruction_type_test.cpp
@@ -36,7 +36,7 @@ limitations under the License.
 #include "oneflow/core/operator/op_conf_symbol.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 namespace test {
 
 namespace {
@@ -86,5 +86,5 @@ TEST(InitSymbolInstructionType, operator_conf) {
 }
 
 }  // namespace test
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/lazy_ref_blob_object.h b/oneflow/core/eager/lazy_ref_blob_object.h
index f4082e129..19faeb408 100644
--- a/oneflow/core/eager/lazy_ref_blob_object.h
+++ b/oneflow/core/eager/lazy_ref_blob_object.h
@@ -19,7 +19,7 @@ limitations under the License.
 #include "oneflow/core/eager/blob_object.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class LazyRefBlobObject final : public BlobObject {
  public:
@@ -57,7 +57,7 @@ class LazyRefBlobObject final : public BlobObject {
   Blob* ref_blob_ = nullptr;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_LAZY_REF_BLOB_OBJECT_H_
diff --git a/oneflow/core/eager/local_call_opkernel_phy_instr_operand.cpp b/oneflow/core/eager/local_call_opkernel_phy_instr_operand.cpp
index e2977144b..3c6d3314e 100644
--- a/oneflow/core/eager/local_call_opkernel_phy_instr_operand.cpp
+++ b/oneflow/core/eager/local_call_opkernel_phy_instr_operand.cpp
@@ -17,7 +17,7 @@ limitations under the License.
 #include "oneflow/user/kernels/stateful_local_opkernel.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 void LocalCallOpKernelPhyInstrOperand::ForEachConstMirroredObject(
     const std::function<void(vm::MirroredObject* infer, vm::MirroredObject* compute)>& DoEach)
@@ -73,5 +73,5 @@ void LocalCallOpKernelPhyInstrOperand::ForEachMut2MirroredObject(
   }
 }
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/local_call_opkernel_phy_instr_operand.h b/oneflow/core/eager/local_call_opkernel_phy_instr_operand.h
index 52e3723a7..434ddd148 100644
--- a/oneflow/core/eager/local_call_opkernel_phy_instr_operand.h
+++ b/oneflow/core/eager/local_call_opkernel_phy_instr_operand.h
@@ -26,7 +26,7 @@ namespace one {
 class StatefulOpKernel;
 
 using EagerBlobObjectList =
-    std::shared_ptr<const std::vector<std::shared_ptr<eager::EagerBlobObject>>>;
+    std::shared_ptr<const std::vector<std::shared_ptr<vm::EagerBlobObject>>>;
 
 }  // namespace one
 
@@ -36,7 +36,7 @@ class OpKernel;
 
 }  // namespace user_op
 
-namespace eager {
+namespace vm {
 
 class LocalCallOpKernelPhyInstrOperand final : public vm::PhyInstrOperand {
  public:
@@ -84,7 +84,7 @@ class LocalCallOpKernelPhyInstrOperand final : public vm::PhyInstrOperand {
   const user_op::OpKernel* user_opkernel_;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_LOCAL_CALL_OPKERNEL_PHY_INSTR_OPERAND_H_
diff --git a/oneflow/core/eager/opkernel_instruction.msg.h b/oneflow/core/eager/opkernel_instruction.msg.h
index 42fef70f6..41c5a902a 100644
--- a/oneflow/core/eager/opkernel_instruction.msg.h
+++ b/oneflow/core/eager/opkernel_instruction.msg.h
@@ -21,7 +21,7 @@ limitations under the License.
 #include "oneflow/core/vm/instruction_operand.msg.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 // clang-format off
 FLAT_MSG_VIEW_BEGIN(NewOpKernelObjectInstrOperand);
@@ -94,7 +94,7 @@ FLAT_MSG_VIEW_BEGIN(RemoveForeignCallbackInstrOperand);
 FLAT_MSG_VIEW_END(RemoveForeignCallbackInstrOperand);
 // clang-format on
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_OPKERNEL_INSTRUCTION_MSG_H_
diff --git a/oneflow/core/eager/opkernel_instruction_type.cpp b/oneflow/core/eager/opkernel_instruction_type.cpp
index 4691cf443..c0721525b 100644
--- a/oneflow/core/eager/opkernel_instruction_type.cpp
+++ b/oneflow/core/eager/opkernel_instruction_type.cpp
@@ -42,7 +42,7 @@ limitations under the License.
 #include "oneflow/user/kernels/stateful_local_opkernel.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class InitOpKernelObjectInstructionType final : public vm::InstructionType {
  public:
@@ -499,7 +499,7 @@ struct LocalCallOpKernelUtil final {
     DeviceType device_type = JUST(DeviceType4DeviceTag(stream.stream_type().device_tag()));
     const auto& mem_case = JUST(GetMemCase(operand));
     JUST(CheckMemCase(mem_case, device_type, stream.device_id()));
-    JUST(operand->ForEachOutputTensor([&](eager::EagerBlobObject* blob_object) -> Maybe<void> {
+    JUST(operand->ForEachOutputTensor([&](vm::EagerBlobObject* blob_object) -> Maybe<void> {
       CHECK_OR_RETURN(static_cast<bool>(blob_object));
       if (operand->opkernel().need_check_mem_case()) {
         JUST(CheckMemCase(blob_object->mem_case(), device_type, stream.device_id()));
@@ -510,7 +510,7 @@ struct LocalCallOpKernelUtil final {
   }
 
   static inline Maybe<void> InitOutputBlobs(LocalCallOpKernelPhyInstrOperand* operand) {
-    JUST(operand->ForEachOutputTensor([&](eager::EagerBlobObject* blob_object) -> Maybe<void> {
+    JUST(operand->ForEachOutputTensor([&](vm::EagerBlobObject* blob_object) -> Maybe<void> {
       CHECK_OR_RETURN(static_cast<bool>(blob_object));
       JUST(blob_object->InitBlob());
       return Maybe<void>::Ok();
@@ -569,7 +569,7 @@ struct LocalCallOpKernelUtil final {
 
   static inline Maybe<void> AllocateOutputBlobsMemory(LocalCallOpKernelPhyInstrOperand* operand,
                                                       DeviceCtx* device_ctx) {
-    JUST(operand->ForEachOutputTensor([&](eager::EagerBlobObject* blob_object) -> Maybe<void> {
+    JUST(operand->ForEachOutputTensor([&](vm::EagerBlobObject* blob_object) -> Maybe<void> {
       JUST(blob_object->TryAllocateBlobBodyMemory(device_ctx));
       return Maybe<void>::Ok();
     }));
@@ -758,5 +758,5 @@ void FeedBlobInstructionType::Compute(vm::Instruction* instruction) const {
   FeedOrFetchBlob<FeedBlobInstrOperand>(instruction);
 }
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/opkernel_instruction_type.h b/oneflow/core/eager/opkernel_instruction_type.h
index 1b6883a3b..5554b9696 100644
--- a/oneflow/core/eager/opkernel_instruction_type.h
+++ b/oneflow/core/eager/opkernel_instruction_type.h
@@ -22,7 +22,7 @@ limitations under the License.
 #include "oneflow/core/memory/memory_case.pb.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class LocalCallOpKernelInstructionType : public vm::InstructionType {
  public:
@@ -137,7 +137,7 @@ class FeedBlobInstructionType : public vm::InstructionType {
   virtual const char* device_tag() const = 0;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_CALL_OPKERNEL_INSTRUCTION_H_
diff --git a/oneflow/core/eager/opkernel_instruction_type_test.cpp b/oneflow/core/eager/opkernel_instruction_type_test.cpp
index 6f5918d87..68f7f18b6 100644
--- a/oneflow/core/eager/opkernel_instruction_type_test.cpp
+++ b/oneflow/core/eager/opkernel_instruction_type_test.cpp
@@ -37,7 +37,7 @@ limitations under the License.
 #include "oneflow/core/operator/op_node_signature.pb.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 namespace test {
 
 namespace {
@@ -404,5 +404,5 @@ TEST(OpkernelInstructionType, consecutive_stateless_call_opkernel) {
 }
 
 }  // namespace test
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/opkernel_object.cpp b/oneflow/core/eager/opkernel_object.cpp
index 359fb4ea7..21d6644e6 100644
--- a/oneflow/core/eager/opkernel_object.cpp
+++ b/oneflow/core/eager/opkernel_object.cpp
@@ -16,7 +16,7 @@ limitations under the License.
 #include "oneflow/core/eager/opkernel_object.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 Maybe<void> OpKernelObject::ResetOpAndKernel(
     const OpNodeSignatureDesc& op_node_signature, const ParallelContext* parallel_ctx,
@@ -84,5 +84,5 @@ void SystemOpKernelObject::ResetKernel(
   kernel_ = ConstructKernel(job_desc_.get(), kernel_conf, nullptr);
 }
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/opkernel_object.h b/oneflow/core/eager/opkernel_object.h
index 7ddfd0d2f..326adb50f 100644
--- a/oneflow/core/eager/opkernel_object.h
+++ b/oneflow/core/eager/opkernel_object.h
@@ -28,7 +28,7 @@ class KernelCtx;
 class Blob;
 class ParallelContext;
 
-namespace eager {
+namespace vm {
 
 class OpKernelObject : public vm::Object {
  public:
@@ -117,7 +117,7 @@ class SystemOpKernelObject : public vm::Object {
   std::unique_ptr<const Kernel> kernel_;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_OPKERNEL_OBJECT_H_
diff --git a/oneflow/core/eager/release_tensor_instruction_type.cpp b/oneflow/core/eager/release_tensor_instruction_type.cpp
index 855cd58e8..49ae748f3 100644
--- a/oneflow/core/eager/release_tensor_instruction_type.cpp
+++ b/oneflow/core/eager/release_tensor_instruction_type.cpp
@@ -22,7 +22,7 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
+namespace vm {
 
 void ReleaseTensorInstructionType::Infer(vm::Instruction* instruction) const {
   // do nothing
@@ -56,5 +56,5 @@ class GpuReleaseTensorInstructionType final : public ReleaseTensorInstructionTyp
 COMMAND(vm::RegisterInstructionType<GpuReleaseTensorInstructionType>("gpu.ReleaseTensor"));
 #endif
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/release_tensor_instruction_type.h b/oneflow/core/eager/release_tensor_instruction_type.h
index 72fa5ec11..01b2d9498 100644
--- a/oneflow/core/eager/release_tensor_instruction_type.h
+++ b/oneflow/core/eager/release_tensor_instruction_type.h
@@ -20,7 +20,7 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
+namespace vm {
 
 class ReleaseTensorInstructionType : public vm::InstructionType {
  public:
@@ -31,6 +31,6 @@ class ReleaseTensorInstructionType : public vm::InstructionType {
   void Compute(vm::Instruction* instruction) const override;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 #endif  // ONEFLOW_CORE_EAGER_RELEASE_TENSOR_INSTRUCTION_TYPE_H_
diff --git a/oneflow/core/eager/remove_foreign_callback_instruction_type.cpp b/oneflow/core/eager/remove_foreign_callback_instruction_type.cpp
index 2a0c68ea1..19314bfe0 100644
--- a/oneflow/core/eager/remove_foreign_callback_instruction_type.cpp
+++ b/oneflow/core/eager/remove_foreign_callback_instruction_type.cpp
@@ -21,7 +21,7 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
+namespace vm {
 
 class RemoveForeignCallbackInstructionType : public vm::InstructionType {
  public:
@@ -43,6 +43,6 @@ class RemoveForeignCallbackInstructionType : public vm::InstructionType {
 
 COMMAND(vm::RegisterInstructionType<RemoveForeignCallbackInstructionType>("RemoveForeignCallback"));
 
-}  // namespace eager
+}  // namespace vm
 
 }  // namespace oneflow
diff --git a/oneflow/core/eager/transport_blob_instruction_type.cpp b/oneflow/core/eager/transport_blob_instruction_type.cpp
index ce6872c8f..91aa66357 100644
--- a/oneflow/core/eager/transport_blob_instruction_type.cpp
+++ b/oneflow/core/eager/transport_blob_instruction_type.cpp
@@ -23,7 +23,7 @@ limitations under the License.
 #include "oneflow/core/transport/transport.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 namespace {
 
@@ -177,5 +177,5 @@ Maybe<void> ReceiveBlobInstructionType::Receive(int64_t src_machine_id, uint64_t
 COMMAND(vm::RegisterInstructionType<SendBlobInstructionType>("SendBlob"));
 COMMAND(vm::RegisterInstructionType<ReceiveBlobInstructionType>("ReceiveBlob"));
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/eager/transport_blob_instruction_type.h b/oneflow/core/eager/transport_blob_instruction_type.h
index 0454e3bfd..8fe0417fb 100644
--- a/oneflow/core/eager/transport_blob_instruction_type.h
+++ b/oneflow/core/eager/transport_blob_instruction_type.h
@@ -21,7 +21,7 @@ limitations under the License.
 #include "oneflow/core/vm/transport_stream_type.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 
 class SendBlobInstructionType : public vm::InstructionType {
  public:
@@ -65,7 +65,7 @@ class ReceiveBlobInstructionType : public vm::InstructionType {
   Maybe<void> Receive(vm::Instruction* instruction) const;
 };
 
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
 
 #endif  // ONEFLOW_CORE_EAGER_SEND_BLOB_INSTRUCTION_TYPE_H_
diff --git a/oneflow/core/eager/transport_blob_instruction_type_test.cpp b/oneflow/core/eager/transport_blob_instruction_type_test.cpp
index 7bc9f74c3..f51328686 100644
--- a/oneflow/core/eager/transport_blob_instruction_type_test.cpp
+++ b/oneflow/core/eager/transport_blob_instruction_type_test.cpp
@@ -44,7 +44,7 @@ limitations under the License.
 #include "oneflow/core/control/ctrl_util.h"
 
 namespace oneflow {
-namespace eager {
+namespace vm {
 namespace test {
 
 namespace {
@@ -304,5 +304,5 @@ TEST(SendReceiveInstructionType, naive) {
 }
 
 }  // namespace test
-}  // namespace eager
+}  // namespace vm
 }  // namespace oneflow
diff --git a/oneflow/core/framework/instructions_builder.cpp b/oneflow/core/framework/instructions_builder.cpp
index 1a4b23470..db4820d9b 100644
--- a/oneflow/core/framework/instructions_builder.cpp
+++ b/oneflow/core/framework/instructions_builder.cpp
@@ -68,21 +68,20 @@ const char* GetInstrTypeName<cfg::ScopeProto>() {
 }
 
 template<typename T>
-T* MutEagerSymbolConf(eager::cfg::EagerSymbol*);
+T* MutEagerSymbolConf(vm::cfg::EagerSymbol*);
 
 template<>
-cfg::JobConfigProto* MutEagerSymbolConf<cfg::JobConfigProto>(
-    eager::cfg::EagerSymbol* eager_symbol) {
+cfg::JobConfigProto* MutEagerSymbolConf<cfg::JobConfigProto>(vm::cfg::EagerSymbol* eager_symbol) {
   return eager_symbol->mutable_job_conf_symbol();
 }
 
 template<>
-cfg::ParallelConf* MutEagerSymbolConf<cfg::ParallelConf>(eager::cfg::EagerSymbol* eager_symbol) {
+cfg::ParallelConf* MutEagerSymbolConf<cfg::ParallelConf>(vm::cfg::EagerSymbol* eager_symbol) {
   return eager_symbol->mutable_parallel_conf_symbol();
 }
 
 template<>
-cfg::ScopeProto* MutEagerSymbolConf<cfg::ScopeProto>(eager::cfg::EagerSymbol* eager_symbol) {
+cfg::ScopeProto* MutEagerSymbolConf<cfg::ScopeProto>(vm::cfg::EagerSymbol* eager_symbol) {
   return eager_symbol->mutable_scope_symbol();
 }
 
@@ -170,7 +169,7 @@ namespace detail {
 template<typename T>
 Maybe<int64_t> CreateSymbolIdHelper<T>::Call(vm::IdGenerator* id_generator,
                                              vm::InstructionMsgList* instruction_list,
-                                             eager::cfg::EagerSymbolList* eager_symbol_list,
+                                             vm::cfg::EagerSymbolList* eager_symbol_list,
                                              const T& conf) {
   int64_t symbol_id = JUST(NewSymbolId(id_generator, instruction_list));
   {
@@ -193,7 +192,7 @@ template struct CreateSymbolIdHelper<cfg::ScopeProto>;
 template<>
 Maybe<int64_t> CreateSymbolIdHelper<cfg::ParallelConf>::Call(
     vm::IdGenerator* id_generator, vm::InstructionMsgList* instruction_list,
-    eager::cfg::EagerSymbolList* eager_symbol_list, const cfg::ParallelConf& conf) {
+    vm::cfg::EagerSymbolList* eager_symbol_list, const cfg::ParallelConf& conf) {
   int64_t symbol_id = JUST(id_generator->NewSymbolId());
   {
     ObjectMsgPtr<vm::InstructionMsg> instruction =
@@ -651,7 +650,7 @@ Maybe<void> InstructionsBuilder::LocalCallOpKernel(
     const std::shared_ptr<const ParallelDesc>& parallel_desc_sym) {
   ObjectMsgPtr<vm::InstructionMsg> instruction =
       ObjectMsgPtr<vm::InstructionMsg>::New(parallel_desc_sym->device_tag() + ".LocalCallOpKernel");
-  auto phy_instr_operand = std::make_shared<eager::LocalCallOpKernelPhyInstrOperand>(
+  auto phy_instr_operand = std::make_shared<vm::LocalCallOpKernelPhyInstrOperand>(
       opkernel, input_eager_blob_objects, output_eager_blob_objects);
   instruction->set_parallel_desc_symbol_id(JUST(parallel_desc_sym->symbol_id()));
   *instruction->mutable_phy_instr_operand() = phy_instr_operand;
@@ -746,7 +745,7 @@ Maybe<void> InstructionsBuilder::InitStringSymbol(int64_t symbol_id, std::string
       ObjectMsgPtr<vm::InstructionMsg>::New("InitStringSymbol");
   instruction->add_init_symbol_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.set_string_symbol(str);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -759,7 +758,7 @@ Maybe<void> InstructionsBuilder::InitJobConfSymbol(
       ObjectMsgPtr<vm::InstructionMsg>::New("InitJobDescSymbol");
   instruction->add_init_symbol_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.mutable_job_conf_symbol()->CopyFrom(*job_conf);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -772,7 +771,7 @@ Maybe<void> InstructionsBuilder::NewParallelConfSymbol(
       ObjectMsgPtr<vm::InstructionMsg>::New("NewParallelDescSymbol");
   instruction->add_int64_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.mutable_parallel_conf_symbol()->CopyFrom(*parallel_conf);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -785,7 +784,7 @@ Maybe<void> InstructionsBuilder::NewScopeSymbol(
       ObjectMsgPtr<vm::InstructionMsg>::New("InitScopeSymbol");
   instruction->add_init_symbol_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.mutable_scope_symbol()->CopyFrom(*scope_proto);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -813,7 +812,7 @@ Maybe<void> InstructionsBuilder::InitOpNodeSignatureDescSymbol(
       ObjectMsgPtr<vm::InstructionMsg>::New("InitOpNodeSignatureDescSymbol");
   instruction->add_init_symbol_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.mutable_op_node_signature_symbol()->CopyFrom(*op_node_signature_sym);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -826,7 +825,7 @@ Maybe<void> InstructionsBuilder::InitOpConfSymbol(
       ObjectMsgPtr<vm::InstructionMsg>::New("InitOperatorConfSymbol");
   instruction->add_init_symbol_operand(symbol_id);
   instruction_list_->PushBack(instruction.Mutable());
-  eager::cfg::EagerSymbol eager_symbol;
+  vm::cfg::EagerSymbol eager_symbol;
   eager_symbol.set_symbol_id(symbol_id);
   eager_symbol.mutable_op_conf_symbol()->CopyFrom(*op_conf);
   eager_symbol_list_->mutable_eager_symbol()->Add()->CopyFrom(eager_symbol);
@@ -869,7 +868,7 @@ Maybe<void> InstructionsBuilder::FeedBlob(
 }
 
 Maybe<void> InstructionsBuilder::ReleaseTensor(
-    const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+    const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
     const std::shared_ptr<const ParallelDesc>& parallel_desc) {
   std::string instr_name = parallel_desc->device_tag() + ".ReleaseTensor";
   ObjectMsgPtr<vm::InstructionMsg> instruction = ObjectMsgPtr<vm::InstructionMsg>::New(instr_name);
@@ -889,8 +888,7 @@ Maybe<void> InstructionsBuilder::AccessBlobByCallback(
     const std::function<void(uint64_t)>& callback, const std::string& modifier) {
   std::string instr_name = tensor->parallel_desc()->device_tag() + ".AccessBlobByCallback";
   ObjectMsgPtr<vm::InstructionMsg> instruction = ObjectMsgPtr<vm::InstructionMsg>::New(instr_name);
-  const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object =
-      JUST(tensor->eager_blob_object());
+  const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object = JUST(tensor->eager_blob_object());
   const std::shared_ptr<VmLocalDepObject>& infer_local_dep_object =
       JUST(tensor->infer_local_dep_object());
   const std::shared_ptr<VmLocalDepObject>& compute_local_dep_object =
@@ -903,7 +901,7 @@ Maybe<void> InstructionsBuilder::AccessBlobByCallback(
 }
 
 Maybe<void> InstructionsBuilder::ReadTensorShapeByCallback(
-    const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+    const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
     const std::function<void(const std::shared_ptr<const Shape>&)>& callback) {
   std::string instr_name = "ReadTensorShapeByCallback";
   ObjectMsgPtr<vm::InstructionMsg> instruction = ObjectMsgPtr<vm::InstructionMsg>::New(instr_name);
@@ -1561,19 +1559,19 @@ Maybe<void> LogicalRun(const std::function<void(InstructionsBuilder*)>& Build) {
   InstructionsBuilder instructions_builder(id_generator, instruction_list.get(),
                                            eager_symbol_list.get(), _ReleaseLogicalObject);
   Build(&instructions_builder);
-  JUST(Global<eager::EagerOneflow>::Get()->RunLogicalInstruction(
+  JUST(Global<vm::EagerOneflow>::Get()->RunLogicalInstruction(
       instructions_builder.mut_instruction_list(), instructions_builder.eager_symbol_list()));
   return Maybe<void>::Ok();
 }
 
 Maybe<void> PhysicalRun(const std::function<void(InstructionsBuilder*)>& Build) {
   vm::InstructionMsgList instruction_list;
-  eager::cfg::EagerSymbolList eager_symbol_list;
+  vm::cfg::EagerSymbolList eager_symbol_list;
   InstructionsBuilder instructions_builder(std::shared_ptr<vm::PhysicalIdGenerator>(),
                                            &instruction_list, &eager_symbol_list,
                                            _ReleasePhysicalObject);
   Build(&instructions_builder);
-  JUST(Global<eager::EagerOneflow>::Get()->RunPhysicalInstruction(
+  JUST(Global<vm::EagerOneflow>::Get()->RunPhysicalInstruction(
       instructions_builder.mut_instruction_list(), instructions_builder.eager_symbol_list()));
   return Maybe<void>::Ok();
 }
diff --git a/oneflow/core/framework/instructions_builder.h b/oneflow/core/framework/instructions_builder.h
index 859aa087f..5dd0d4ffd 100644
--- a/oneflow/core/framework/instructions_builder.h
+++ b/oneflow/core/framework/instructions_builder.h
@@ -53,7 +53,7 @@ template<typename T>
 struct CreateSymbolIdHelper {
   static Maybe<int64_t> Call(vm::IdGenerator* id_generator,
                              vm::InstructionMsgList* instruction_list,
-                             eager::cfg::EagerSymbolList* eager_symbol_list, const T& conf);
+                             vm::cfg::EagerSymbolList* eager_symbol_list, const T& conf);
 };
 
 }  // namespace detail
@@ -64,14 +64,14 @@ class InstructionsBuilder : public std::enable_shared_from_this<InstructionsBuil
   InstructionsBuilder(InstructionsBuilder&&) = delete;
   explicit InstructionsBuilder(const std::shared_ptr<vm::IdGenerator>& id_generator,
                                vm::InstructionMsgList* instruction_list,
-                               eager::cfg::EagerSymbolList* eager_symbol_list)
+                               vm::cfg::EagerSymbolList* eager_symbol_list)
       : id_generator_(id_generator),
         instruction_list_(instruction_list),
         eager_symbol_list_(eager_symbol_list),
         release_object_([](compatible_py::Object*) {}) {}
   InstructionsBuilder(const std::shared_ptr<vm::IdGenerator>& id_generator,
                       vm::InstructionMsgList* instruction_list,
-                      eager::cfg::EagerSymbolList* eager_symbol_list,
+                      vm::cfg::EagerSymbolList* eager_symbol_list,
                       const std::function<void(compatible_py::Object*)>& release_object)
       : id_generator_(id_generator),
         instruction_list_(instruction_list),
@@ -84,7 +84,7 @@ class InstructionsBuilder : public std::enable_shared_from_this<InstructionsBuil
 
   const std::shared_ptr<vm::IdGenerator>& id_generator() const { return id_generator_; }
   const vm::InstructionMsgList& instruction_list() const { return *instruction_list_; }
-  const eager::cfg::EagerSymbolList& eager_symbol_list() const { return *eager_symbol_list_; }
+  const vm::cfg::EagerSymbolList& eager_symbol_list() const { return *eager_symbol_list_; }
 
   const std::function<void(compatible_py::Object*)>& object_releaser() const {
     return release_object_;
@@ -118,7 +118,7 @@ class InstructionsBuilder : public std::enable_shared_from_this<InstructionsBuil
       const std::shared_ptr<compatible_py::BlobObject>& blob_object,
       const std::shared_ptr<compatible_py::OpArgParallelAttribute>& op_arg_parallel_attr);
 
-  Maybe<void> ReleaseTensor(const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+  Maybe<void> ReleaseTensor(const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
                             const std::shared_ptr<const ParallelDesc>& parallel_desc);
 
   Maybe<void> AccessBlobByCallback(const std::shared_ptr<one::MirroredTensor>& tensor,
@@ -126,7 +126,7 @@ class InstructionsBuilder : public std::enable_shared_from_this<InstructionsBuil
                                    const std::string& modifier);
 
   Maybe<void> ReadTensorShapeByCallback(
-      const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+      const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
       const std::function<void(const std::shared_ptr<const Shape>&)>& callback);
 
   Maybe<void> InferRankFrontSeqCallback(const std::function<void()>& callback);
@@ -433,13 +433,13 @@ class InstructionsBuilder : public std::enable_shared_from_this<InstructionsBuil
                                                  mut_eager_symbol_list(), conf);
   }
 
-  eager::cfg::EagerSymbolList* mut_eager_symbol_list() { return eager_symbol_list_; }
+  vm::cfg::EagerSymbolList* mut_eager_symbol_list() { return eager_symbol_list_; }
 
   vm::IdGenerator* mut_id_generator() { return id_generator_.get(); }
 
   std::shared_ptr<vm::IdGenerator> id_generator_;
   vm::InstructionMsgList* instruction_list_;
-  eager::cfg::EagerSymbolList* eager_symbol_list_;
+  vm::cfg::EagerSymbolList* eager_symbol_list_;
   std::function<void(compatible_py::Object*)> release_object_;
 };
 
diff --git a/oneflow/core/framework/interpreter.cpp b/oneflow/core/framework/interpreter.cpp
index e6326cebd..dcb28d017 100644
--- a/oneflow/core/framework/interpreter.cpp
+++ b/oneflow/core/framework/interpreter.cpp
@@ -30,7 +30,7 @@ Maybe<void> LogicalInterpreter::Run(const std::function<Maybe<void>(Instructions
     CHECK(instructions_builder.eager_symbol_list().eager_symbol().empty());
     return Maybe<void>::Ok();
   }
-  return Global<eager::EagerOneflow>::Get()->RunLogicalInstruction(
+  return Global<vm::EagerOneflow>::Get()->RunLogicalInstruction(
       instructions_builder.mut_instruction_list(), instructions_builder.eager_symbol_list());
 }
 
@@ -46,7 +46,7 @@ Maybe<void> PhysicalInterpreter::Run(
     CHECK(instructions_builder.eager_symbol_list().eager_symbol().empty());
     return Maybe<void>::Ok();
   }
-  return Global<eager::EagerOneflow>::Get()->RunPhysicalInstruction(
+  return Global<vm::EagerOneflow>::Get()->RunPhysicalInstruction(
       instructions_builder.mut_instruction_list(), instructions_builder.eager_symbol_list());
 }
 
diff --git a/oneflow/core/framework/interpreter.h b/oneflow/core/framework/interpreter.h
index 63ab77947..b9c937473 100644
--- a/oneflow/core/framework/interpreter.h
+++ b/oneflow/core/framework/interpreter.h
@@ -39,12 +39,12 @@ class Interpreter {
 
   const std::shared_ptr<vm::IdGenerator>& mut_id_generator() { return id_generator_; }
   vm::InstructionMsgList* mut_instruction_list() { return &instruction_list_; }
-  eager::cfg::EagerSymbolList* mut_eager_symbol_list() { return &eager_symbol_list_; }
+  vm::cfg::EagerSymbolList* mut_eager_symbol_list() { return &eager_symbol_list_; }
 
  private:
   std::shared_ptr<vm::IdGenerator> id_generator_;
   vm::InstructionMsgList instruction_list_;
-  eager::cfg::EagerSymbolList eager_symbol_list_;
+  vm::cfg::EagerSymbolList eager_symbol_list_;
 };
 
 class LogicalInterpreter : public Interpreter {
diff --git a/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.cpp b/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.cpp
index 0e8dbdd45..bffe17bab 100644
--- a/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.cpp
+++ b/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.cpp
@@ -41,20 +41,19 @@ std::shared_ptr<Device> GetDefaultDevice() {
 }
 }  // namespace
 
-Maybe<void> NaiveInterpret(
-    const UserOpExpr& user_op_expr,
-    const std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>>&
-        input_eager_blob_objects,
-    const std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>>&
-        output_eager_blob_objects,
-    const AttrValueMap& attrs, const std::shared_ptr<const Device> device,
-    std::shared_ptr<const ParallelDesc> parallel_desc) {
+Maybe<void> NaiveInterpret(const UserOpExpr& user_op_expr,
+                           const std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>>&
+                               input_eager_blob_objects,
+                           const std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>>&
+                               output_eager_blob_objects,
+                           const AttrValueMap& attrs, const std::shared_ptr<const Device> device,
+                           std::shared_ptr<const ParallelDesc> parallel_desc) {
   const auto kernel = JUST(user_op_expr.MutKernel4Device(*device));
   const auto mem_case = kernel->mem_case();
   for (int i = 0; i < output_eager_blob_objects->size(); i++) {
-    auto eager_blob_object = std::make_shared<eager::EagerBlobObject>(
+    auto eager_blob_object = std::make_shared<vm::EagerBlobObject>(
         mem_case, std::make_shared<Shape>(), DataType::kInvalidDataType,
-        std::make_shared<eager::TensorBuffer>(), parallel_desc);
+        std::make_shared<vm::TensorBuffer>(), parallel_desc);
     output_eager_blob_objects->at(i) = eager_blob_object;
   }
   kernel->InferDataType(input_eager_blob_objects, output_eager_blob_objects);
@@ -68,13 +67,13 @@ Maybe<void> NaiveInterpret(
   return Maybe<void>::Ok();
 }
 
-Maybe<eager::EagerBlobObject> GenerateAllocatedEagerBlobObject(DataType data_type,
-                                                               const Shape& shape) {
+Maybe<vm::EagerBlobObject> GenerateAllocatedEagerBlobObject(DataType data_type,
+                                                            const Shape& shape) {
   const auto zeros_expr = JUST(op_expr_helper::ZerosOp(shape, data_type));
-  std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>> input_eager_blob_objects =
-      std::make_shared<std::vector<std::shared_ptr<eager::EagerBlobObject>>>(0);
-  std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>> output_eager_blob_objects =
-      std::make_shared<std::vector<std::shared_ptr<eager::EagerBlobObject>>>(1);
+  std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>> input_eager_blob_objects =
+      std::make_shared<std::vector<std::shared_ptr<vm::EagerBlobObject>>>(0);
+  std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>> output_eager_blob_objects =
+      std::make_shared<std::vector<std::shared_ptr<vm::EagerBlobObject>>>(1);
 
   const auto device = GetDefaultDevice();
   std::shared_ptr<const ParallelDesc> parallel_desc =
@@ -97,13 +96,13 @@ static Maybe<void> NaiveInterpret(const BuiltinOpExpr& op_expr, const TensorTupl
   std::shared_ptr<const ParallelDesc> parallel_desc =
       JUST(Device::MakeParallelDescByDevice(*device));
   const auto& user_op_expr = dynamic_cast<const UserOpExpr&>(op_expr);
-  std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>> input_eager_blob_objects =
-      std::make_shared<std::vector<std::shared_ptr<eager::EagerBlobObject>>>(inputs.size());
+  std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>> input_eager_blob_objects =
+      std::make_shared<std::vector<std::shared_ptr<vm::EagerBlobObject>>>(inputs.size());
   for (int i = 0; i < inputs.size(); i++) {
     input_eager_blob_objects->at(i) = JUST(inputs.at(i)->eager_blob_object());
   }
-  std::shared_ptr<std::vector<std::shared_ptr<eager::EagerBlobObject>>> output_eager_blob_objects =
-      std::make_shared<std::vector<std::shared_ptr<eager::EagerBlobObject>>>(outputs->size());
+  std::shared_ptr<std::vector<std::shared_ptr<vm::EagerBlobObject>>> output_eager_blob_objects =
+      std::make_shared<std::vector<std::shared_ptr<vm::EagerBlobObject>>>(outputs->size());
   NaiveInterpret(user_op_expr, input_eager_blob_objects, output_eager_blob_objects, attrs, device,
                  parallel_desc);
   for (int i = 0; i < outputs->size(); ++i) {
diff --git a/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.h b/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.h
index 80129c353..75b14135b 100644
--- a/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.h
+++ b/oneflow/core/framework/op_interpreter/eager_mirrored_op_interpreter.h
@@ -17,7 +17,6 @@ limitations under the License.
 
 namespace oneflow {
 namespace one {
-Maybe<eager::EagerBlobObject> GenerateAllocatedEagerBlobObject(DataType data_type,
-                                                               const Shape& shape);
+Maybe<vm::EagerBlobObject> GenerateAllocatedEagerBlobObject(DataType data_type, const Shape& shape);
 }
 }  // namespace oneflow
diff --git a/oneflow/core/framework/op_interpreter/op_interpreter_util.cpp b/oneflow/core/framework/op_interpreter/op_interpreter_util.cpp
index e73112c02..54abf6ef7 100644
--- a/oneflow/core/framework/op_interpreter/op_interpreter_util.cpp
+++ b/oneflow/core/framework/op_interpreter/op_interpreter_util.cpp
@@ -171,7 +171,7 @@ using Bn2BlobObjectMap = HashMap<std::string, std::shared_ptr<compatible_py::Blo
 }
 
 /*static*/ Maybe<Tensor> OpInterpUtil::BuildEagerMirroredTensorFromEagerBlobObject(
-    const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+    const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
     const std::shared_ptr<const Device>& device) {
   auto tensor = MirroredTensor::MakeEagerTensor(eager_blob_object, device,
                                                 /* requires_grad */ false, /* is_leaf */ false,
diff --git a/oneflow/core/framework/op_interpreter/op_interpreter_util.h b/oneflow/core/framework/op_interpreter/op_interpreter_util.h
index 123f018ed..6a08a2676 100644
--- a/oneflow/core/framework/op_interpreter/op_interpreter_util.h
+++ b/oneflow/core/framework/op_interpreter/op_interpreter_util.h
@@ -67,7 +67,7 @@ class OpInterpUtil {
       const std::shared_ptr<compatible_py::BlobObject>& blob_object);
 
   static Maybe<Tensor> BuildEagerMirroredTensorFromEagerBlobObject(
-      const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+      const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
       const std::shared_ptr<const Device>& device);
 };
 
diff --git a/oneflow/core/framework/session_util.cpp b/oneflow/core/framework/session_util.cpp
index c5fce9b6e..05ca35f1b 100644
--- a/oneflow/core/framework/session_util.cpp
+++ b/oneflow/core/framework/session_util.cpp
@@ -47,7 +47,7 @@ Maybe<void> SetDefaultSessionId(int64_t val) {
 Session::Session(int64_t id)
     : id_(id), is_mirrored_strategy_enabled_stack_(new std::vector<bool>()) {
   instruction_list_.reset(new vm::InstructionMsgList());
-  eager_symbol_list_.reset(new eager::cfg::EagerSymbolList());
+  eager_symbol_list_.reset(new vm::cfg::EagerSymbolList());
 }
 
 int64_t Session::id() const { return id_; }
@@ -56,7 +56,7 @@ const std::shared_ptr<vm::InstructionMsgList>& Session::instruction_list() const
   return instruction_list_;
 }
 
-std::shared_ptr<eager::cfg::EagerSymbolList> Session::eager_symbol_list() const {
+std::shared_ptr<vm::cfg::EagerSymbolList> Session::eager_symbol_list() const {
   return eager_symbol_list_;
 }
 
diff --git a/oneflow/core/framework/session_util.h b/oneflow/core/framework/session_util.h
index 3ffe9bd66..c6b14258b 100644
--- a/oneflow/core/framework/session_util.h
+++ b/oneflow/core/framework/session_util.h
@@ -32,7 +32,7 @@ class Session {
 
   int64_t id() const;
   const std::shared_ptr<vm::InstructionMsgList>& instruction_list() const;
-  std::shared_ptr<eager::cfg::EagerSymbolList> eager_symbol_list() const;
+  std::shared_ptr<vm::cfg::EagerSymbolList> eager_symbol_list() const;
 
   std::shared_ptr<const std::vector<bool>> is_mirrored_strategy_enabled_stack() const {
     return is_mirrored_strategy_enabled_stack_;
@@ -45,7 +45,7 @@ class Session {
  private:
   int64_t id_;
   std::shared_ptr<vm::InstructionMsgList> instruction_list_;
-  std::shared_ptr<eager::cfg::EagerSymbolList> eager_symbol_list_;
+  std::shared_ptr<vm::cfg::EagerSymbolList> eager_symbol_list_;
   std::shared_ptr<std::vector<bool>> is_mirrored_strategy_enabled_stack_;
 };
 
diff --git a/oneflow/core/framework/tensor.cpp b/oneflow/core/framework/tensor.cpp
index 8b5750fd5..6ba8841df 100644
--- a/oneflow/core/framework/tensor.cpp
+++ b/oneflow/core/framework/tensor.cpp
@@ -42,7 +42,7 @@ std::shared_ptr<MirroredTensor> MirroredTensor::MakeTensor(
 }
 
 std::shared_ptr<MirroredTensor> MirroredTensor::MakeEagerTensor(
-    const std::shared_ptr<eager::EagerBlobObject> eager_blob_object,
+    const std::shared_ptr<vm::EagerBlobObject> eager_blob_object,
     const std::shared_ptr<const Device>& device, bool requires_grad, bool is_leaf,
     bool retain_grad) {
   std::shared_ptr<MirroredTensorImpl> impl = std::make_shared<EagerMirroredTensorImpl>(
diff --git a/oneflow/core/framework/tensor.h b/oneflow/core/framework/tensor.h
index dd92329ca..ebf0d4795 100644
--- a/oneflow/core/framework/tensor.h
+++ b/oneflow/core/framework/tensor.h
@@ -73,7 +73,7 @@ class Tensor {
   virtual bool is_lazy() const = 0;
 
   // Getters valid only for EagerMirroredTensor
-  virtual Maybe<eager::EagerBlobObject> eager_blob_object() const = 0;
+  virtual Maybe<vm::EagerBlobObject> eager_blob_object() const = 0;
   virtual Maybe<VmLocalDepObject> infer_local_dep_object() const = 0;
   virtual Maybe<VmLocalDepObject> compute_local_dep_object() const = 0;
 
@@ -185,7 +185,7 @@ class MirroredTensor final : public TensorIf<MirroredTensor> {
   std::shared_ptr<MirroredTensor> data() const;
 
   // Getters valid only for EagerMirroredTensor
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override {
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override {
     return impl_->eager_blob_object();
   }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override {
@@ -204,7 +204,7 @@ class MirroredTensor final : public TensorIf<MirroredTensor> {
   Maybe<void> set_parallel_desc(const std::shared_ptr<const ParallelDesc>& parallel_desc) override {
     return impl_->set_parallel_desc(parallel_desc);
   }
-  Maybe<void> set_eager_blob_object(std::shared_ptr<eager::EagerBlobObject> eager_blob_object) {
+  Maybe<void> set_eager_blob_object(std::shared_ptr<vm::EagerBlobObject> eager_blob_object) {
     return impl_->set_eager_blob_object(eager_blob_object);
   }
 
@@ -243,7 +243,7 @@ class MirroredTensor final : public TensorIf<MirroredTensor> {
                                                     bool retain_grad);
 
   static std::shared_ptr<MirroredTensor> MakeEagerTensor(
-      const std::shared_ptr<eager::EagerBlobObject> eager_blob_object,
+      const std::shared_ptr<vm::EagerBlobObject> eager_blob_object,
       const std::shared_ptr<const Device>& device, bool requires_grad, bool is_leaf,
       bool retain_grad);
 
@@ -277,7 +277,7 @@ class ConsistentTensor final : public TensorIf<ConsistentTensor> {
   std::shared_ptr<ConsistentTensor> data() const;
 
   // Getters valid only for EagerMirroredTensor
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override {
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override {
     return impl_->eager_blob_object();
   }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override {
diff --git a/oneflow/core/framework/tensor_impl.cpp b/oneflow/core/framework/tensor_impl.cpp
index 411f39514..e9e1c9cb4 100644
--- a/oneflow/core/framework/tensor_impl.cpp
+++ b/oneflow/core/framework/tensor_impl.cpp
@@ -71,7 +71,7 @@ Maybe<void> EagerConsistentTensorImpl::set_blob_object(
 }
 
 EagerMirroredTensorImpl::EagerMirroredTensorImpl(
-    const std::shared_ptr<eager::EagerBlobObject> eager_blob_object,
+    const std::shared_ptr<vm::EagerBlobObject> eager_blob_object,
     const std::shared_ptr<const Device>& device, bool requires_grad, bool is_leaf, bool retain_grad)
     : MirroredTensorImpl(device, requires_grad, is_leaf, retain_grad),
       eager_blob_object_(eager_blob_object) {
@@ -79,7 +79,7 @@ EagerMirroredTensorImpl::EagerMirroredTensorImpl(
   tensor_storage_ = std::make_shared<TensorStorage>(eager_blob_object->tensor_buffer());
   const auto& parallel_desc = this->parallel_desc();
   tensor_storage_->set_releaser_hook(
-      [eager_blob_object, parallel_desc](const std::shared_ptr<eager::TensorBuffer>&) {
+      [eager_blob_object, parallel_desc](const std::shared_ptr<vm::TensorBuffer>&) {
         PhysicalRun([&](InstructionsBuilder* builder) {
           builder->ReleaseTensor(eager_blob_object, parallel_desc);
         });
diff --git a/oneflow/core/framework/tensor_impl.h b/oneflow/core/framework/tensor_impl.h
index dcde23cf9..2f1e9df12 100644
--- a/oneflow/core/framework/tensor_impl.h
+++ b/oneflow/core/framework/tensor_impl.h
@@ -38,9 +38,9 @@ class Distribute;
 class Device;
 class DType;
 
-namespace eager {
+namespace vm {
 class EagerBlobObject;
-}
+}  // namespace vm
 
 namespace one {
 
@@ -58,7 +58,7 @@ class TensorImpl {
   virtual bool is_lazy() const = 0;
 
   // Getters valid only for EagerMirroredTensorImpl
-  virtual Maybe<eager::EagerBlobObject> eager_blob_object() const = 0;
+  virtual Maybe<vm::EagerBlobObject> eager_blob_object() const = 0;
   virtual Maybe<VmLocalDepObject> infer_local_dep_object() const = 0;
   virtual Maybe<VmLocalDepObject> compute_local_dep_object() const = 0;
 
@@ -120,7 +120,7 @@ class MirroredTensorImpl : public TensorImpl {
   Maybe<void> set_parallel_desc(const std::shared_ptr<const ParallelDesc>& parallel_desc) override;
   Maybe<void> set_device(const std::shared_ptr<const Device>& device);
   virtual Maybe<void> set_eager_blob_object(
-      std::shared_ptr<eager::EagerBlobObject> eager_blob_object) = 0;
+      std::shared_ptr<vm::EagerBlobObject> eager_blob_object) = 0;
 
  protected:
   MirroredTensorImpl(const std::shared_ptr<const Device>& device, bool requires_grad, bool is_leaf,
@@ -178,7 +178,7 @@ class LazyMirroredTensorImpl final : public MirroredTensorImpl {
   bool is_lazy() const override { return true; }
 
   // Getters valid only for EagerMirroredTensorImpl
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> compute_local_dep_object() const override { OF_UNIMPLEMENTED(); }
 
@@ -186,7 +186,7 @@ class LazyMirroredTensorImpl final : public MirroredTensorImpl {
   void set_shape(const std::shared_ptr<const Shape>& shape) override { shape_ = shape; }
   void set_dtype(const std::shared_ptr<const DType>& dtype) override { dtype_ = dtype; }
   Maybe<void> set_eager_blob_object(
-      std::shared_ptr<eager::EagerBlobObject> eager_blob_object) override {
+      std::shared_ptr<vm::EagerBlobObject> eager_blob_object) override {
     return Error::Unimplemented();
   }
 
@@ -209,7 +209,7 @@ class LazyMirroredTensorImpl final : public MirroredTensorImpl {
 class EagerMirroredTensorImpl final : public MirroredTensorImpl {
  public:
   OF_DISALLOW_COPY_AND_MOVE(EagerMirroredTensorImpl);
-  EagerMirroredTensorImpl(const std::shared_ptr<eager::EagerBlobObject> eager_blob_object,
+  EagerMirroredTensorImpl(const std::shared_ptr<vm::EagerBlobObject> eager_blob_object,
                           const std::shared_ptr<const Device>& device, bool requires_grad,
                           bool is_leaf, bool retain_grad);
   ~EagerMirroredTensorImpl() override;
@@ -220,7 +220,7 @@ class EagerMirroredTensorImpl final : public MirroredTensorImpl {
   bool is_lazy() const override { return false; }
 
   // Getters valid only for EagerMirroredTensorImpl
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override { return eager_blob_object_; }
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override { return eager_blob_object_; }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override;
   Maybe<VmLocalDepObject> compute_local_dep_object() const override;
 
@@ -229,7 +229,7 @@ class EagerMirroredTensorImpl final : public MirroredTensorImpl {
   void set_dtype(const std::shared_ptr<const DType>& dtype) override { UNIMPLEMENTED(); }
   TensorStorage* mut_tensor_storage() { return tensor_storage_.get(); }
   Maybe<void> set_eager_blob_object(
-      std::shared_ptr<eager::EagerBlobObject> eager_blob_object) override {
+      std::shared_ptr<vm::EagerBlobObject> eager_blob_object) override {
     eager_blob_object_ = eager_blob_object;
     return Maybe<void>::Ok();
   }
@@ -247,7 +247,7 @@ class EagerMirroredTensorImpl final : public MirroredTensorImpl {
   std::shared_ptr<const Shape> shape_;
   std::shared_ptr<const DType> dtype_;
   std::shared_ptr<TensorStorage> tensor_storage_;
-  std::shared_ptr<eager::EagerBlobObject> eager_blob_object_;
+  std::shared_ptr<vm::EagerBlobObject> eager_blob_object_;
 };
 
 class LazyConsistentTensorImpl final : public ConsistentTensorImpl {
@@ -273,7 +273,7 @@ class LazyConsistentTensorImpl final : public ConsistentTensorImpl {
   bool is_lazy() const override { return true; }
 
   // Getters valid only for EagerMirroredTensorImpl
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> compute_local_dep_object() const override { OF_UNIMPLEMENTED(); }
 
@@ -324,7 +324,7 @@ class EagerConsistentTensorImpl final : public ConsistentTensorImpl {
   bool is_lazy() const override { return false; }
 
   // Getters valid only for EagerMirroredTensorImpl
-  Maybe<eager::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
+  Maybe<vm::EagerBlobObject> eager_blob_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> infer_local_dep_object() const override { OF_UNIMPLEMENTED(); }
   Maybe<VmLocalDepObject> compute_local_dep_object() const override { OF_UNIMPLEMENTED(); }
 
diff --git a/oneflow/core/framework/tensor_storage.cpp b/oneflow/core/framework/tensor_storage.cpp
index 6aed5b69d..2fa09cc74 100644
--- a/oneflow/core/framework/tensor_storage.cpp
+++ b/oneflow/core/framework/tensor_storage.cpp
@@ -22,9 +22,9 @@ namespace oneflow {
 namespace one {
 
 TensorStorage::TensorStorage(const std::shared_ptr<const ParallelDesc>& parallel_desc)
-    : buffer_(std::make_shared<eager::TensorBuffer>()) {}
+    : buffer_(std::make_shared<vm::TensorBuffer>()) {}
 
-TensorStorage::TensorStorage(const std::shared_ptr<eager::TensorBuffer>& tensor_buffer)
+TensorStorage::TensorStorage(const std::shared_ptr<vm::TensorBuffer>& tensor_buffer)
     : buffer_(tensor_buffer) {}
 
 TensorStorage::~TensorStorage() {
diff --git a/oneflow/core/framework/tensor_storage.h b/oneflow/core/framework/tensor_storage.h
index 569f6e3ff..5c4a412db 100644
--- a/oneflow/core/framework/tensor_storage.h
+++ b/oneflow/core/framework/tensor_storage.h
@@ -23,30 +23,30 @@ namespace oneflow {
 
 class ParallelDesc;
 
-namespace eager {
+namespace vm {
 
 class TensorBuffer;
 
-}
+}  // namespace vm
 
 namespace one {
 
 class TensorStorage final {
  public:
   explicit TensorStorage(const std::shared_ptr<const ParallelDesc>& parallel_desc);
-  explicit TensorStorage(const std::shared_ptr<eager::TensorBuffer>& tensor_buffer);
+  explicit TensorStorage(const std::shared_ptr<vm::TensorBuffer>& tensor_buffer);
   ~TensorStorage();
 
-  using ReleaserHookT = std::function<void(const std::shared_ptr<eager::TensorBuffer>&)>;
+  using ReleaserHookT = std::function<void(const std::shared_ptr<vm::TensorBuffer>&)>;
 
-  const std::shared_ptr<eager::TensorBuffer> buffer() const { return buffer_; }
+  const std::shared_ptr<vm::TensorBuffer> buffer() const { return buffer_; }
 
   void set_releaser_hook(const ReleaserHookT& releaser_hook) {
     releaser_hook_ = std::make_shared<ReleaserHookT>(releaser_hook);
   }
 
  private:
-  std::shared_ptr<eager::TensorBuffer> buffer_;
+  std::shared_ptr<vm::TensorBuffer> buffer_;
   std::shared_ptr<ReleaserHookT> releaser_hook_;
 };
 
diff --git a/oneflow/core/job/cluster.cpp b/oneflow/core/job/cluster.cpp
index 7872d3a23..03fe2a091 100644
--- a/oneflow/core/job/cluster.cpp
+++ b/oneflow/core/job/cluster.cpp
@@ -75,7 +75,7 @@ Maybe<void> Cluster::WorkerLoop() {
         ClusterInstruction::NewSessionBarrier();
         AsyncRunLazyJobSet(&lazy_runtime_thread);
       } else if (mut_cluster_instruction->has_eager_instruction()) {
-        Global<eager::EagerOneflow>::Get()->RunPhysicalInstruction(
+        Global<vm::EagerOneflow>::Get()->RunPhysicalInstruction(
             std::const_pointer_cast<const ClusterInstructionProto>(mut_cluster_instruction));
       } else {
         OF_UNIMPLEMENTED();
diff --git a/oneflow/core/job/cluster_instruction.proto b/oneflow/core/job/cluster_instruction.proto
index 2cfbe39a9..402641e4a 100644
--- a/oneflow/core/job/cluster_instruction.proto
+++ b/oneflow/core/job/cluster_instruction.proto
@@ -11,7 +11,7 @@ message ClusterInstructionProto {
   oneof instruction_type {
     ClusterCtrlSessionStart cluster_ctrl_session_start = 1;
     ClusterCtrlHalt cluster_ctrl_halt = 2; // normal exit
-    eager.EagerInstruction eager_instruction = 3;
+    vm.EagerInstruction eager_instruction = 3;
     ClusterCtrlAbort cluster_ctrl_abort = 5; // error exit
   }
 }
diff --git a/oneflow/core/vm/access_blob_arg_cb_phy_instr_operand.h b/oneflow/core/vm/access_blob_arg_cb_phy_instr_operand.h
index c9375b474..c0d288497 100644
--- a/oneflow/core/vm/access_blob_arg_cb_phy_instr_operand.h
+++ b/oneflow/core/vm/access_blob_arg_cb_phy_instr_operand.h
@@ -23,11 +23,6 @@ namespace oneflow {
 
 class VmLocalDepObject;
 
-namespace eager {
-
-class EagerBlobObject;
-}
-
 namespace one {
 
 class TensorStorage;
@@ -35,10 +30,12 @@ class TensorStorage;
 
 namespace vm {
 
+class EagerBlobObject;
+
 // access blob arg callback physical instruction operand
 class AccessBlobArgCbPhyInstrOperand : public PhyInstrOperand {
  public:
-  AccessBlobArgCbPhyInstrOperand(const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+  AccessBlobArgCbPhyInstrOperand(const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
                                  const std::shared_ptr<VmLocalDepObject>& infer_local_dep_object,
                                  const std::shared_ptr<VmLocalDepObject>& compute_local_dep_object,
                                  const std::function<void(uint64_t)>& callback,
@@ -51,7 +48,7 @@ class AccessBlobArgCbPhyInstrOperand : public PhyInstrOperand {
   ~AccessBlobArgCbPhyInstrOperand() = default;
 
   const std::function<void(uint64_t)>& callback() const { return callback_; }
-  const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object() const {
+  const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object() const {
     return eager_blob_object_;
   }
 
@@ -65,7 +62,7 @@ class AccessBlobArgCbPhyInstrOperand : public PhyInstrOperand {
       const std::function<void(MirroredObject* infer, MirroredObject* compute)>&) const override;
 
  private:
-  std::shared_ptr<eager::EagerBlobObject> eager_blob_object_;
+  std::shared_ptr<vm::EagerBlobObject> eager_blob_object_;
   std::function<void(uint64_t)> callback_;
   std::shared_ptr<VmLocalDepObject> infer_local_dep_object_;
   std::shared_ptr<VmLocalDepObject> compute_local_dep_object_;
diff --git a/oneflow/core/vm/read_tensor_shape_arg_cb_phy_instr_operand.h b/oneflow/core/vm/read_tensor_shape_arg_cb_phy_instr_operand.h
index b6d1c3912..8b8a205a3 100644
--- a/oneflow/core/vm/read_tensor_shape_arg_cb_phy_instr_operand.h
+++ b/oneflow/core/vm/read_tensor_shape_arg_cb_phy_instr_operand.h
@@ -23,18 +23,15 @@ namespace oneflow {
 
 class Shape;
 
-namespace eager {
+namespace vm {
 
 class EagerBlobObject;
-}
-
-namespace vm {
 
 // read tensor shape arg callback physical instruction operand
 class ReadTensorShapeArgCbPhyInstrOperand : public PhyInstrOperand {
  public:
   ReadTensorShapeArgCbPhyInstrOperand(
-      const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+      const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
       const std::function<void(const std::shared_ptr<const Shape>&)>& callback)
       : eager_blob_object_(eager_blob_object), callback_(callback) {}
   ~ReadTensorShapeArgCbPhyInstrOperand() = default;
@@ -42,7 +39,7 @@ class ReadTensorShapeArgCbPhyInstrOperand : public PhyInstrOperand {
   const std::function<void(const std::shared_ptr<const Shape>&)>& callback() const {
     return callback_;
   }
-  const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object() const {
+  const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object() const {
     return eager_blob_object_;
   }
 
@@ -60,7 +57,7 @@ class ReadTensorShapeArgCbPhyInstrOperand : public PhyInstrOperand {
   }
 
  private:
-  std::shared_ptr<eager::EagerBlobObject> eager_blob_object_;
+  std::shared_ptr<vm::EagerBlobObject> eager_blob_object_;
   std::function<void(const std::shared_ptr<const Shape>&)> callback_;
 };
 
diff --git a/oneflow/core/vm/release_tensor_arg_phy_instr_operand.h b/oneflow/core/vm/release_tensor_arg_phy_instr_operand.h
index 4972dd35d..9d36e5b87 100644
--- a/oneflow/core/vm/release_tensor_arg_phy_instr_operand.h
+++ b/oneflow/core/vm/release_tensor_arg_phy_instr_operand.h
@@ -21,17 +21,14 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
-
-class EagerBlobObject;
-}
-
 class VmLocalDepObject;
 namespace vm {
 
+class EagerBlobObject;
+
 class ReleaseTensorArgPhyInstrOperand : public PhyInstrOperand {
  public:
-  ReleaseTensorArgPhyInstrOperand(const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object,
+  ReleaseTensorArgPhyInstrOperand(const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object,
                                   const std::shared_ptr<VmLocalDepObject>& infer_local_dep_object,
                                   const std::shared_ptr<VmLocalDepObject>& compute_local_dep_object)
       : eager_blob_object_(eager_blob_object),
@@ -39,7 +36,7 @@ class ReleaseTensorArgPhyInstrOperand : public PhyInstrOperand {
         compute_local_dep_object_(compute_local_dep_object) {}
   ~ReleaseTensorArgPhyInstrOperand() override = default;
 
-  const std::shared_ptr<eager::EagerBlobObject>& eager_blob_object() const {
+  const std::shared_ptr<vm::EagerBlobObject>& eager_blob_object() const {
     return eager_blob_object_;
   }
 
@@ -53,7 +50,7 @@ class ReleaseTensorArgPhyInstrOperand : public PhyInstrOperand {
       const std::function<void(MirroredObject* infer, MirroredObject* compute)>&) const override;
 
  private:
-  std::shared_ptr<eager::EagerBlobObject> eager_blob_object_;
+  std::shared_ptr<vm::EagerBlobObject> eager_blob_object_;
   std::shared_ptr<VmLocalDepObject> infer_local_dep_object_;
   std::shared_ptr<VmLocalDepObject> compute_local_dep_object_;
 };
diff --git a/oneflow/user/kernels/stateful_local_opkernel.cpp b/oneflow/user/kernels/stateful_local_opkernel.cpp
index 35c8a6ced..c5ba3df0e 100644
--- a/oneflow/user/kernels/stateful_local_opkernel.cpp
+++ b/oneflow/user/kernels/stateful_local_opkernel.cpp
@@ -67,15 +67,15 @@ ZeroCopyBaseContext::ZeroCopyBaseContext(const ArgVec* indexed_input_pairs,
                                        &arg_name2bn_index2output_tensor_tuple_index_);
   for (int i = 0; i < indexed_input_pairs->size(); i++) {
     input_tensor_views_.push_back(std::make_unique<EagerBlobObjectTensorView>(
-        [this, i]() -> eager::EagerBlobObject* { return input_tensors_->at(i).get(); }));
+        [this, i]() -> vm::EagerBlobObject* { return input_tensors_->at(i).get(); }));
     input_tensor_desc_views_.push_back(std::make_unique<EagerBlobObjectTensorDescView>(
-        [this, i]() -> eager::EagerBlobObject* { return input_tensors_->at(i).get(); }));
+        [this, i]() -> vm::EagerBlobObject* { return input_tensors_->at(i).get(); }));
   }
   for (int i = 0; i < indexed_output_pairs->size(); i++) {
     output_tensor_views_.push_back(std::make_unique<EagerBlobObjectTensorView>(
-        [this, i]() -> eager::EagerBlobObject* { return output_tensors_->at(i).get(); }));
+        [this, i]() -> vm::EagerBlobObject* { return output_tensors_->at(i).get(); }));
     output_tensor_desc_views_.push_back(std::make_unique<EagerBlobObjectTensorDescView>(
-        [this, i]() -> eager::EagerBlobObject* { return output_tensors_->at(i).get(); }));
+        [this, i]() -> vm::EagerBlobObject* { return output_tensors_->at(i).get(); }));
   }
 }
 
@@ -325,8 +325,8 @@ Maybe<void> InitTensorTupleIndexes4Bns(const OperatorConf& op_conf,
       &opkernel->output_tuple_indexes4mut_obns_, &opkernel->output_tuple_indexes4mut2_obns_));
 
   opkernel->tmp_blob_object_.reset(
-      new eager::EagerBlobObject(opkernel->mem_case_, std::make_shared<Shape>(), DataType::kChar,
-                                 std::make_shared<eager::TensorBuffer>()));
+      new vm::EagerBlobObject(opkernel->mem_case_, std::make_shared<Shape>(), DataType::kChar,
+                              std::make_shared<vm::TensorBuffer>()));
   opkernel->infer_local_dep_object_ = std::make_shared<VmLocalDepObject>(parallel_desc);
   opkernel->compute_local_dep_object_ = std::make_shared<VmLocalDepObject>(parallel_desc);
   return opkernel;
@@ -378,7 +378,7 @@ const user_op::InferTmpSizeFn& StatefulOpKernel::GetInferTmpSizeFn(
   return *infer_tmp_size_fn_map_.at(op_kernel);
 }
 
-eager::EagerBlobObject* StatefulOpKernel::mut_temp_blob_object() { return tmp_blob_object_.get(); }
+vm::EagerBlobObject* StatefulOpKernel::mut_temp_blob_object() { return tmp_blob_object_.get(); }
 
 user_op::TensorDescInferFn StatefulOpKernel::TensorDescInferFn() const {
   return tensor_desc_infer_fn_;
diff --git a/oneflow/user/kernels/stateful_local_opkernel.h b/oneflow/user/kernels/stateful_local_opkernel.h
index ae5bd67dd..312c248cb 100644
--- a/oneflow/user/kernels/stateful_local_opkernel.h
+++ b/oneflow/user/kernels/stateful_local_opkernel.h
@@ -23,9 +23,9 @@ limitations under the License.
 
 namespace oneflow {
 
-namespace eager {
+namespace vm {
 struct LocalCallOpKernelUtil;
-}  // namespace eager
+}  // namespace vm
 
 namespace one {
 
@@ -38,11 +38,11 @@ class LocalUserOpInferContext;
 using ArgVec = std::vector<std::pair<std::string, int32_t>>;
 
 using EagerBlobObjectList =
-    std::shared_ptr<const std::vector<std::shared_ptr<eager::EagerBlobObject>>>;
+    std::shared_ptr<const std::vector<std::shared_ptr<vm::EagerBlobObject>>>;
 
 class EagerBlobObjectTensorView final : public user_op::Tensor {
  public:
-  EagerBlobObjectTensorView(const std::function<eager::EagerBlobObject*()>& mut_eager_blob_object)
+  EagerBlobObjectTensorView(const std::function<vm::EagerBlobObject*()>& mut_eager_blob_object)
       : mut_eager_blob_object_(mut_eager_blob_object) {}
 
   const ShapeView& shape() const override { return mut_eager_blob_object_()->blob().shape(); }
@@ -62,13 +62,12 @@ class EagerBlobObjectTensorView final : public user_op::Tensor {
   void* mut_raw_dptr() override { return mut_eager_blob_object_()->mut_blob()->mut_dptr(); }
 
  private:
-  const std::function<eager::EagerBlobObject*()> mut_eager_blob_object_;
+  const std::function<vm::EagerBlobObject*()> mut_eager_blob_object_;
 };
 
 class EagerBlobObjectTensorDescView final : public user_op::TensorDesc {
  public:
-  EagerBlobObjectTensorDescView(
-      const std::function<eager::EagerBlobObject*()>& mut_eager_blob_object)
+  EagerBlobObjectTensorDescView(const std::function<vm::EagerBlobObject*()>& mut_eager_blob_object)
       : mut_eager_blob_object_(mut_eager_blob_object) {}
 
   const Shape& shape() const override { return mut_eager_blob_object_()->blob_desc().shape(); }
@@ -92,7 +91,7 @@ class EagerBlobObjectTensorDescView final : public user_op::TensorDesc {
   }
 
  private:
-  const std::function<eager::EagerBlobObject*()> mut_eager_blob_object_;
+  const std::function<vm::EagerBlobObject*()> mut_eager_blob_object_;
 };
 
 class ZeroCopyBaseContext {
@@ -262,7 +261,7 @@ class StatefulOpKernel final {
   }
 
  private:
-  friend struct eager::LocalCallOpKernelUtil;
+  friend struct vm::LocalCallOpKernelUtil;
   StatefulOpKernel(const OperatorConf& op_conf);
   LocalUserOpInferContext* UpdateInferContext(EagerBlobObjectList inputs,
                                               EagerBlobObjectList outputs);
@@ -277,7 +276,7 @@ class StatefulOpKernel final {
                             EagerBlobObjectList inputs, EagerBlobObjectList outputs,
                             user_op::OpKernelState** state);
 
-  eager::EagerBlobObject* mut_temp_blob_object();
+  vm::EagerBlobObject* mut_temp_blob_object();
 
   user_op::OpKernelState* mut_opkernel_state(const user_op::OpKernel* opkernel) {
     return op_kernel_state_map_.at(opkernel).get();
@@ -306,7 +305,7 @@ class StatefulOpKernel final {
       op_kernel_map_;
   HashMap<const user_op::OpKernel*, std::shared_ptr<user_op::OpKernelState>> op_kernel_state_map_;
   HashMap<const user_op::OpKernel*, const user_op::InferTmpSizeFn*> infer_tmp_size_fn_map_;
-  std::unique_ptr<eager::EagerBlobObject> tmp_blob_object_;
+  std::unique_ptr<vm::EagerBlobObject> tmp_blob_object_;
   std::vector<int64_t> input_tuple_indexes4const_ibns_;
   std::vector<int64_t> input_tuple_indexes4mut_ibns_;
   std::vector<int64_t> output_tuple_indexes4mut_obns_;
-- 
GitLab