1 // SPDX-License-Identifier: Apache-2.0
3 * Copyright (C) 2023 Jijoong Moon <jijoong.moon@samsung.com>
5 * @file optimzied_v3_planner.h
7 * @see https://github.com/nnstreamer/nntrainer
8 * @author Jijoong Moon <jijoong.moon@samsung.com>
9 * @bug No known bugs except for NYI items
10 * @brief This is Optimized V3 Memory Planner
15 #ifndef __OPTIMIZED_V3_PLANNER_H_
16 #define __OPTIMIZED_V3_PLANNER_H_
20 #include <memory_planner.h>
25 * @class OptimizedV3Planner
26 * @brief Optimized V3 Memory Planner provides the optimized plan for memory
28 * @details optimized planner performs sharing of overlapping memory sharing
31 class OptimizedV3Planner : public MemoryPlanner {
34 * @brief OptimizedV3Planner destructor
37 OptimizedV3Planner() = default;
40 * @copydoc MemoryPlanner::planLayout(
41 * const std::vector<size_t> &memory_size,
42 * const std::vector<std::pair<unsigned int, unsigned int>> &memory_validity,
43 * std::vector<size_t> &memory_offset,
44 * std::vector<bool> &memory_is_wgrad);
48 const std::vector<size_t> &memory_size,
49 const std::vector<std::pair<unsigned int, unsigned int>> &memory_validity,
50 std::vector<size_t> &memory_offset, std::vector<bool> &memory_is_wgrad,
51 size_t n_wgrad = 0) const;
54 * @copydoc MemoryPlanner::getType() const
57 const std::string &getType() const { return type; }
59 inline static const std::string type = "optimized_v3_planner";
62 } // namespace nntrainer
64 #endif /** __OPTIMIZED_V3_PLANNER_H_ */