diff options
Diffstat (limited to 'compiler/nnc/include/backends/soft_backend/BaseGenerator.h')
-rw-r--r-- | compiler/nnc/include/backends/soft_backend/BaseGenerator.h | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/compiler/nnc/include/backends/soft_backend/BaseGenerator.h b/compiler/nnc/include/backends/soft_backend/BaseGenerator.h deleted file mode 100644 index 9aaa7239d..000000000 --- a/compiler/nnc/include/backends/soft_backend/BaseGenerator.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _NNC_SOFT_BACKEND_BASE_GENERATOR_H_ -#define _NNC_SOFT_BACKEND_BASE_GENERATOR_H_ - -#include "mir/Graph.h" - -#include <string> -#include <ostream> - -namespace nnc -{ - -class ModelAnalyzer; - -class Serializer; - -/** - * @brief BaseCodeGenerator class provides interface for artifact - * generation and contains common functionality for all soft backends - * - * Derivatives should override: - * + constructor to set proper filenames for artifact parts - * + code file generation function: materuializeCode - * + header file generation to expose artifact inerface to user - */ -class BaseCodeGenerator -{ -public: - virtual ~BaseCodeGenerator() = default; - - /** - * @brief Method represents base generation sequence: analysis, serialization, header/code - * generation, etc - * @param graph MIR graph - */ - void run(mir::Graph *graph); - -protected: - /** - * @brief This function processes tensor names - * to transform them into valid identificators of target language - * @param ma Intermediate artifact information - */ - virtual void formatTensorNames(const ModelAnalyzer &ma) = 0; - /** - * @brief Derivative classes should override this function to generate header of artifact - * @param out Stream to write header text - * @param ma Intermediate artifact information - */ - virtual void materializeHeader(std::ostream &out, const ModelAnalyzer &ma) = 0; - /** - * @brief Derivative classes should override this function to generate implementation of artifact - * @param out Stream to write header text - * @param ma Intermediate artifact information - * @param s Serializer holds parameters of network and various meta-information: serializer - * version, hashes, etc - */ - virtual void materializeCode(std::ostream &out, const ModelAnalyzer &ma, const Serializer &s) = 0; - /** - * @brief Writes serialized parameters to out stream - * @param out Stream to write serialized parameters - * @param s Serializer holds parameters of network - * - * Contents of generated file: - * + header(magic number to identify file type, protocol version, hashes of network and params) - * + array of serialized network parameters - */ - void materializeModelParams(std::ostream &out, const Serializer &s); - - BaseCodeGenerator(); - - std::vector<std::string> _formattedTensors; - - std::string _headerPath; - std::string _codePath; - std::string _paramsPath; -}; - -} // namespace nnc - -#endif //_NNC_SOFT_BACKEND_BASE_GENERATOR_H_ |