
    `i                         d dl Z d dl mZ d dlmZ d dlmc mZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ dd	d
ededefdZdS )    N)Any)	DTypeLike)_array)_chunk)_data_transfer)_modesarrz_array.DistributedArrayaxisdtypereturnc                    d}t           j        t           j        t           j        t           j        d}|j        |vrt          d|j                   ||j                 }|t           j        t           j        fv r+| j        |ur!|                     t           j	                  } d}n|                     |          } | j
        }|rt          j        t           j        |          }|                    | j                  }|                                D ]x}	t#          t%          |	                    D ]Y}
t%          |	|
         j                  dk    r!|	|
                                         |	|
<   |	|
                             |           Zy| j        d |         | j        |dz   d          z   }d }i }|                                D ]\  }}	g ||<   |	D ]}|                                5 }|j        d |         |j        |dz   d          z   }t5          |j        t8          j                  rP|j        j        }|d |         ||dz   d          z   }t8          j                            ||j        j         |          }n[tC          j"         ||j        ||                    }|j        }t9          j        ||#                                ||j$                  }||         %                    |           t%          |j                  dk    r	 d d d            E|j        D ]\  }}|&                    |j'                   tC          j"         ||j        ||                    }|j        }tQ          j)        ||#                                |j$                  }|d |         ||dz   d          z   }|*                    ||           	 d d d            n# 1 swxY w Y   tW          j,        ||||| j-                  S )	NF)cupy_maxcupy_mincupy_sum	cupy_prodzUnsupported kernel: Tr      )r
   r   )
prevent_gc).r   MAXMINSUMPRODnameRuntimeError_mode_to_op_modeREPLICA_chunks_maptypingcast_OpModeidentity_ofr   valuesrangelenupdatescopy#set_identity_on_overwritten_entriesshapeitemson_readyindex
isinstancearrayr   _ArrayPlaceholder_Chunkcreate_placeholderdevice_manipulation_dims
atleast_1drecordr   append
wait_eventreadyr   
_AsyncData
add_updater   DistributedArray_comms)r	   kernelr
   r   
overwritesmode_overridesmode
chunks_mapidentitychunksir(   	out_dtypeout_chunks_mapdevchunkstream	out_index	old_shape	out_shape	out_chunk	out_arrayupdateupdate_indexout_update_array
out_updates                             v/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupyx/distributed/array/_reduction.py_executerS      s    JJJJ[	 N {.((?&+??@@@&+&D
FJ'''9D  //&.11CJood##J H{6>400##CI.. '')) 	H 	HF3v;;'' H Hvay())Q.."1INN,,q	q	==hGGGG	H Ietesya11EI57N!'')) %@ %@V s #	@ #	@E!! "@V!K.T!VWW1EE	ek6+CDD 5 % 1I )%4% 09T!VWW3E EI & @ @!5;#5y!B !BII
 !3 =u{UCCC!E !EI !*I &!6==??I#(#3!5 !5 !5I s#**9555u}%%**-"@ "@ "@ "@ "@ "@ "@0 -2M 
@ 
@(FL%%fl333'9'Dv|$eDDD(F (F$ 0 6I!/!:(&--//#)#4"6 "6 "6J !-UdU 3l46776K KI((Y????
@1"@ "@ "@ "@ "@ "@ "@ "@ "@ "@ "@ "@ "@ "@ "@#	@J "y.$
< < <s   &D!OB/OOO)r   r   numpy.typingr   cupy._manipulation.dims_manipulationdimsr2   cupyx.distributed.arrayr   r   r   r   intrS        rR   <module>r\      s           " " " " " " 4 4 4 4 4 4 4 4 4 * * * * * * * * * * * * 2 2 2 2 2 2 * * * * * *M<	"M<25M<>GM<M< M< M< M< M< M<r[   