ó
    Eñiø  ã                   óv  • % S SK r S SKrS SKrS SKrS SKJr  S SKr\\R                  -  r	\ R                  " \5      rS\4S jr\" 5       (       a'  \R                  R!                  5       (       d  \" S5      e\R                  R$                  r\R                  R(                  r\R                  R,                  r\R                  R0                  r\R                  R4                  r\" 5       (       a«  S SKJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r7  S r80 r9\:\\Rv                  4   \<S'   SS	\S
\4S jjr=\R|                  S:w  a  S SKJ?r?  SSK@JArAJBrB  SSKC7  SSKCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrL  SSKMJNrN  SSKOJPrPJQrQJOrO  \3" 5         g " S S5      rR\R\R¦                  S   l0        g)é    N)Ú	timedeltaÚreturnc                  ó6   • [        [        R                  S5      $ )a  
Return ``True`` if the distributed package is available.

Otherwise,
``torch.distributed`` does not expose any other APIs. Currently,
``torch.distributed`` is available on Linux, MacOS and Windows. Set
``USE_DISTRIBUTED=1`` to enable it when building PyTorch from source.
Currently, the default value is ``USE_DISTRIBUTED=1`` for Linux and Windows,
``USE_DISTRIBUTED=0`` for MacOS.
Ú
_c10d_init)ÚhasattrÚtorchÚ_C© ó    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/distributed/__init__.pyÚis_availabler      s   € ô ”5—8‘8˜\Ó*Ð*r   z&Failed to initialize torch.distributed)Ú_broadcast_coalescedÚ"_compute_bucket_assignment_by_sizeÚ_ControlCollectivesÚ_DEFAULT_FIRST_BUCKET_BYTESÚ_make_nccl_premul_sumÚ_register_builtin_comm_hookÚ_register_comm_hookÚ_StoreCollectivesÚ_test_python_storeÚ_verify_params_across_processesÚBackendÚBuiltinCommHookTypeÚ
DebugLevelÚ	FileStoreÚget_debug_levelÚ
GradBucketÚLoggerÚPrefixStoreÚProcessGroupÚReducerÚset_debug_levelÚset_debug_level_from_envÚStoreÚTCPStoreÚWorkc                  óJ   ^• SSK m " U4S jSTR                  5      n U " 5       $ )zm
Supports using PDB from inside a multiprocessing child process.

Usage:
_make_distributed_pdb().set_trace()
r   Nc                   ó"   >• \ rS rSrU 4S jrSrg)Ú._make_distributed_pdb.<locals>._DistributedPdbéQ   c                 óú   >• [         R                  n [        S5       [         l        TR                  R                  " U /UQ70 UD6  S S S 5        U[         l        g ! , (       d  f       N= f! U[         l        f = f)Nz
/dev/stdin)ÚsysÚstdinÚopenÚPdbÚinteraction)ÚselfÚargsÚkwargsÚ_stdinÚpdbs       €r   r0   Ú:_make_distributed_pdb.<locals>._DistributedPdb.interactionR   sZ   ø€ ÜŸ™�ð'Ü˜lÔ+¬s¬yØŸ™×+Ò+¨DÐB°4ÒB¸6ÒB÷ ,ð !'”C•I÷ ,Õ+ûð !'”C•Iús"   “A- ž*AÁA- Á
A*Á&A- Á-A:r
   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r0   Ú__static_attributes__)r5   s   €r   Ú_DistributedPdbr)   Q   s   ø† ÷'ð 'r   r<   )r5   r/   )r<   r5   s    @r   Ú_make_distributed_pdbr=   F   s#   ø€ ó 	÷	'˜cŸg™gô 	'ñ Ó Ð r   Ú_breakpoint_cacheÚrankÚskipc                 óh  • US:”  ae  [        [        [        R                  " 5       5      5      n[        R                  US5      S-   nU[        U'   XA::  a  [        R                  SU5        gUb\  [        R                  R                  R                   H4  n[        R                  R                  R                  [        US9U5        M6     [        5       U :X  a/  [        5       nUR!                  SU  S35        UR#                  5         [        R$                  R'                  5       n[        R$                  R)                  5       n[        R$                  R+                  S5         [-        5         [        R$                  R+                  U5        Ag! [        R$                  R+                  U5        Af = f)	a  
Set a breakpoint, but only on a single rank.  All other ranks will wait for you to be
done with the breakpoint before continuing.

Args:
    rank (int): Which rank to break on.  Default: ``0``
    skip (int): Skip the first ``skip`` calls to this breakpoint. Default: ``0``.
r   é   zSkip the breakpoint, counter=%dN)ÚsecondszS
!!! ATTENTION !!!

Type 'up' to get to the frame that called dist.breakpoint(rank=z)
F)ÚhashÚstrÚ	tracebackÚ
format_excr>   ÚgetÚlogÚwarningr   ÚdistributedÚdistributed_c10dÚ_pg_mapÚ_set_pg_timeoutr   Úget_rankr=   ÚmessageÚ	set_tracer	   Ú_meta_in_tls_dispatch_includeÚ_DisableTorchDispatchÚ!_set_meta_in_tls_dispatch_includeÚbarrier)	r?   r@   Ú	timeout_sÚkeyÚcounterÚgroupr5   Úmeta_in_tlsÚguards	            r   Ú
breakpointr\   ^   sU  € ð �!‹8Ü”sœ9×/Ò/Ó1Ó2Ó3ˆCÜ'×+Ñ+¨C°Ó3°aÑ7ˆGØ%,Ô˜cÑ"Ø‹Ü—‘Ð=¸wÔGØð Ñ Ü×*Ñ*×;Ñ;×CÔC�Ü×!Ñ!×2Ñ2×BÑBÜ iÑ0°%öñ Dô
 ‹:˜ÓÜ'Ó)ˆCØ�K‰KðRØRVÐQWÐWZð\ôð �M‰MŒOô —h‘h×<Ñ<Ó>ˆÜ—‘×.Ñ.Ó0ˆÜ�‰×2Ñ2°5Ô9ð	ÜŒIä�H‰H×6Ñ6°{ÔCÙøô �H‰H×6Ñ6°{ÔCÙús   Å$
F Æ"F1Úwin32)Ú	HashStorerB   )Ú
DeviceMeshÚinit_device_mesh)Ú*)	Ú_all_gather_baseÚ_coalescing_managerÚ_CoalescingManagerÚ_create_process_group_wrapperÚ_get_process_group_nameÚ_rank_not_in_groupÚ_reduce_scatter_baseÚ_time_estimatorÚget_node_local_rank)Ú_remote_device)Ú_create_store_from_optionsÚregister_rendezvous_handlerÚ
rendezvousc                   ó   • \ rS rSrSrg)Ú_ProcessGroupStubé¬   r
   N)r7   r8   r9   r:   r;   r
   r   r   rp   rp   ¬   s   † Úr   rp   ztorch.distributed)r   r   i  )TÚloggingr,   rF   ÚtypingÚdatetimer   r   ÚintÚSymIntÚRankTypeÚ	getLoggerr7   rI   Úboolr   r	   r   ÚRuntimeErrorÚ
_DistErrorÚ	DistErrorÚ_DistBackendErrorÚDistBackendErrorÚ_DistNetworkErrorÚDistNetworkErrorÚ_DistStoreErrorÚDistStoreErrorÚ_DistQueueEmptyErrorÚQueueEmptyErrorÚtorch._C._distributed_c10dr   r   r   r   r   r   r   r   r   r   r   Ú_Backendr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Ú_Workr=   r>   ÚdictÚAnyÚ__annotations__r\   Úplatformr^   Údevice_meshr_   r`   rL   rb   rc   rd   re   rf   rg   rh   ri   rj   Úremote_devicerk   rn   rl   rm   rp   Úmodulesr
   r   r   Ú<module>r�      sv  ðä Û 
Û Û Ý ã ð �—‘Ñ€ð ×Ò˜Ó!€ð+�dô +ñ ‡>�>˜%Ÿ(™(×-Ñ-×/Ñ/Ù
Ð?Ó
@Ð@ð �H‰H×Ñ€	Ø—8‘8×-Ñ-Ð Ø—8‘8×-Ñ-Ð Ø—‘×)Ñ)€Ø—(‘(×/Ñ/€á‡>�>÷÷ ÷ ÷ ÷ ÷ õ ò8!ð, 02Ð�t˜C §¡˜OÑ,Ó1ñ(˜ð (¨õ (ðT ‡|�|�wÓÝ8ç9ô
 $÷
÷ 
õ 
õ .÷ñ ñ Õ÷ñ ð 5F€C‡K�KÐ#Ñ$Õ1r   