o
    پiS                     @   s  d dl mZmZmZ d dlZejjdurSdejdejdee dee	 de	de
d	e	fd
dZde	dejdejd	dfddZde	dejdejdejd	df
ddZde	dejdejd	dfddZde	dejdejdejd	df
ddZde	d	dfddZd	e	fddZde	dejdee dee	 d	df
ddZde	d	eejee	 f fdd Zde	dee deee	  d	dfd!d"Zd#e	d	ejfd$d%Zdejd	ejfd&d'Z	dUde	d(e	d)ee	 d	e	fd*d+Zde	d	ejfd,d-Zde	deej d	dfd.d/Zde	d0e	dejdejd1e
d	dfd2d3Zde	d	dfd4d5Zd	e	fd6d)Zd	efd7d8Zd9ede	d(e	d:ejd;ejd<e	d=ee	 d>ee	 d?e	d	e	fd@dAZ dBe	dejdejdCe	dDe	d	dfdEdFZ!dS dGee	 dejde	de
d	e	f
dHdZde	d	dfdIdZde	dejdejde	dJe	d	dfdKdLZ"d	eee	 ee	 f fdMd Zde	dNee	 d	dfdOdZde	deee	  deee	  d	dfdPd"Zd	e	fdQdZd	ejfdRd8Zd9ejde	d(e	d:ejd;ejd<e	d=ee	 d>ee	 d?e	d	e	fdSdAZ dBe	dejdejdCe	dDe	d	dfdTdFZ!dS )V    )ListOptionalTupleNmeta	rank_datahandlesoffsetsrankfull_nvlinkreturnc                 C   s   t jjj| |||||S Ntorchops
sgl_kernelinit_custom_ardefault)r   r   r   r   r	   r
    r   H/home/ubuntu/.local/lib/python3.10/site-packages/sgl_kernel/allreduce.pyr      s   
r   fainpoutc                 C      t jjj| || d S r   )r   r   r   all_reduce_regr   r   r   r   r   r   r   r      s   r   
reg_bufferc                 C      t jjj| ||| d S r   )r   r   r   all_reduce_unregr   r   r   r   r   r   r   r   r      s   r   c                 C   r   r   )r   r   r   deterministic_all_reduce_regr   r   r   r   r   r         r   c                 C   r   r   )r   r   r   deterministic_all_reduce_unregr   r   r   r   r   r!       s   
r!   c                 C      t jjj|  d S r   r   r   r   disposer   r   r   r   r   r$   '      r$   c                   C      t jjj S r   r   r   r   	meta_sizer   r   r   r   r   r)   *      r)   tc                 C      t jjj| |||S r   r   r   r   register_bufferr   )r   r+   r   r   r   r   r   r.   -   s   r.   c                 C      t jjj| S r   r   r   r   get_graph_buffer_ipc_metar   r%   r   r   r   r1   2      r1   c                 C   r   r   r   r   r   register_graph_buffersr   r   r   r   r   r   r   r4   5   r    r4   sizec                 C   r/   r   )r   r   r   allocate_meta_bufferr   )r6   r   r   r   r7   :   r2   r7   c                 C   r/   r   )r   r   r   get_meta_buffer_ipc_handler   )r   r   r   r   r8   =   r2   r8   
world_sizeqr_max_sizec                 C   s   t jjj|| |S r   )r   r   r   init_custom_qrr   )r	   r9   r:   r   r   r   r;   A   s   
r;   c                 C   r/   r   )r   r   r   qr_get_handler   r%   r   r   r   r<   H   r2   r<   c                 C   s   t jjj| | d S r   )r   r   r   qr_open_handlesr   )r   r   r   r   r   r=   K   s   r=   profilecast_bf162halfc                 C      t jjj| |||| d S r   )r   r   r   qr_all_reducer   )r   r>   r   r   r?   r   r   r   rA   N      

rA   c                 C   r"   r   )r   r   r   
qr_destroyr   r%   r   r   r   rC   Y   r&   rC   c                   C   r'   r   )r   r   r   r:   r   r   r   r   r   r:   \   r*   c                   C      t  r   NotImplementedErrorr   r   r   r   mscclpp_generate_unique_id`   s   rG   	unique_idscratch
put_buffernranks_per_noderank_to_node
rank_to_ibcontext_selectionc	           	      C   rD   r   rE   	rH   r	   r9   rI   rJ   rK   rL   rM   rN   r   r   r   mscclpp_init_contextc   s   rP   contextnthreadsnblocksc                 C   rD   r   rE   rQ   r   r   rR   rS   r   r   r   mscclpp_allreducep   s   rU   ipc_tensorsc                 C   r,   r   r   )rV   r   r	   r
   r   r   r   r   w   s   
c                 C   r"   r   r#   r%   r   r   r   r$   ~   r&   reg_buffer_sz_bytesc                 C   r@   r   )r   r   r   
all_reducer   )r   r   r   r   rW   r   r   r   rX      rB   rX   c                 C   r/   r   r0   r%   r   r   r   r1      r2   fake_ipc_ptrsc                 C   s   t jjj| |S r   r-   )r   rY   r   r   r   r.      s   c                 C   r   r   r3   r5   r   r   r   r4      r    c                   C   r'   r   r(   r   r   r   r   r)      r*   c                   C   r'   r   )r   r   r   rG   r   r   r   r   r   rG      r*   c	           	      C   s    t jjj| ||||||||	S r   )r   r   r   rP   r   rO   r   r   r   rP      s   
c                 C   r@   r   )r   r   r   rU   r   rT   r   r   r   rU      s   

r   )#typingr   r   r   r   versionhipTensorstrintboolr   r   r   r   r!   r$   r)   r.   r1   r4   r7   r8   r;   r<   listr=   rA   rC   r:   bytesrG   rP   rU   rX   r   r   r   r   <module>   s   




 



	






	

