|
|
|
@@ -36,7 +36,8 @@ class MemSwapManager { |
|
|
|
tensor_size_threshold_idx_(0), |
|
|
|
tensor_size_num_(1), |
|
|
|
distance_threshold_(1), |
|
|
|
distance_decay_step_(1) { |
|
|
|
distance_decay_step_(1), |
|
|
|
retreat_count_(0) { |
|
|
|
mem_copy_manager_ = mem_copy_manager; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -156,6 +157,7 @@ class MemSwapManager { |
|
|
|
size_t tensor_size_num_; |
|
|
|
size_t distance_threshold_; |
|
|
|
size_t distance_decay_step_; |
|
|
|
size_t retreat_count_; |
|
|
|
|
|
|
|
MemCopyManagerPtr mem_copy_manager_{nullptr}; |
|
|
|
const mindspore::session::KernelGraph *kernel_graph_{nullptr}; |
|
|
|
@@ -165,6 +167,8 @@ class MemSwapManager { |
|
|
|
|
|
|
|
static constexpr size_t kDistanceInitFactor = 3; |
|
|
|
static constexpr size_t kDistanceLowerBound = 3; |
|
|
|
// The upper bound of count for searching memory swap scheme recurrently. |
|
|
|
static constexpr size_t kRetreatCountMax = 50; |
|
|
|
}; |
|
|
|
using MemSwapManagerPtr = std::shared_ptr<MemSwapManager>; |
|
|
|
} // namespace memswap |
|
|
|
|