-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathcopy_formatted_tensor_tiling.py
273 lines (194 loc) · 14.8 KB
/
copy_formatted_tensor_tiling.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
import shutil
import glob
import subprocess
import os
import sys
# test = "rel5"
# test = "mk9-b1"
# test = "fb1k"
app_name = sys.argv[1]
test = sys.argv[2]
# app_name = "mat_mattransmul"
# app_name = "tensor3_elemadd"
const_val = 2 # only for mat_mattransmul
b_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_B*")
c_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_C*")
d_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_D*")
# b_tensors = glob.glob(f"/aha/garnet/tiles/{app_name}/{test}/formatted/tensor_B*")
# c_tensors = glob.glob(f"/aha/garnet/tiles/{app_name}/{test}/formatted/tensor_C*")
# d_tensors = glob.glob(f"/aha/garnet/tiles/{app_name}/{test}/formatted/tensor_D*")
# print("b_tensors: ", b_tensors)
# print("c_tensors: ", c_tensors)
# print("d_tensors: ", d_tensors)
# b_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}_{test}/formatted/tensor_B*")
# c_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}_{test}/formatted/tensor_C*")
b_vec_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_b*")
c_vec_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_c*")
d_vec_tensors = glob.glob(f"/aha/garnet/tiles_{app_name}/{app_name}/{test}/formatted/tensor_d*")
d_loc_paired = []
if not os.path.exists("SPARSE_TESTS/MAT_TMP_DIR"):
os.makedirs("SPARSE_TESTS/MAT_TMP_DIR",exist_ok=True)
exit_status = os.system(f"rm -rf SPARSE_TESTS/{app_name}*")
if os.WEXITSTATUS(exit_status) != 0:
raise RuntimeError(f"Command 'rm -rf SPARSE_TESTS/{app_name}*' returned non-zero exit status {os.WEXITSTATUS(exit_status)}.")
if os.WEXITSTATUS(exit_status) != 0:
raise RuntimeError(f"Command 'rm -rf SPARSE_TESTS/{app_name}*' returned non-zero exit status {os.WEXITSTATUS(exit_status)}.")
tile = 0
os.chdir("SPARSE_TESTS")
if app_name == "tensor3_ttv":
for b in b_tensors:
for c in c_vec_tensors:
tile_str = str(app_name) + "-" + str(test) + "_tile" + str(tile)
# b_loc = b[-7:]
# c_loc = c[-3:]
# print("b is:", b)
b_loc = b.split("_")
c_loc = c.split("_")
index = b_loc.index("tile")
b_loc = b_loc[index+1:]
index = c_loc.index("tile")
c_loc = c_loc[index+1:]
# b_loc = b_loc.split("_")
# c_loc = c_loc.split("_")
# if(b_loc[1] == c_loc[0] and b_loc[3] == c_loc[1] and b_loc[0] == d_loc[0] and b_loc[2] == d_loc[1]):
if(b_loc[2] == c_loc[0] and b_loc[5] == c_loc[1]):
print(b,c)
if not os.path.exists(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}"):
os.mkdir(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}")
shutil.copy(f"{b}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_crd")
shutil.copy(f"{b}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_seg")
shutil.copy(f"{b}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_crd")
shutil.copy(f"{b}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_seg")
shutil.copy(f"{b}/tensor_B_mode_2_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_crd")
shutil.copy(f"{b}/tensor_B_mode_2_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_seg")
shutil.copy(f"{b}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_vals")
shutil.copy(f"{b}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_shape")
# shutil.copy(f"{c}/c1_crd.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_crd")
# shutil.copy(f"{c}/c1_seg.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_0_crd")
shutil.copy(f"{c}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_0_seg")
shutil.copy(f"{c}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_vals")
shutil.copy(f"{c}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_shape")
tile = tile + 1
elif app_name == "tensor3_elemadd" or app_name == "tensor3_innerprod":
for b in b_tensors:
for c in c_tensors:
tile_str = str(app_name) + "-" + str(test) + "_tile" + str(tile)
# b_loc = b[-7:]
# c_loc = c[-3:]
# print("b is:", b)
b_loc = b.split("_")
c_loc = c.split("_")
index = b_loc.index("tile")
b_loc = b_loc[index+1:]
index = c_loc.index("tile")
c_loc = c_loc[index+1:]
# b_loc = b_loc.split("_")
# c_loc = c_loc.split("_")
# if(b_loc[1] == c_loc[0] and b_loc[3] == c_loc[1] and b_loc[0] == d_loc[0] and b_loc[2] == d_loc[1]):
# if(b_loc[3] == c_loc[3] and b_loc[4] == c_loc[4] and b_loc[5] == c_loc[5] and b_loc[6] == c_loc[6] and b_loc[7] == c_loc[7] and b_loc[8] == c_loc[8]):
if(b_loc == c_loc):
print(b,c)
if not os.path.exists(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}"):
os.mkdir(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}")
shutil.copy(f"{b}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_crd")
shutil.copy(f"{b}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_seg")
shutil.copy(f"{b}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_crd")
shutil.copy(f"{b}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_seg")
shutil.copy(f"{b}/tensor_B_mode_2_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_crd")
shutil.copy(f"{b}/tensor_B_mode_2_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_seg")
shutil.copy(f"{b}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_vals")
shutil.copy(f"{b}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_shape")
# shutil.copy(f"{c}/c1_crd.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_crd")
# shutil.copy(f"{c}/c1_seg.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_crd")
shutil.copy(f"{c}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_seg")
shutil.copy(f"{c}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_crd")
shutil.copy(f"{c}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_2_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_2_crd")
shutil.copy(f"{c}/tensor_B_mode_2_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_2_seg")
shutil.copy(f"{c}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_vals")
shutil.copy(f"{c}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_shape")
tile = tile + 1
elif app_name == "tensor3_ttm":
for b in b_tensors:
for c in c_tensors:
tile_str = str(app_name) + "-" + str(test) + "_tile" + str(tile)
# b_loc = b[-7:]
# c_loc = c[-3:]
# print("b is:", b)
split_list_b = b.split("/")
split_list_c = c.split("/")
# print("b list is", split_list)
# print("b last is", split_list[6])
b_loc_test = (split_list_b[7]).split("_")
c_loc_test = (split_list_c[7]).split("_")
# print("b_loc_test",b_loc_test[5])
b_loc = (split_list_b[7]).split("_")
c_loc = (split_list_c[7]).split("_")
# b_loc = b_loc.split("_")
# c_loc = c_loc.split("_")
# print("b_loc is ",b_loc)
# print("c_loc is ",c_loc)
# if(b_loc[1] == c_loc[0] and b_loc[3] == c_loc[1] and b_loc[0] == d_loc[0] and b_loc[2] == d_loc[1]):
if(b_loc[5] == c_loc[4] and b_loc[8] == c_loc[6]):
# print(b,c)
if not os.path.exists(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}"):
os.mkdir(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}")
shutil.copy(f"{b}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_crd")
shutil.copy(f"{b}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_seg")
shutil.copy(f"{b}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_crd")
shutil.copy(f"{b}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_seg")
shutil.copy(f"{b}/tensor_B_mode_2_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_crd")
shutil.copy(f"{b}/tensor_B_mode_2_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_seg")
shutil.copy(f"{b}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_vals")
shutil.copy(f"{b}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_shape")
# shutil.copy(f"{c}/c1_crd.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_crd")
# shutil.copy(f"{c}/c1_seg.txt", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_c_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_crd")
shutil.copy(f"{c}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_seg")
shutil.copy(f"{c}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_crd")
shutil.copy(f"{c}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_vals")
shutil.copy(f"{c}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_shape")
tile = tile + 1
elif "tensor3_mttkrp" in app_name :
for b in b_tensors:
for c in c_tensors:
for d in d_tensors:
tile_str = str(app_name) + "-" + str(test) + "_tile" + str(tile)
b_loc = b.split("_")
c_loc = c.split("_")
d_loc = d.split("_")
index = b_loc.index("tile")
b_loc = b_loc[index+1:]
index = c_loc.index("tile")
c_loc = c_loc[index+1:]
index = d_loc.index("tile")
d_loc = d_loc[index+1:]
if (c_loc[0] == d_loc[0] and c_loc[2] == d_loc[2] and b_loc[1] == c_loc[1] and b_loc[4] == c_loc[3] and b_loc[2] == d_loc[1] and b_loc[5] == d_loc[3]):
print(b,c,d)
if not os.path.exists(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}"):
os.mkdir(f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}")
shutil.copy(f"{b}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_crd")
shutil.copy(f"{b}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_0_seg")
shutil.copy(f"{b}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_crd")
shutil.copy(f"{b}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_1_seg")
shutil.copy(f"{b}/tensor_B_mode_2_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_crd")
shutil.copy(f"{b}/tensor_B_mode_2_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_2_seg")
shutil.copy(f"{b}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_vals")
shutil.copy(f"{b}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_B_mode_shape")
shutil.copy(f"{c}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_crd")
shutil.copy(f"{c}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_0_seg")
shutil.copy(f"{c}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_crd")
shutil.copy(f"{c}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_1_seg")
shutil.copy(f"{c}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_vals")
shutil.copy(f"{c}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_C_mode_shape")
shutil.copy(f"{d}/tensor_B_mode_0_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_0_crd")
shutil.copy(f"{d}/tensor_B_mode_0_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_0_seg")
shutil.copy(f"{d}/tensor_B_mode_1_crd", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_1_crd")
shutil.copy(f"{d}/tensor_B_mode_1_seg", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_1_seg")
shutil.copy(f"{d}/tensor_B_mode_vals", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_vals")
shutil.copy(f"{d}/tensor_B_mode_shape", f"/aha/garnet/SPARSE_TESTS/MAT_TMP_DIR/{tile_str}/tensor_D_mode_shape")
tile = tile + 1
print("There are ", tile, " tiles")