Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from . import loop_enum as le
from . import buffer_enum as be
def print_loop_nest(point):
loop_orders = list(zip(*point.loop_orders))
loop_blockings = list(zip(*point.loop_blockings))
loop_partitionings = list(zip(*point.loop_partitionings))
para_dims = point.para_loop_dim
num_level = len(loop_orders)
order_lists = []
for level in range(num_level):
order_list = [None] * le.NUM
for order in range(le.NUM):
if loop_blockings[level][order] != 1 or loop_partitionings[level][order] != 1 :
order_list[loop_orders[level][order]] = (le.table[order],
loop_blockings[level][order],
loop_partitionings[level][order])
order_lists.append(order_list)
print(order_lists, para_dims)
def print_best_schedule(point):
loop_orders = list(zip(*point.loop_orders))
loop_blockings = list(zip(*point.loop_blockings))
loop_partitionings = list(zip(*point.loop_partitionings))
para_dims = point.para_loop_dim
num_level = len(loop_orders)
order_lists = []
for level in range(num_level):
print("\tLevel_Number: {}".format(level))
order_list = [None] * le.NUM
for order in range(le.NUM):
if loop_blockings[level][order] != 1 or loop_partitionings[level][order] != 1 :
order_list[loop_orders[level][order]] = (le.table[order],
loop_blockings[level][order],
loop_partitionings[level][order])
print("\t\tLoop_Name: {}, Loop_Bound: {}, Unrolling: {}".format(le.table[order], loop_blockings[level][order], loop_partitionings[level][order]))
order_lists.append(order_list)
#print(order_lists)