Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit 1c02a17

Browse files
author
Ehsan Totoni
committed
fix string shuffle codegen index
1 parent 65fc103 commit 1c02a17

3 files changed

Lines changed: 40 additions & 4 deletions

File tree

hpat/f.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
def f(key_arrs, data, pre_shuffle_meta, n_pes, is_contig, init_vals=()):
2+
send_counts = pre_shuffle_meta.send_counts
3+
recv_counts = np.empty(n_pes, np.int32)
4+
tmp_offset = np.zeros(n_pes, np.int32)
5+
hpat.distributed_api.alltoall(send_counts, recv_counts, 1)
6+
n_out = recv_counts.sum()
7+
n_send = send_counts.sum()
8+
send_disp = hpat.hiframes.join.calc_disp(send_counts)
9+
recv_disp = hpat.hiframes.join.calc_disp(recv_counts)
10+
arr = key_arrs[0]
11+
out_arr_0 = fix_cat_array_type(np.empty(n_out, arr.dtype))
12+
send_buff_0 = arr
13+
if not is_contig:
14+
send_buff_0 = fix_cat_array_type(np.empty(n_send, arr.dtype))
15+
arr = data[0]
16+
send_buff_1 = None
17+
send_counts_char_0 = pre_shuffle_meta.send_counts_char_tup[0]
18+
recv_counts_char_0 = np.empty(n_pes, np.int32)
19+
hpat.distributed_api.alltoall(send_counts_char_0, recv_counts_char_0, 1)
20+
n_all_chars = recv_counts_char_0.sum()
21+
out_arr_1 = pre_alloc_string_array(n_out, n_all_chars)
22+
send_disp_char_0 = hpat.hiframes.join.calc_disp(send_counts_char_0)
23+
recv_disp_char_0 = hpat.hiframes.join.calc_disp(recv_counts_char_0)
24+
tmp_offset_char_0 = np.zeros(n_pes, np.int32)
25+
send_arr_lens_0 = pre_shuffle_meta.send_arr_lens_tup[0]
26+
send_arr_chars_arr_1 = np.empty(1, np.uint8)
27+
send_arr_chars_1 = get_ctypes_ptr(get_data_ptr(arr))
28+
if not is_contig:
29+
send_arr_lens_0 = np.empty(n_send, np.uint32)
30+
s_n_all_chars = send_counts_char_0.sum()
31+
send_arr_chars_arr_0 = np.empty(s_n_all_chars, np.uint8)
32+
send_arr_chars_0 = get_ctypes_ptr(send_arr_chars_arr_0.ctypes)
33+
return ShuffleMeta(send_counts, recv_counts, n_send, n_out, send_disp,
34+
recv_disp, tmp_offset, (send_buff_0, send_buff_1), (out_arr_0, out_arr_1),
35+
(send_counts_char_0,), (recv_counts_char_0,), (send_arr_lens_0,),
36+
(send_arr_chars_0,), (send_disp_char_0,), (recv_disp_char_0,),
37+
(tmp_offset_char_0,), (send_arr_chars_arr_0,), )

hpat/shuffle_utils.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,16 +174,15 @@ def finalize_shuffle_meta_overload(key_arrs, data, pre_shuffle_meta, n_pes, is_c
174174
func_text += " send_arr_lens_{} = pre_shuffle_meta.send_arr_lens_tup[{}]\n".format(n_str, n_str)
175175
# send char arr
176176
# TODO: arr refcount if arr is not stored somewhere?
177-
func_text += " send_arr_chars_arr_{} = np.empty(1, np.uint8)\n".format(i)
178-
func_text += " send_arr_chars_{} = get_ctypes_ptr(get_data_ptr(arr))\n".format(i)
177+
func_text += " send_arr_chars_arr_{} = np.empty(1, np.uint8)\n".format(n_str)
178+
func_text += " send_arr_chars_{} = get_ctypes_ptr(get_data_ptr(arr))\n".format(n_str)
179179
func_text += " if not is_contig:\n"
180180
func_text += " send_arr_lens_{} = np.empty(n_send, np.uint32)\n".format(n_str)
181181
func_text += " s_n_all_chars = send_counts_char_{}.sum()\n".format(n_str)
182182
func_text += " send_arr_chars_arr_{} = np.empty(s_n_all_chars, np.uint8)\n".format(n_str)
183183
func_text += " send_arr_chars_{} = get_ctypes_ptr(send_arr_chars_arr_{}.ctypes)\n".format(n_str, n_str)
184184
n_str += 1
185185

186-
187186
send_buffs = ", ".join("send_buff_{}".format(i) for i in range(n_all))
188187
out_arrs = ", ".join("out_arr_{}".format(i) for i in range(n_all))
189188
all_comma = "," if n_all == 1 else ""

hpat/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def cprint(*s):
192192
class CprintInfer(AbstractTemplate):
193193
def generic(self, args, kws):
194194
assert not kws
195-
return signature(types.none, *args)
195+
return signature(types.none, *unliteral_all(args))
196196

197197

198198
typ_to_format = {

0 commit comments

Comments
 (0)