Skip to content
Snippets Groups Projects
Commit a449cf97 authored by Cyril Moineau's avatar Cyril Moineau
Browse files

Update aidge_export to new export_node + aidge_export -> serialize_to_cpp

parent ddd14df0
No related branches found
No related tags found
3 merge requests!279v0.4.0,!253v0.4.0,!163Export refactor
......@@ -123,6 +123,7 @@ class ExportNode(ABC):
# Attributes are auto fetched from aidge operators
self.attributes = self.operator.attr.dict(
) if self.operator.attr is not None else {}
self.attributes["node"] = self.node
self.attributes["name"] = self.node.name()
self.attributes["nb_in"] = self.node.get_nb_inputs()
self.attributes["nb_out"] = self.node.get_nb_outputs()
......@@ -159,7 +160,7 @@ class ExportNode(ABC):
# Producer don't have meminfo
# TODO: document this attribute
# true if node have meminfo else false
self.attributes["meminfo"] = mem_info or self.node.type() != "Producer"
self.attributes["meminfo"] = mem_info is not None and self.node.type() != "Producer"
if self.attributes["meminfo"]:
self.attributes["mem_info_size"] = [None] * self.attributes["nb_out"]
self.attributes["mem_info_offset"] = [None] * self.attributes["nb_out"]
......@@ -266,9 +267,12 @@ class ExportNodeCpp(ExportNode):
# kernels are copied in str(export_folder / "include" / "kernels")
# They are automatically added to the include list.
kernels_to_copy: list = None
# Path where all the kernels are stored in the export (prefixed by export_root/include)
kernels_path: str = "kernels"
# Path where all the kernels are stored in the export (prefixed by export_root)
kernels_path: str = "include/kernels"
# Path of config folders
config_path: str = "include/layers"
# Config_folder_extension
config_extension: str = "h"
def export(self, export_folder: str):
"""Define how to export the node definition.
"""
......@@ -277,25 +281,26 @@ class ExportNodeCpp(ExportNode):
if self.include_list is None:
raise ValueError("include_list have not been defined")
if self.kernels_to_copy is None:
raise ValueError("required_kernels have not been defined")
raise ValueError("kernels_to_copy have not been defined")
kernel_include_list = []
for kernel in self.kernels_to_copy:
kernel_path = Path(kernel)
code_generation.copy_file(
kernel_path,
str(export_folder / "include" / self.kernels_path)
str(export_folder / self.kernels_path)
)
kernel_include_list.append(
self.kernels_path + "/" + kernel_path.stem + kernel_path.suffix)
path_to_definition = f"include/layers/{self.attributes['name']}.h"
code_generation.generate_file(
str(export_folder / path_to_definition),
self.config_template,
**self.attributes
)
kernel_include_list.append(path_to_definition)
if self.config_template != "":
path_to_definition = f"{self.config_path}/{self.attributes['name']}.{self.config_extension}"
code_generation.generate_file(
str(export_folder / path_to_definition),
self.config_template,
**self.attributes
)
kernel_include_list.append(path_to_definition)
return self.include_list + kernel_include_list
......
......@@ -6,7 +6,7 @@ from aidge_core.export_utils import ExportLib, generate_file, copy_file
from typing import List, Tuple
def export(scheduler, export_folder_path: str, export_lib: ExportLib = None, memory_manager=None, memory_manager_args=None) -> None:
def scheduler_export(scheduler, export_folder_path: str, export_lib: ExportLib = None, memory_manager=None, memory_manager_args=None) -> None:
graphview = scheduler.graph_view()
export_folder = Path().absolute() / export_folder_path
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment