+
     °³j  ã                   óÄ   € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	H
t
HtHtHtHt R tR tR tR	 tR
 tR tR tR tR tR tR tR tR t]R8X  d
   ]! 4        R# R# )é    N)ÚPartialState)Úassert_exception)ÚDistributedType)ÚDistributedOperationExceptionÚ	broadcastÚcopy_tensor_to_devicesÚgatherÚgather_objectÚpad_across_processesÚreducec                 óÆ   € \         P                  ! V P                  4      R ,           V P                  V P                  ,          ,           P	                  V P
                  4      # )g      ð?)ÚtorchÚarangeÚnum_processesÚprocess_indexÚtoÚdevice©Ústates   &Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/accelerate/test_utils/scripts/test_ops.pyÚcreate_tensorr   !   sD   € Ü�LŠL˜×,Ñ,Ó-°Õ3°u×7JÑ7JÈU×M`ÑM`Õ7`Õa×eÑeÐfk×frÑfrÓsÐsó    c                 ó¶   € \        V 4      p\        V4      pVP                  4       \        \	        ^V P
                  ^,          ^,           4      4      8X  g   Q hR# ©é   N)r   r	   ÚtolistÚlistÚranger   )r   ÚtensorÚgathered_tensors   &  r   Útest_gatherr!   %   sH   € Ü˜5Ó!€FÜ˜V“n€OØ×!Ñ!Ó#¤t¬E°!°U×5HÑ5HÈ!Õ5KÈaÕ5OÓ,PÓ'QÔQÐQÒQr   c                 ó†  € V P                   \        P                  8X  d   R # V P                  .p\	        V4      p\        V4      V P                  8X  g#   Q V R\        V4       RV P                   24       hV\        \        V P                  4      4      8X  g)   Q V R\        \        V P                  4      4       24       hR # )Nz, ú != )	Údistributed_typer   ÚXLAr   r
   Úlenr   r   r   )r   ÚobjÚgathered_objs   &  r   Útest_gather_objectr)   +   s±   € à×Ñ¤×!4Ñ!4Ô4ÙØ×ÑÐ
€CÜ  Ó%€LÜˆ|Ó × 3Ñ 3Ô3Ðt¸°~ÀRÌÈLÓHYÐGZÐZ^Ð_d×_rÑ_rÐ^sÐ5tÓtÐ3Øœ4¤ e×&9Ñ&9Ó :Ó;Ô;ÐtÀ¸~ÈTÔRVÔW\Ð]b×]pÑ]pÓWqÓRrÐQsÐ=tÓtÒ;r   c                 ó  € V P                   \        P                  8X  d   R # \        P                  ! ^V P
                  R7      P                  ^^4      P                  4       pVP                  4       '       d   Q h\        V4      pR # )N)r   )
r$   r   r%   r   r   r   ÚviewÚtÚis_contiguousr	   )r   r   Ú_s   &  r   Útest_gather_non_contiguousr/   5   sc   € à×Ñ¤×!4Ñ!4Ô4Ùô �\Š\˜" U§\¡\Ô2×7Ñ7¸¸1Ó=×?Ñ?ÓA€FØ×#Ñ#×%Ò%Ð%Ð%äˆv‹‚Ar   c                 ó  € \        V 4      p\        V4      pVP                  \        P                  ! V P
                  .4      8X  g   Q hVP                  4       \        \        ^V P
                  ^,           4      4      8X  g   Q hR# r   )	r   r   Úshaper   ÚSizer   r   r   r   )r   r   Úbroadcasted_tensors   &  r   Útest_broadcastr4   A   sk   € Ü˜5Ó!€FÜ" 6Ó*ÐØ×#Ñ#¤u§z¢z°5×3FÑ3FÐ2GÓ'HÔHÐHÐHØ×$Ñ$Ó&¬$¬u°Q¸×8KÑ8KÈaÕ8OÓ/PÓ*QÔQÐQÒQr   c                 óF  € V P                   '       dB   \        P                  ! V P                  ^,           4      P	                  V P
                  4      pM9\        P                  ! V P                  4      P	                  V P
                  4      p\        V4      pVP                  \        P                  ! V P                  ^,           .4      8X  g   Q hV P                   '       g?   VP                  4       \        \        ^ V P                  4      4      ^ .,           8X  g   Q hR# R# r   )Úis_main_processr   r   r   r   r   r   r1   r2   r   r   r   )r   r   Úpadded_tensors   &  r   Útest_pad_across_processesr8   H   sÒ   € ð ××ÐÜ—’˜e×1Ñ1°AÕ5Ó6×9Ñ9¸%¿,¹,ÓG‰ä—’˜e×1Ñ1Ó2×5Ñ5°e·l±lÓCˆÜ(¨Ó0€MØ×Ñ¤%§*¢*¨e×.AÑ.AÀAÕ.EÐ-FÓ"GÔGÐGÐGØ× × Ð Ø×#Ñ#Ó%¬¬e°A°u×7JÑ7JÓ.KÓ)LÐPQÈsÕ)RÔRÐRÒRñ !r   c                 ó  € V P                   ^8w  d   R# \        V 4      p\        VR4      p\        P                  ! R^.4      P                  V P                  4      p\        P                  ! W#4      '       g   Q V RV 24       hR# )é   NÚsumg      @r#   ©r   r   r   r   r   r   r   Úallclose©r   r   Úreduced_tensorÚtruth_tensors   &   r   Útest_reduce_sumrA   U   óq   € à×Ñ˜aÔÙÜ˜5Ó!€FÜ˜F EÓ*€NÜ—<’<  a Ó)×,Ñ,¨U¯\©\Ó:€LÜ�>Š>˜.×7Ò7Ð^¸NÐ;KÈ4ÐP\È~Ð9^Ó^Ò7r   c                 ó  € V P                   ^8w  d   R# \        V 4      p\        VR4      p\        P                  ! R^.4      P                  V P                  4      p\        P                  ! W#4      '       g   Q V RV 24       hR# )r:   NÚmeang       @r#   r<   r>   s   &   r   Útest_reduce_meanrE   _   sq   € à×Ñ˜aÔÙÜ˜5Ó!€FÜ˜F FÓ+€NÜ—<’<  a Ó)×,Ñ,¨U¯\©\Ó:€LÜ�>Š>˜.×7Ò7Ð^¸NÐ;KÈ4ÐP\È~Ð9^Ó^Ò7r   c                 ó  € V P                   ^8w  d   R# \        V 4      p\        VR4      p\        P                  ! R^.4      P                  V P                  4      p\        P                  ! W#4      '       g   Q V RV 24       hR# )r:   NÚmaxg      @r#   r<   r>   s   &   r   Útest_reduce_maxrH   i   rB   r   c                 óì  € V P                   \        P                  \        P                  39   d   R # RV n        V P
                  ^ 8X  d6   R\        P                  ! . RO.4      P                  V P                  4      /pM5R\        P                  ! . RO..4      P                  V P                  4      /p\        \        4      ;_uu_ 4        \        V^ R7       R R R 4       V P
                  ^ 8X  d6   R\        P                  ! . RO.4      P                  V P                  4      /pM8R\        P                  ! . RO. RO..4      P                  V P                  4      /p\        \        4      ;_uu_ 4        \        V4       R R R 4       V P
                  ^ 8X  d6   R\        P                  ! . RO.4      P                  V P                  4      /pM8R\        P                  ! . RO. RO..4      P                  V P                  4      /p\        \        4      ;_uu_ 4        \        V4       R R R 4       RV n        R #   + '       g   i     ELl; i  + '       g   i     LÖ; i  + '       g   i     L@; i)NTr   )ÚdimF)ç        r   r:   é   é   )rK   r   r:   rL   rM   é   )rN   é   é   é   é	   )r$   r   ÚNOr%   Údebugr   r   r   r   r   r   r   r   r   r   )r   Údatas   & r   Útest_op_checkerrV   s   sÂ  € à×Ñ¤/×"4Ñ"4´o×6IÑ6IÐ!JÔJÙØ€E„Kà×Ñ˜aÔØœ%Ÿ,š,Ò(9Ð':Ó;×>Ñ>¸u¿|¹|ÓLÐM‰àœ%Ÿ,š,Ò)=Ð(>Ð'?Ó@×CÑCÀEÇLÁLÓQÐRˆä	Ô7×	8Õ	8Ü˜T qÕ)÷ 
9ð ×Ñ˜aÔØœ%Ÿ,š,Ò(9Ð':Ó;×>Ñ>¸u¿|¹|ÓLÐM‰àœ%Ÿ,š,Ò):ºOÐ(LÐ'MÓN×QÑQÐRW×R^ÑR^Ó_Ð`ˆä	Ô7×	8Õ	8ÜˆtŒ÷ 
9ð ×Ñ˜aÔØœ%Ÿ,š,Ò(9Ð':Ó;×>Ñ>¸u¿|¹|ÓLÐM‰àœ%Ÿ,š,Ò):ºOÐ(LÐ'MÓN×QÑQÐRW×R^ÑR^Ó_Ð`ˆä	Ô7×	8Õ	8Ü�$Œ÷ 
9ð €E†K÷+ 
9×	8Ð	8ú÷ 
9×	8ú÷ 
9×	8ús$   ÃH<Å6IÈI#È<I	ÉI 	É#I3	c           	      óÊ  € V P                   \        P                  \        P                  39  d   R # V P                  '       dC   \
        P                  ! . RO\
        P                  R7      P                  V P                  4      pMR p\        V4      p\
        P                  ! V\
        P                  ! . RO\
        P                  V P                  R7      4      '       g   Q hR # )N)Údtype)rX   r   )r   r:   rL   )r$   r   Ú	MULTI_GPUr%   r6   r   r   Úintr   r   r   r=   )r   r   s   & r   Útest_copy_tensor_to_devicesr[   –   s‘   € Ø×Ñ¤o×&?Ñ&?Ä×ATÑATÐ%UÔUÙØ××ÐÜ—’ši¬u¯y©yÔ9×<Ñ<¸U¿\¹\ÓJ‰àˆÜ# FÓ+€FÜ�>Š>˜&¤%§,¢,ªyÄÇ	Á	ÐRW×R^ÑR^Ô"_×`Ò`Ð`Ò`r   c                 ó   € \        4        R # )N)Úmain)Úindexs   &r   Ú_mp_fnr_   ¡   s   € ä†Fr   c                  ó’  € \        4       p V P                  R V  24       V P                  R4       \        V 4       V P                  R4       \        V 4       V P                  R4       \	        V 4       V P                  R4       \        V 4       V P                  R4       \        V 4       V P                  R4       \        V 4       V P                  R4       \        V 4       V P                  R4       \        V 4       V P                  R	4       \        V 4       V P                  R
4       \        V 4       V P                  4        R# )zState: ztesting gatherztesting gather_objectztesting gather non-contiguousztesting broadcastztesting pad_across_processesztesting reduce_sumztesting reduce_meanztesting reduce_maxztesting op_checkerz&testing sending tensors across devicesN)r   Úprintr!   r)   r/   r4   r8   rA   rE   rH   rV   r[   Údestroy_process_groupr   s    r   r]   r]   ¦   sú   € Ü‹N€EØ	‡K�K�'˜%˜Ð!Ô"Ø	‡K�KÐ Ô!Ü�ÔØ	‡K�KÐ'Ô(Ü�uÔØ	‡K�KÐ/Ô0Ü˜uÔ%Ø	‡K�KÐ#Ô$Ü�5ÔØ	‡K�KÐ.Ô/Ü˜eÔ$Ø	‡K�KÐ$Ô%Ü�EÔØ	‡K�KÐ%Ô&Ü�UÔØ	‡K�KÐ$Ô%Ü�EÔØ	‡K�KÐ$Ô%Ü�EÔØ	‡K�KÐ8Ô9Ü Ô&Ø	×ÑÖ!r   Ú__main__)r   Ú
accelerater   Úaccelerate.test_utils.testingr   Úaccelerate.utils.dataclassesr   Úaccelerate.utils.operationsr   r   r   r	   r
   r   r   r   r!   r)   r/   r4   r8   rA   rE   rH   rV   r[   r_   r]   Ú__name__© r   r   Ú<module>rj      s�   ðó" å #Ý :Ý 8÷÷ ñ òtòRòuò	òRò
Sò_ò_ò_ò òFaòò
"ð4 ˆzÔÙ†Fñ r   