Пример #1
0
def Create_Solution(App, Row, Col, Unrolling_Vec, Blocking_Vec, IO_Buffers, DFG_Lat):

    Possible_Solution = Solution()
    Possible_Solution.Loop_Vec = Get_Loop_Vec(App) 
    Possible_Solution.SCGRA_Row = Row
    Possible_Solution.SCGRA_Col = Col
    Possible_Solution.SCGRA_Size = Row * Col
    Possible_Solution.Loop_Unrolling_Vec = copy.copy(Unrolling_Vec)
    Possible_Solution.DFG_Lat = DFG_Lat
    Possible_Solution.In_Buffer = IO_Buffers[0]
    Possible_Solution.Out_Buffer = IO_Buffers[1]
    Possible_Solution.In_Addr_Buffer = IO_Buffers[2]
    Possible_Solution.Out_Addr_Buffer = IO_Buffers[3]
    Possible_Solution.Inst_Mem = Get_Min_Inst_Mem(DFG_Lat)
    Possible_Solution.Loop_Blocking_Vec = copy.copy(Blocking_Vec)

    Possible_Solution.Update_HW_Cost()
    DFG_Num = Get_SB_Num(Unrolling_Vec, Blocking_Vec)
    Block_Num = Get_SB_Num(Blocking_Vec, Get_Loop_Vec(App))
    Loop_Transfer_Vec = Get_Loop_Transfer_Vec(App, Unrolling_Vec, Blocking_Vec)
    Possible_Solution.Update_Lat(DFG_Num, Block_Num, Loop_Transfer_Vec)
    Possible_Solution.Update_Power()
    Possible_Solution.Update_EDP()
    Solution_Str = Possible_Solution.Get_Syllabus()
    return Possible_Solution
Пример #2
0
def Create_Solution(App, Row, Col, Unrolling_Vec, Blocking_Vec, IO_Buffers,
                    DFG_Lat):

    Possible_Solution = Solution()
    Possible_Solution.Loop_Vec = Get_Loop_Vec(App)
    Possible_Solution.SCGRA_Row = Row
    Possible_Solution.SCGRA_Col = Col
    Possible_Solution.SCGRA_Size = Row * Col
    Possible_Solution.Loop_Unrolling_Vec = copy.copy(Unrolling_Vec)
    Possible_Solution.DFG_Lat = DFG_Lat
    Possible_Solution.In_Buffer = IO_Buffers[0]
    Possible_Solution.Out_Buffer = IO_Buffers[1]
    Possible_Solution.In_Addr_Buffer = IO_Buffers[2]
    Possible_Solution.Out_Addr_Buffer = IO_Buffers[3]
    Possible_Solution.Inst_Mem = Get_Min_Inst_Mem(DFG_Lat)
    Possible_Solution.Loop_Blocking_Vec = copy.copy(Blocking_Vec)

    Possible_Solution.Update_HW_Cost()
    DFG_Num = Get_SB_Num(Unrolling_Vec, Blocking_Vec)
    Block_Num = Get_SB_Num(Blocking_Vec, Get_Loop_Vec(App))
    Loop_Transfer_Vec = Get_Loop_Transfer_Vec(App, Unrolling_Vec, Blocking_Vec)
    Possible_Solution.Update_Lat(DFG_Num, Block_Num, Loop_Transfer_Vec)
    Possible_Solution.Update_Power()
    Possible_Solution.Update_EDP()
    Solution_Str = Possible_Solution.Get_Syllabus()
    return Possible_Solution