def populate_system_improvement_log()

in design_utils/des_handler.py [0:0]


    def populate_system_improvement_log(self):
        # communication vs computation
        if self.get_block_ref().type in ["ic","mem"]:
            comm_comp = "comm"
        else:
            comm_comp = "comp"

        # which exact optimization targgeted: topology/mapping/tunning
        if self.get_transformation_name() in ["swap"]:
            exact_optimization = self.get_customization_type(self.get_block_ref(), self.get_des_block())
        elif self.get_transformation_name() in ["split_swap"]:
            if self.get_block_ref() == "pe":
                exact_optimization = self.get_customization_type(self.get_block_ref(), self.get_des_block()) +";" +self.get_block_ref().type +"_"+"allocation"
            else:
                exact_optimization = self.get_customization_type(self.get_block_ref(), self.get_des_block())
        elif self.get_transformation_name() in ["migrate"]:
            exact_optimization = self.get_block_ref().type +"_"+"mapping"
        elif self.get_transformation_name() in ["split_swap", "split", "transfer", "routing"]:
            exact_optimization = self.get_block_ref().type +"_"+"allocation"
        elif self.get_transformation_name() in ["transfer", "routing"]:
            exact_optimization = self.get_block_ref().type +"_"+self.get_transformation_name()
        elif self.get_transformation_name() in ["cost"]:
            exact_optimization = "cost"
        elif self.get_transformation_name() in ["dram_fix"]:
            exact_optimization = "dram_fix"
        elif self.get_transformation_name() in ["identity"]:
            exact_optimization = "identity"
        else:
            print(self.get_transformation_name() + " high level optimization is not specified")
            exit(0)


        # which high level optimization targgeted: topology/mapping/tunning
        if self.get_transformation_name() in ["swap", "split_swap"]:
            high_level_optimization = "hardware_tunning"
        elif self.get_transformation_name() in ["split_swap"]:
            high_level_optimization = "hardware_tunning;topology"
        elif self.get_transformation_name() in ["migrate"]:
            high_level_optimization = "mapping"
        elif self.get_transformation_name() in ["split_swap", "split", "transfer","routing"]:
            high_level_optimization = "topology"
        elif self.get_transformation_name() in ["cost"]:
            high_level_optimization = "cost"
        elif self.get_transformation_name() in ["dram_fix"]:
            high_level_optimization = "dram_fix"
        elif self.get_transformation_name() in ["identity"]:
            high_level_optimization = "identity"
        else:
            print(self.get_transformation_name() + " high level optimization is not specified")
            exit(0)

        # which architectural variable targgeted: topology/mapping/tunning
        if self.get_transformation_name() in ["split"]:
            architectural_principle = ""
            for el in self.parallelism_type:
                architectural_principle +=  el+";"
            architectural_principle = architectural_principle[:-1]
        elif self.get_transformation_name() in ["migrate"]:
            architectural_principle = ""
            for el in self.parallelism_type:
                architectural_principle +=  el+";"
            for el in self.locality_type:
                architectural_principle +=  el+";"
            architectural_principle = architectural_principle[:-1]
        elif self.get_transformation_name() in ["split_swap", "swap"]:
            if "loop_iteration_modulation" in  exact_optimization:
                architectural_principle = "loop_level_parallelism"
            else:
                architectural_principle = "customization"
        elif self.get_transformation_name() in ["transfer","routing"]:
            architectural_principle = "spatial_locality"
        elif self.get_transformation_name() in ["cost"]:
            architectural_principle = "cost"
        elif self.get_transformation_name() in ["dram_fix"]:
            architectural_principle = "dram_fix"
        elif self.get_transformation_name() in ["identity"]:
            architectural_principle = "identity"
        else:
            print(self.get_transformation_name() + " high level optimization is not specified")
            exit(0)

        self.system_improvement_dict["comm_comp"] = comm_comp
        self.system_improvement_dict["high_level_optimization"] = high_level_optimization
        self.system_improvement_dict["exact_optimization"] = exact_optimization
        self.system_improvement_dict["architectural_principle"] = architectural_principle