+
     °³j½  ã                   ó–  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHtHtHt R tR tR	 R
 ltR t]! ]P,                  P/                  R^4      4      t]P2                  ! ]^8  RR7      tR t]R 4       t]R 4       t]R 4       t]RR R ll4       t]RR R ll4       t ]R 4       t!R t"]#R8X  d
   ]"! 4        R# R# )zT
Test file to ensure that in general certain situational setups for notebooks work.
N)ÚmarkÚraises)ÚChildFailedError)ÚPartialStateÚnotebook_launcher)Úrequire_bnb)Úis_bnb_availableÚis_rocm_availableÚis_xpu_availablec                  ó2   € \        R \        4        24       R# )úPartialState:
N)Úprintr   © ó    Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/accelerate/test_utils/scripts/test_notebook.pyÚbasic_functionr      s   € ä	ˆOœL›NÐ+Ð
,Ö-r   c                 óÖ   € V P                  4       '       d   R # V P                  4       pV^ 8”  d$   V P                  V^,
          4       \        R4      h\	        R\        4        24       R # )Nz&The nut hasn't cracked yet! Try again.r   )ÚemptyÚgetÚputÚRuntimeErrorr   r   )ÚqueueÚtrials   & r   Útough_nut_functionr   "   sP   € Ø‡{�{‡}‚}ÙØ�I‰I‹K€EØˆq„yØ�	‰	�%˜!•)ÔÜÐCÓDÐDä	ˆOœL›NÐ+Ð
,Ö-r   c                ó$   € V ^8„  d   QhR\         /# )é   Ú	sleep_sec©Úint)Úformats   "r   Ú__annotate__r    -   s   € ÷ ñ ¤cñ r   c                 óŒ   € \        4       pVP                  ^,          ^ 8X  d   \        R4      h\        P                  ! V 4       R# )r   ú+I'm an even process. I don't like to sleep.N)r   Úprocess_indexr   ÚtimeÚsleep)r   Ústates   & r   Úbipolar_sleep_functionr'   -   s4   € Ü‹N€EØ×Ñ˜QÕ !Ô#ÜÐHÓIÐIä�
Š
�9Ör   c                  ó    € ^ RI p V P                  P                  4       '       d*   V P                  P	                  4       '       d   Q R4       hR# R# )é    Nun   Child process started in bad-fork state â€” notebook_launcher tainted the parent's CUDA driver before forking.)ÚtorchÚcudaÚis_availableÚ_CÚ_cuda_isInBadFork)r*   s    r   Úassert_clean_cuda_fork_functionr/   5   sG   € ó
 à‡z�z×Ñ× Ò Ø—8‘8×-Ñ-×/Ò/ð 	
ð7ó	
Ð/Ñ/ñ !r   ÚACCELERATE_NUM_PROCESSESzNeed at least 2 processes)Úreasonc                  ó2   € \        \        R\        R 7       R# ©©Únum_processesNr   ©r   r   ÚNUM_PROCESSESr   r   r   Útest_can_initializer8   G   s   € Ü”n b¼×Fr   c                  ó2   € \        \        R\        R 7       R# r3   )r   r/   r7   r   r   r   Útest_clean_cuda_forkr:   K   s   € ô Ô5°rÌ×Wr   c                  ó4   € \        \        R\        R R7       R# )Ústatic©r5   Úrdzv_backendNr   r6   r   r   r   Útest_static_rdzv_backendr?   R   s   € ä”n b¼ÐT\×]r   c                  ó4   € \        \        R\        R R7       R# )Úc10dr=   Nr   r6   r   r   r   Útest_c10d_rdzv_backendrB   W   s   € ä”n b¼ÐTZ×[r   c                ó$   € V ^8„  d   QhR\         /# )r   Úmax_restartsr   )r   s   "r   r    r    ]   s   € ÷ lñ l¤cñ lr   c                 ó
  € ^ RI Hp \        4       '       g   \        4       '       d   VP	                  R4      pMVP	                  R4      pVP                  4       pVP                  V 4       \        \        V3\        V R7       R# )r)   NÚspawnÚfork)r5   rD   )
Útorch.multiprocessingÚmultiprocessingr
   r	   Úget_contextÚQueuer   r   r   r7   )rD   ÚmpÚctxr   s   &   r   Útest_fault_tolerantrN   \   s`   € õ 'ô ×ÒÔ.×0Ò0Ø�n‰n˜WÓ%‰à�n‰n˜VÓ$ˆØ�I‰I‹K€EØ	‡I�IˆlÔÜÔ(¨5¨(Ä-Ð^j×kr   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úmonitor_intervalr   )Úfloatr   )r   s   "r   r    r    m   s   € ÷ 	`ñ 	`¤eð 	`¼sñ 	`r   c           	      ó  € \         P                   ! 4       p\        \        R R7      ;_uu_ 4        \        \        V3\
        V R7       RRR4       \         P                   ! 4       V,
          V8  g   Q R4       hR#   + '       g   i     L:; i)r"   ©Úmatch)r5   rP   Nz,Monitoring did not stop the process in time.)r$   r   r   r   r'   r7   )rP   r   Ú
start_times   && r   Útest_monitoringrV   l   sc   € ä—’“€JÜ	Ô Ð(U×	VÖ	VÜÜ"ØˆLÜ'Ø-õ		
÷ 
Wô �9Š9‹;˜Õ# iÔ/Ð_Ð1_Ó_Ò/÷ 
W×	Vús   ¯A:Á:B
	c                  ó¦   € \        \        R R7      ;_uu_ 4        ^ RIp \        \        R\
        R7       RRR4       R#   + '       g   i     R# ; i)zPlease keep these importsrS   Nr4   r   )r   r   Úbitsandbytesr   r   r7   )Úbnbs    r   Útest_problematic_importsrZ   y   s/   € ä	”Ð$?×	@Ö	@Û"äœ.¨"¼MÕJ÷ 
A×	@×	@Ò	@ús	   š?¿A	c                  ó–  € \        R 4       \        4        \        R4       \        4        \        R4       \        4        \        R4       \	        4        \        R4       \        4        \        R4       \        4        \        4       '       d   \        R4       \        4        \        ^8”  d   \        4       P                  4        R# R# )zTest basic notebook can be ranz0Test clean CUDA fork (regression test for #3925)zTest static rendezvous backendzTest c10d rendezvous backendzTest fault tolerantzTest monitoringzTest problematic imports (bnb)N)r   r8   r:   r?   rB   rN   rV   r   rZ   r7   r   Údestroy_process_groupr   r   r   Úmainr]   �   s�   € Ü	Ð
*Ô+ÜÔÜ	Ð
<Ô=ÜÔÜ	Ð
*Ô+ÜÔÜ	Ð
(Ô)ÜÔÜ	Ð
Ô ÜÔÜ	Ð
ÔÜÔÜ×ÒÜÐ.Ô/Ü Ô"Ü�qÔÜ‹×,Ñ,Ö.ñ r   Ú__main__)é   )g{®Gáz„?éd   )$Ú__doc__Úosr$   Úpytestr   r   Ú0torch.distributed.elastic.multiprocessing.errorsr   Ú
accelerater   r   Úaccelerate.test_utilsr   Úaccelerate.utilsr   r	   r
   r   r   r'   r/   r   Úenvironr   r7   ÚskipifÚrequire_multi_processr8   r:   r?   rB   rN   rV   rZ   r]   Ú__name__r   r   r   Ú<module>rl      s  ðñó 
Û ç Ý Mç 6Ý -ß RÑ Rò.ò
.õò
ñ �B—J‘J—N‘NÐ#=¸qÓAÓB€ØŸš M°AÑ$5Ð>YÔZÐ òGð ñXó ðXð ñ^ó ð^ð ñ\ó ð\ð öló ðlð ö	`ó ð	`ð ñKó ðKò/ð( ˆzÔÙ†Fñ r   