+
    –°³j¯  ã                   óÄ   € ^ RI t ^ RIt^ RIHt ^ RIt. ROt^ tR tR t	R t
R tR R ltR]RR3R	 ltR^ ]RR3R
R/R R llltRR R lltRR R llt]RR3R R lltR# )é    N)ÚSequencec                 óz  € \        \        P                  R 4      '       g   \        P                  ! R^R7       R# \        4       pV  Fp  pVP                  '       d    R# VP                  4       '       g    R# VP                  '       g    R# VP                  4       pW19   d    R# VP                  V4       Kr  	  R# )Ú_nccl_all_reducez)PyTorch is not compiled with NCCL support©Ú
stacklevelFT)ÚhasattrÚtorchÚ_CÚwarningsÚwarnÚsetÚ	is_sparseÚis_contiguousÚis_cudaÚ
get_deviceÚadd)ÚtensorsÚdevicesÚtensorÚdevices   &   ÚP/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/cuda/nccl.pyÚis_availabler      sŒ   € Ü”5—8‘8Ð/×0Ò0Ü�ŠÐAÈaÕPÙä‹e€GÛˆØ××ÐÚØ×#Ñ#×%Ò%ÚØ�~�~ˆ~ÚØ×"Ñ"Ó$ˆØÔÚØ�‰�FÖñ ñ ó    c                 óú   € \         P                  P                  4       p V ^ ,	          pV ^,	          R,          pV R,          p\         P                  P                  4       P	                  R4      pVR8X  d   WV3# WW43# )a  
Returns the version of the NCCL.


This function returns a tuple containing the major, minor, and patch version numbers of the NCCL.
The suffix is also included in the tuple if a version suffix exists.
Returns:
    tuple: The version information of the NCCL.
iÿÿ  zutf-8Ú )r	   r
   Ú_nccl_versionÚ_nccl_version_suffixÚdecode)ÚverÚmajorÚminorÚpatchÚsuffixs        r   Úversionr$   #   sp   € ô �(‰(×
 Ñ
 Ó
"€CØ�2�I€EØ�B�Y˜%Õ€EØ�%�K€EÜ�X‰X×*Ñ*Ó,×3Ñ3°GÓ<€FØ�„|Ø˜eÐ$Ð$à˜eÐ,Ð,r   c                  ó>   € \         P                  P                  4       # ©N)r	   r
   Ú_nccl_unique_id© r   r   Ú	unique_idr)   8   s   € Ü�8‰8×#Ñ#Ó%Ð%r   c                 óB   € \         P                  P                  WV4      # r&   )r	   r
   Ú_nccl_init_rank)Ú	num_ranksÚuidÚranks   &&&r   Ú	init_rankr/   <   s   € Ü�8‰8×#Ñ# I°DÓ9Ð9r   c                ó|   € V ^8„  d   QhR\         P                  \        \         P                  ,          ,          RR/# )é   ÚinputsÚreturnN)r	   ÚTensorr   )Úformats   "r   Ú__annotate__r6   @   s0   € ÷ Dñ D¤§¡´¼¿¹Õ0FÕ!Fð DÈ4ñ Dr   c                 ó°   € \        V \        P                  P                  4      '       d!   \        V \        P
                  4      '       d   \        R 4      hR# )z(Inputs should be a collection of tensorsN)Ú
isinstanceÚcollectionsÚabcÚ	Containerr	   r4   Ú	TypeError)r2   s   &r   Ú_check_sequence_typer=   @   sA   € Ü�fœkŸo™o×7Ñ7×8Ò8¼JØ”—‘÷=ò =ô ÐBÓCÐCñ=r   c                 ó€   € \        V 4       Vf   T p\        V4       \        P                  P                  WW#V4       R # r&   )r=   r	   r
   r   ©r2   ÚoutputsÚopÚstreamsÚcommss   &&&&&r   Ú
all_reducerD   G   s2   € Ü˜Ô Ø‚ØˆÜ˜Ô!Ü	‡H�H×Ñ˜f¨r¸EÖBr   r@   c                ót  € V ^8„  d   QhR\         \        P                  ,          R\        P                  \         \        P                  ,          ,          R,          R\        R\        R\         \        P                  P
                  ,          R,          R\         \        P                  ,          R,          RR/# )	r1   r2   ÚoutputNÚrootrA   rB   r@   r3   )r   r	   r4   ÚintÚcudaÚStream)r5   s   "r   r6   r6   Q   s™   € ÷ (Eñ (EÜ”U—\‘\Õ"ð(Eä�L‰Lœ8¤E§L¡LÕ1Õ1°DÕ8ð(Eô ð(Eô 	ð	(Eô
 ”e—j‘j×'Ñ'Õ(¨4Õ/ð(Eô ”e—l‘lÕ# dÕ*ð(Eð 
ñ(Er   c                óÌ  € \        V 4       Ve6   Ve   \        R4      h\        P                  ! R\        ^R7       Wb,          pM~\        V\        P                  4      '       gQ   \        V\        P                  P                  4      '       d'   \        P                  ! R\        ^R7       W,          pMVf	   W,          MTp\        P                  P                  WW#WE4       R # )Nzä'output' and 'outputs' can not be both specified. 'outputs' is deprecated in favor of 'output', taking in a single output tensor. The signature of reduce is: reduce(inputs, output=None, root=0, op=SUM, streams=None, comms=None).z}`nccl.reduce` with an output tensor list is deprecated. Please specify a single output tensor with argument 'output' instead.r   z\nccl.reduce with an output tensor list is deprecated. Please specify a single output tensor.)r=   Ú
ValueErrorr   r   ÚFutureWarningr8   r	   r4   r9   r:   r   r
   Ú_nccl_reduce)r2   rF   rG   rA   rB   rC   r@   Ú_outputs   &&&&&&$ r   ÚreducerP   Q   s¿   € ô ˜Ô àÒØÒÜðYóð ô �MŠMðXäØõ	ð •m‰GÜ˜¤§¡×-Ò-´*Ø”—‘×(Ñ(÷3ò 3ô 	�Šð5äØõ		
ð •,‰à"(¢.�&–,°fˆÜ	‡H�H×Ñ˜&¨4°WÖDr   c                ó^   € V ^8„  d   QhR\         \        P                  ,          R\        RR/# )r1   r2   rG   r3   N©r   r	   r4   rH   )r5   s   "r   r6   r6   |   s-   € ÷ ;ñ ;Ü”U—\‘\Õ"ð;Ü*-ð;à	ñ;r   c                 ó\   € \        V 4       \        P                  P                  WW#4       R # r&   )r=   r	   r
   Ú_nccl_broadcast)r2   rG   rB   rC   s   &&&&r   Ú	broadcastrU   |   s    € ô ˜Ô Ü	‡H�H×Ñ˜V¨7Ö:r   c                óˆ   € V ^8„  d   QhR\         \        P                  ,          R\         \        P                  ,          RR/# )r1   r2   r@   r3   N)r   r	   r4   )r5   s   "r   r6   r6   ƒ   s8   € ÷ ?ñ ?Ü”U—\‘\Õ"ð?ä”e—l‘lÕ#ð?ð
 
ñ?r   c                 ór   € \        V 4       \        V4       \        P                  P                  WW#4       R # r&   )r=   r	   r
   Ú_nccl_all_gather)r2   r@   rB   rC   s   &&&&r   Ú
all_gatherrY   ƒ   s(   € ô ˜Ô Ü˜Ô!Ü	‡H�H×Ñ˜f¨wÖ>r   c                ó”   € V ^8„  d   QhR\         \        P                  ,          R\         \        P                  ,          R\        RR/# )r1   r2   r@   rA   r3   NrR   )r5   s   "r   r6   r6   Ž   sH   € ÷ 	Gñ 	GÜ”U—\‘\Õ"ð	Gä”e—l‘lÕ#ð	Gô 	ð	Gð 
ñ	Gr   c                 ót   € \        V 4       \        V4       \        P                  P                  WW#V4       R # r&   )r=   r	   r
   Ú_nccl_reduce_scatterr?   s   &&&&&r   Úreduce_scatterr]   Ž   s*   € ô ˜Ô Ü˜Ô!Ü	‡H�H×!Ñ! &°2ÀÖFr   )rD   rP   rU   rY   r]   )r   NN)NN)r9   r   Úcollections.abcr   Ú
torch.cudar	   Ú__all__ÚSUMr   r$   r)   r/   r=   rD   rP   rU   rY   r]   r(   r   r   Ú<module>rb      s”   ðã Û Ý $ã ò P€à€òò*-ò*&ò:õDð  $¨°TÀô Cð <@ØØØ26Ø
ñ(Eð .2÷(Eð (E÷V;÷?ð ØØ
÷	Gñ 	Gr   