+
     °³j´‡  ã                   ó¾  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIH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	IHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ]"! 4       '       d   R
t'R
t(MRt'Rt(R%R lt)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R t6R%R lt7R%R lt8R t9R t:R t;R t<R  t=R! t>R" t?R# t@]AR$8X  d
   ]@! 4        R# R# )&é    N)Údeepcopy)ÚPath)Ú
DataLoaderÚDataset)ÚAccelerator)ÚSeedableRandomSamplerÚprepare_data_loader)ÚAcceleratorState)ÚRegressionDatasetÚRegressionModelÚare_the_same_tensors)ÚDataLoaderConfigurationÚDistributedTypeÚgatherÚgather_objectÚis_bf16_availableÚis_cuda_availableÚis_datasets_availableÚis_fp16_availableÚis_hpu_availableÚis_mps_availableÚis_pytest_availableÚset_seedÚsynchronize_rng_statesgü©ñÒMbP?g�íµ ÷Æ°>c                óv   € V'       d%   \        VV \        V 4      R7      p\        WVR7      # \        WRVR7      # )zBCreates a dataloader that can also use the `SeedableRandomSampler`)Ú	generatorÚdata_sourceÚnum_samples)Ú
batch_sizeÚsamplerT)r   Úshuffler   )r   Úlenr   )Ú	train_setr   r   Úuse_seedable_samplerr    s   &&&& Új/home/luca/screen-checking/.venv/lib/python3.14/site-packages/accelerate/test_utils/scripts/test_script.pyÚgenerate_baseline_dataloaderr&   9   s=   € çô (ØØ!Ü˜I›ô
ˆô
 ˜)ÀGÔLÐLä˜)ÀDÐT]Ô^Ð^ó    c                 ó6   € \        R V P                   24       R# )zPrinting from the main process N©ÚprintÚprocess_index©Ústates   &r%   Ú
print_mainr.   H   ó   € Ü	Ð+¨E×,?Ñ,?Ð+@Ð
AÖBr'   c                 ó6   € \        R V P                   24       R# )z%Printing from the local main process N)r*   Úlocal_process_indexr,   s   &r%   Úprint_local_mainr2   L   s   € Ü	Ð1°%×2KÑ2KÐ1LÐ
MÖNr'   c                 ó6   € \        R V P                   24       R# )úPrinting from the last process Nr)   r,   s   &r%   Ú
print_lastr5   P   r/   r'   c                 ó<   € \        R V RV P                   24       R# )úPrinting from process ú: Nr)   )r-   Úprocess_idxs   &&r%   Úprint_onr:   T   s   € Ü	Ð" ; -¨r°%×2EÑ2EÐ1FÐ
GÖHr'   c            	      óº  € \        4       p V P                  p\        R 4      pV P                  4       ;_uu_ 4        V P                  '       dF   \
        P                  ! R4       \        VR4      ;_uu_ 4       pVP                  R4       RRR4       M.\        VR4      ;_uu_ 4       pVP                  R4       RRR4       RRR4       V P                  4        V P                  '       dÕ   \        V4      ;_uu_ 4       pRP                  VP                  4       4      pRRR4        XP                  R4      '       g   Q R4       hV^8”  d   VP                  R4      '       g   Q R4       hVP                  R4      V P                  ^,
          8X  g.   Q RVP                  R	4      ^,            R
V P                   24       h V P                  '       d'   VP#                  4       '       d   VP!                  4        V P                  4        \$        P&                  ! 4       p\(        P*                  ! V4      ;_uu_ 4        V P-                  \.        4      ! V P0                  4       RRR4       VP3                  4       P5                  4       pV P                  '       d   VR8X  g   Q V R24       hM-VP3                  4       P5                  4       R8X  g   Q V R24       hVP7                  ^ 4       VP9                  ^ 4       \(        P*                  ! V4      ;_uu_ 4        V P;                  \<        4      ! V P0                  4       RRR4       V P>                  '       d'   VP3                  4       P5                  4       R8X  g   Q hM%VP3                  4       P5                  4       R8X  g   Q hVP7                  ^ 4       VP9                  ^ 4       \(        P*                  ! V4      ;_uu_ 4        V PA                  \B        4      ! V P0                  4       RRR4       V PD                  '       dE   VP3                  4       P5                  4       RV P0                  P                  ^,
           28X  g   Q hM%VP3                  4       P5                  4       R8X  g   Q hVP7                  ^ 4       VP9                  ^ 4       \G        V4       Fà  p\(        P*                  ! V4      ;_uu_ 4        V PI                  \J        VR7      ! V P0                  V4       RRR4       V PL                  V8X  d7   VP3                  4       P5                  4       RV RV PL                   28X  g   Q hM%VP3                  4       P5                  4       R8X  g   Q hVP7                  ^ 4       VP9                  ^ 4       Kâ  	  R#   + '       g   i     ELî; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELÅ; i  \         d    TP!                  4        h i ; i  + '       g   i     EL·; i  + '       g   i     ELî; i  + '       g   i     EL7; i  + '       g   i     ELQ; i)zcheck_main_process_first.txtçš™™™™™¹?za+zCurrently in the main process
NzNow on another process
Ú zMain process was not firstzOnly wrote to file zNow on another processz times, not z Printing from the main process 0z$ != Printing from the main process 0z != ""z&Printing from the local main process 0r4   )r+   r7   r8   )'r   Únum_processesr   Úmain_process_firstÚis_main_processÚtimeÚsleepÚopenÚwriteÚwait_for_everyoneÚjoinÚ	readlinesÚ
startswithÚendswithÚcountÚAssertionErrorÚunlinkÚexistsÚioÚStringIOÚ
contextlibÚredirect_stdoutÚon_main_processr.   r-   ÚgetvalueÚrstripÚtruncateÚseekÚon_local_main_processr2   Úis_local_main_processÚon_last_processr5   Úis_last_processÚrangeÚ
on_processr:   r+   )Úacceleratorr>   ÚpathÚfÚtextÚresultr9   s          r%   Úprocess_execution_checkrb   X   s²  € Ü“-€KØ×-Ñ-€MäÐ.Ó/€DØ	×	'Ñ	'×	)Õ	)Ø×&×&Ð&Ü�JŠJ�sŒOÜ�d˜D×!Ô! QØ—‘Ð9Ô:÷ "Ð!ô �d˜D×!Ô! QØ—‘Ð2Ô3÷ "÷ 
*ð ×!Ñ!Ô#à×"×"Ð"Ü�$�ZŒZ˜1Ø—7‘7˜1Ÿ;™;›=Ó)ˆD÷ ð		Ø—?‘?Ð#D×EÒEÐcÐGcÓcÐEØ˜qÔ Ø—}‘}Ð%?×@Ò@Ð^ÐB^Ó^Ð@Ø—:‘:Ð8Ó9¸[×=VÑ=VÐYZÕ=ZÔZð Ø% d§j¡jÐ1IÓ&JÈQÕ&NÐ%OÈ|Ð\g×\uÑ\uÐ[vÐwóÑZð ×"×"Ð" t§{¡{§}¢}Ø�‰ŒØ×!Ñ!Ô#ä
�Š‹€AÜ	×	#Ò	# A×	&Õ	&Ø×#Ñ#¤JÔ/°×0AÑ0AÔB÷ 
'à�Z‰Z‹\× Ñ Ó"€FØ×"×"Ð"ØÐ;Ô;ÐlÀ¸xÐGkÐ=lÓlÑ;à�z‰z‹|×"Ñ"Ó$¨Ô*Ð=¨v¨h°fÐ,=Ó=Ð*Ø‡J�Jˆq„MØ‡F�Fˆ1„Iä	×	#Ò	# A×	&Õ	&Ø×)Ñ)Ô*:Ô;¸K×<MÑ<MÔN÷ 
'à×(×(Ð(Ø�z‰z‹|×"Ñ"Ó$Ð(PÔPÐPÑPà�z‰z‹|×"Ñ"Ó$¨Ô*Ð*Ð*Ø‡J�Jˆq„MØ‡F�Fˆ1„Iä	×	#Ò	# A×	&Õ	&Ø×#Ñ#¤JÔ/°×0AÑ0AÔB÷ 
'à×"×"Ð"Ø�z‰z‹|×"Ñ"Ó$Ð*IÈ+×J[ÑJ[×JiÑJiÐlmÕJmÐInÐ(oÔoÐoÑoà�z‰z‹|×"Ñ"Ó$¨Ô*Ð*Ð*Ø‡J�Jˆq„MØ‡F�Fˆ1„Iä˜]Ö+ˆÜ×'Ò'¨×*Õ*Ø×"Ñ"¤8¸;Ð"ÔGÈ×HYÑHYÐ[fÔg÷ +à×$Ñ$¨Ô3Ø—:‘:“<×&Ñ&Ó(Ð.DÀ[ÀMÐQSÐT_×TmÑTmÐSnÐ,oÔoÐoÑoà—:‘:“<×&Ñ&Ó(¨BÔ.Ð.Ð.Ø	�
‰
�1ŒØ	�‰ˆqŽ	ó ,÷m "×!Ð!ú÷ "×!Ð!ú÷ 
*×	)Ð	)ú÷ �ZˆZûô ô 	Ø�K‰KŒMØð	ú÷ 
'×	&Ð	&ú÷ 
'×	&Ð	&ú÷ 
'×	&Ð	&ú÷ +×*Ð*ús�   º=WÁ7V	Â	WÂ&V1	Â8WÃ= WÄ&W- Ä=$W- Å"AW- È9&XÌ&X!Ï!&X5Ó)Y	ÖV.Ö(	WÖ1WÖ<	W×W	×W*	×-X
ØX	Ø!X2	Ø5Y	Ù	Yc                  óh   € \        4       p V P                  ^ 8X  d   \        R4       \        V 4       R# )r   zTesting, testing. 1, 2, 3.N)r
   r1   r*   r,   s    r%   Úinit_state_checkrd   ¡   s(   € äÓ€EØ× Ñ  AÔ%ÜÐ*Ô+Ü	ˆ%†Lr'   c                  óÔ  € \        4       p \        R .4       \        \        P                  ! 4       4      '       g   Q R4       hV P
                  \        P                  8X  dB   \        R.4       \        \        P                  P	                  4       4      '       g   Q R4       hM_V P
                  \        P                  8X  dA   \        R.4       \        \        P                  P	                  4       4      '       g   Q R4       h\        P                  ! 4       p\        R.VR7       \        VP                  4       4      '       g   Q R4       hV P                  ^ 8X  d   \        R	4       R
# R
# )Útorchz*RNG states improperly synchronized on CPU.Úcudaz*RNG states improperly synchronized on GPU.Úxpuz*RNG states improperly synchronized on XPU.r   )r   z0RNG states improperly synchronized in generator.zAll rng are properly synched.N)r
   r   r   rf   Úget_rng_stateÚdistributed_typer   Ú	MULTI_GPUrg   Ú	MULTI_XPUrh   Ú	GeneratorÚ	get_stater1   r*   )r-   r   s     r%   Úrng_sync_checkro   ©   s  € ÜÓ€EÜ˜G˜9Ô%Ü¤× 3Ò 3Ó 5×6Ò6ÐdÐ8dÓdÐ6Ø×Ñ¤×!:Ñ!:Ô:Ü ˜xÔ(Ü#¤E§J¡J×$<Ñ$<Ó$>×?Ò?ÐmÐAmÓmÑ?Ø	×	Ñ	¤?×#<Ñ#<Ô	<Ü ˜wÔ'Ü#¤E§I¡I×$;Ñ$;Ó$=×>Ò>ÐlÐ@lÓlÐ>Ü—’Ó!€IÜ˜K˜=°IÕ>Ü 	× 3Ñ 3Ó 5×6Ò6ÐjÐ8jÓjÐ6à× Ñ  AÔ%ÜÐ-Ö.ñ &r'   c            	      óü  € \        4       p ^ V P                  ,          p\        \        V4      ^R7      p\	        W P
                  V P                  V P                  RR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      p\        P                  ! VP                  4       \        P                  ! ^ V4      P                  4       4      '       g   Q R4       h\        \        V4      ^R7      p\	        VV P
                  V P                  V P                  RRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      p\        P                  ! VP                  4       \        P                  ! ^ V4      P                  4       4      '       g   Q R4       hV P                  ^ 8X  d   \        R4       \        \        V4      ^RR7      p\	        W P
                  V P                  V P                  RR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      P!                  4       pVP#                  4        V\%        \        V4      4      8X  g   Q R4       h\        \        V4      ^RR7      p\	        VV P
                  V P                  V P                  RRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      P!                  4       pVP#                  4        V\%        \        V4      4      8X  g   Q R4       hV P&                  ^ 8X  d   \        R	4       R
# R
# )é    ©r   T)Úput_on_deviceú%Wrong non-shuffled dataloader result.)rs   Úsplit_batchesz Non-shuffled dataloader passing.©r   r!   ú!Wrong shuffled dataloader result.zShuffled dataloader passing.N©r
   r>   r   r[   r	   Údevicer+   Úappendr   rf   ÚcatÚequalÚcpuÚarangeÚlongr*   ÚtolistÚsortÚlistr1   ©r-   ÚlengthÚdlra   Úbatchs        r%   Údl_preparation_checkr‡   »   s¯  € ÜÓ€EØ�%×%Ñ%Õ%€Fä	”E˜&“M¨aÔ	0€BÜ	˜R§¡¨u×/BÑ/BÀE×DWÑDWÐgkÔ	l€BØ€FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ€Fä�;Š;�v—z‘z“|¤U§\¢\°!°VÓ%<×%AÑ%AÓ%C×DÒDÐmÐFmÓmÐDä	”E˜&“M¨aÔ	0€BÜ	Ø
Ø�‰Ø×ÑØ×ÑØØô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ€FÜ�;Š;�v—z‘z“|¤U§\¢\°!°VÓ%<×%AÑ%AÓ%C×DÒDÐmÐFmÓmÐDà×Ñ˜aÔÜÐ0Ô1ä	”E˜&“M¨a¸Ô	>€BÜ	˜R§¡¨u×/BÑ/BÀE×DWÑDWÐgkÔ	l€BØ€FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ×%Ñ%Ó'€FØ
‡K�K„MØ”Tœ% ›-Ó(Ô(ÐMÐ*MÓMÐ(ä	”E˜&“M¨a¸Ô	>€BÜ	Ø
Ø�‰Ø×ÑØ×ÑØØô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ×%Ñ%Ó'€FØ
‡K�K„MØ”Tœ% ›-Ó(Ô(ÐMÐ*MÓMÐ(à× Ñ  AÔ%ÜÐ,Ö-ñ &r'   c            
      ó  € \        4       p ^ V P                  ,          p\        \        V4      ^R7      p\	        W P
                  V P                  V P                  RRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      p\        P                  ! VP                  4       \        P                  ! ^ V4      P                  4       4      '       g   Q R4       h\        \        V4      ^R7      p\	        VV P
                  V P                  V P                  RRRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      p\        P                  ! VP                  4       \        P                  ! ^ V4      P                  4       4      '       g   Q R4       hV P                  ^ 8X  d   \        R4       \        \        V4      ^RR7      p\	        W P
                  V P                  V P                  RRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      P!                  4       pVP#                  4        V\%        \        V4      4      8X  g   Q R4       h\        \        V4      ^RR7      p\	        VV P
                  V P                  V P                  RRRR7      p. pV F  pVP                  \        V4      4       K  	  \        P                  ! V4      P!                  4       pVP#                  4        V\%        \        V4      4      8X  g   Q R4       hV P&                  ^ 8X  d   \        R	4       R
# R
# )rq   rr   T)rs   Údispatch_batchesrt   )rs   ru   r‰   z(Non-shuffled central dataloader passing.rv   rw   z$Shuffled central dataloader passing.Nrx   rƒ   s        r%   Úcentral_dl_preparation_checkrŠ   ÷   sÅ  € ÜÓ€EØ�%×%Ñ%Õ%€Fä	”E˜&“M¨aÔ	0€BÜ	Ø
�L‰L˜%×-Ñ-¨u×/BÑ/BÐRVÐimô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ€FÜ�;Š;�v—z‘z“|¤U§\¢\°!°VÓ%<×%AÑ%AÓ%C×DÒDÐmÐFmÓmÐDä	”E˜&“M¨aÔ	0€BÜ	Ø
Ø�‰Ø×ÑØ×ÑØØØô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ€FÜ�;Š;�v—z‘z“|¤U§\¢\°!°VÓ%<×%AÑ%AÓ%C×DÒDÐmÐFmÓmÐDà×Ñ˜aÔÜÐ8Ô9ä	”E˜&“M¨a¸Ô	>€BÜ	Ø
�L‰L˜%×-Ñ-¨u×/BÑ/BÐRVÐimô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ×%Ñ%Ó'€FØ
‡K�K„MØ”Tœ% ›-Ó(Ô(ÐMÐ*MÓMÐ(ä	”E˜&“M¨a¸Ô	>€BÜ	Ø
Ø�‰Ø×ÑØ×ÑØØØô
€Bð €FÛˆØ�‰”f˜U“mÖ$ñ ä�YŠY�vÓ×%Ñ%Ó'€FØ
‡K�K„MØ”Tœ% ›-Ó(Ô(ÐMÐ*MÓMÐ(à× Ñ  AÔ%ÜÐ4Ö5ñ &r'   c                  ó   € \        4       p  ! R  R\        4      p ! R R4      pV! \        ^ V P                  ,          4      4      pV! \	        V4      ^R7      p\        W4R7      p\        WPP                  V P                  V P                  4      p\        VP                  R4      '       d0   \        VP                  P                  V4      '       g   Q R4       hR# \        VP                  V4      '       g   Q R4       hR# )	c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )Ú+custom_sampler_check.<locals>.CustomDataseti;  c                ó   € Wn         R # ©N©Údata)Úselfr‘   s   &&r%   Ú__init__Ú4custom_sampler_check.<locals>.CustomDataset.__init__<  s   € ØŽIr'   c                ó,   € \        V P                  4      # r�   )r"   r‘   ©r’   s   &r%   Ú__len__Ú3custom_sampler_check.<locals>.CustomDataset.__len__?  s   € Ü�t—y‘y“>Ð!r'   c                ó(   € V P                   V,          # r�   r�   )r’   Úindexs   &&r%   Ú__getitem__Ú7custom_sampler_check.<locals>.CustomDataset.__getitem__B  s   € Ø—9‘9˜UÕ#Ð#r'   r�   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r“   r—   r›   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r%   ÚCustomDatasetr�   ;  s   ø‡ € ò	ò	"÷	$ð 	$r'   r¥   c                   óB   a € ] tR tRt o RV 3R lR lltR tR tRtV tR# )	Ú0custom_sampler_check.<locals>.CustomBatchSampleriE  c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )é   Údataset_lengthr   r!   )ÚintÚbool)Úformatr¤   s   "€r%   Ú__annotate__Ú=custom_sampler_check.<locals>.CustomBatchSampler.__annotate__F  s"   ø€ ÷ 	#ñ 	#©3ð 	#¹Cð 	#É$ñ 	#r'   c                óT   € W n         \        P                  ! V4      V n        W0n        R # r�   )r   Únpr~   Ú
data_indexr!   )r’   rª   r   r!   s   &&&&r%   r“   Ú9custom_sampler_check.<locals>.CustomBatchSampler.__init__F  s   € Ø(ŒOÜ Ÿiši¨Ó7ˆDŒOØ"ŽLr'   c              3  óø   "  € \        V 4      pV P                  '       d+   \        P                  P	                  V P
                  4      pMV P
                  p\        P                  ! W!4      pT R j  x€L
  R #  L5ir�   )r"   r!   r±   ÚrandomÚpermutationr²   Úarray_split)r’   Únum_batchesrš   Úoutputs   &   r%   Ú__iter__Ú9custom_sampler_check.<locals>.CustomBatchSampler.__iter__K  sO   é € Ü˜d›)ˆKØ�|�|ˆ|ÜŸ	™	×-Ñ-¨d¯o©oÓ>‘àŸ™�Ü—^’^ EÓ7ˆFØ×Ôùs   ‚A/A:Á1A8Á2A:c                óv   € \         P                  ! \        V P                  4      V P                  ,          4      # r�   )ÚmathÚceilr"   r²   r   r–   s   &r%   r—   Ú8custom_sampler_check.<locals>.CustomBatchSampler.__len__T  s#   € Ü—9’9œS §¡Ó1°D·O±OÕCÓDÐDr'   )r   r²   r!   N)T)	r�   rž   rŸ   r    r“   rº   r—   r¡   r¢   r£   s   @r%   ÚCustomBatchSamplerr§   E  s    ø‡ € ÷	#ò 	#ò
	÷	Eð 	Er'   rÀ   rr   )Úbatch_samplerrÁ   z>Custom sampler was changed after calling `prepare_data_loader`N)r
   r   r[   r>   r"   r   r	   ry   r+   ÚhasattrrÁ   Ú
isinstance)r-   r¥   rÀ   Údatasetr    r…   s         r%   Úcustom_sampler_checkrÅ   8  sÙ   € ÜÓ€Eô$œô $÷Eñ Eñ$ œE " u×':Ñ':Õ":Ó;Ó<€GÙ ¤ W£¸!Ô<€GÜ	�GÔ	3€BÜ	˜R§¡¨u×/BÑ/BÀE×DWÑDWÓ	X€Bäˆr×Ñ ×1Ò1Ü˜"×*Ñ*×8Ñ8Ð:L×MÒMð 	
ØLó	
ÒMô ˜"×*Ñ*Ð,>×?Ò?ð 	
ØLó	
Ò?r'   c                  óN  € \        ^*4       \        ^
^*R7      p \        V ^RR7      p\        RR7      p\	        VR7      pVP                  V4      p. p\        ^4       F$  pV F  pVP                  VR,          4       K  	  K&  	  \        P                  ! V4      p\        ^*4       VP                  ^ 4       . p\        ^4       F$  pV F  pVP                  VR,          4       K  	  K&  	  \        P                  ! V4      p\        P                  ! WG4      '       g   Q R4       hR# )	é*   ©r„   ÚseedTrv   ©r$   ©Údataloader_configÚxz;Did not obtain the same items with the same seed and epoch.N)r   r   r   r   r   Úpreparer[   rz   rf   r{   Ú	set_epochÚallclose)r#   Útrain_dlÚconfigr]   Úoriginal_itemsÚ_r†   Ú	new_itemss           r%   Úcheck_seedable_samplerrÖ   f  s÷   € äˆR„LÜ!¨°"Ô5€IÜ˜)°¸4Ô@€Hä$¸$Ô?€FÜ°Ô7€KØ×"Ñ" 8Ó,€HØ€NÜ�1ŽXˆÛˆEØ×!Ñ! %¨¥*Ö-ó ñ ô —Y’Y˜~Ó.€Nô ˆR„LØ×Ñ�qÔØ€IÜ�1ŽXˆÛˆEØ×Ñ˜U 3�ZÖ(ó ñ ô —	’	˜)Ó$€IÜ�>Š>˜.×4Ò4ÐsÐ6sÓsÒ4r'   c                  óP  € \        ^*4       \        RR7      p \        V R7      pVP                  ^8”  g   Q R4       h\	        \        \        ^
4      4      ^RR7      p\        VRR7      pVP                  P                  P                  p\        V\        4      '       g   Q R4       hR# )	rÇ   TrÊ   rË   z)This test requires more than one process.rv   )Ú
dataloaderr$   z:Sampler in BatchSamplerShard is not SeedableRandomSampler.N)r   r   r   r>   r   r‚   r[   r	   rÁ   r    rÃ   r   )rÒ   r]   rØ   Úprepared_data_loaderÚtarget_samplers        r%   Ú-check_seedable_sampler_in_batch_sampler_shardrÛ   €  s•   € ÜˆR„Lä$¸$Ô?€FÜ°Ô7€KØ×$Ñ$ qÔ(ÐUÐ*UÓUÐ(äœD¤ r£›O¸À4ÔH€JÜ.ØØ!ôÐð
 *×7Ñ7×EÑE×MÑM€NÜ�nÔ&;×<Ò<ð ØDóÒ<r'   c                  ód  € \        ^*4       ^*p \        ^
^*R7      p\        V^RR7      p\        RV R7      p\	        VR7      pVP                  V4      p. p\        ^4       F$  pV F  pVP                  VR,          4       K  	  K&  	  \        P                  ! V4      p^+Vn
        \	        VR7      pVP                  V4      p. p	\        ^4       F$  pV F  pV	P                  VR,          4       K  	  K&  	  \        P                  ! V	4      p	\        P                  ! Wi4      '       d   Q R4       hR# )	rÇ   rÈ   Trv   )r$   Ú	data_seedrË   rÍ   z1Obtained the same items with different data seed.N)r   r   r   r   r   rÎ   r[   rz   rf   r{   rÝ   rÐ   )
rÝ   r#   rÑ   rÒ   r]   Úprepared_dlrÓ   rÔ   r†   rÕ   s
             r%   Ú%check_seedable_sampler_with_data_seedrß   “  s  € äˆR„LØ€IÜ!¨°"Ô5€IÜ˜)°¸4Ô@€Hä$¸$È)ÔT€FÜ°Ô7€KØ×%Ñ% hÓ/€KØ€NÜ�1ŽXˆÛ ˆEØ×!Ñ! %¨¥*Ö-ó !ñ ô —Y’Y˜~Ó.€Nð €FÔÜ°Ô7€KØ×%Ñ% hÓ/€KØ€IÜ�1ŽXˆÛ ˆEØ×Ñ˜U 3�ZÖ(ó !ñ ô —	’	˜)Ó$€IÜ�~Š~˜n×8Ò8ÐmÐ:mÓmÐ8Ñ8r'   c                 óø  € \        ^*4       VP                  ^*4       \        V ^*R7      p\        WBW4      p\	        4       p\
        P                  P                  VP                  4       RR7      p\        ^4       F{  pV Fr  p	VP                  4        V! V	R,          4      p
\
        P                  P                  P                  W©R,          4      pVP                  4        VP                  4        Kt  	  K}  	  WF3# )rÇ   rÈ   r<   ©ÚlrrÍ   Úy)r   Úmanual_seedr   r&   r   rf   ÚoptimÚSGDÚ
parametersr[   Ú	zero_gradÚnnÚ
functionalÚmse_lossÚbackwardÚstep)r„   r   r   r$   r#   rÑ   ÚmodelÚ	optimizerÚepochr†   r¹   Úlosss   &&&&        r%   Úmock_trainingrò   ¯  sÂ   € ÜˆR„LØ×Ñ˜"ÔÜ!¨°bÔ9€Iä+¨IÀ*Óc€HÜÓ€EÜ—‘—‘ × 0Ñ 0Ó 2°s�Ó;€IÜ�q–ˆÛˆEØ�O‰OÔÙ˜5 �:Ó&ˆFÜ—8‘8×&Ñ&×/Ñ/°¸c½
ÓCˆDØ�M‰MŒOØ�N‰NÖó ñ ð ÐÐr'   c                 ó  € \        4       p\        P                  ! 4       p^pV^,          VP                  ,          p\	        WCVP                  ,          W 4      w  rV\        VP                  4      '       g   Q R4       h\        VP                  4      '       g   Q R4       h\        4       p\        WRW04      p\        4       p	\        P                  P                  V	P                  4       RR7      p
VP                  W‰V
4      w  r‰p
\        ^*4       VP!                  ^*4       \#        ^4       F|  pV Fs  pV	P%                  4        V	! VR,          4      p\        P&                  P(                  P+                  WÜR,          4      pVP-                  V4       V
P/                  4        Ku  	  K~  	  VP1                  V	4      P3                  4       p	\        P4                  P7                  VP                  V	P                  \8        \:        R R7       \        P4                  P7                  VP                  V	P                  \8        \:        R R7       VP=                  R	4       \?        R
V R7      p\        VR7      p\        WRW1P                  ,          V 4      p\        4       p	\        P                  P                  V	P                  4       RR7      p
VP                  W‰V
4      w  r‰p
\        ^*4       VP!                  ^*4       \#        ^4       F|  pV Fs  pV	P%                  4        V	! VR,          4      p\        P&                  P(                  P+                  WÜR,          4      pVP-                  V4       V
P/                  4        Ku  	  K~  	  VP1                  V	4      P3                  4       p	\        P4                  P7                  VP                  V	P                  \8        \:        R R7       \        P4                  P7                  VP                  V	P                  \8        \:        R R7       VP=                  R4       \A        4       '       g   \C        4       '       dº   \=        R4       \         PD                  ! 4        \        RR7      p\        P&                  PG                  ^^4      p	VP                  V	4      p	VP1                  V	R
R7      p\        PH                  ! ^^.4      PK                  \        PL                  VPN                  R7      pV! V4      p\Q        4       '       EdÜ   \=        R4       \         PD                  ! 4        \?        V R7      p\        RVR7      p\        WRW04      p\        4       p	\        P                  P                  V	P                  4       RR7      p
VP                  W‰V
4      w  r‰p
\        ^*4       VP!                  ^*4       \#        ^4       F|  pV Fs  pV	P%                  4        V	! VR,          4      p\        P&                  P(                  P+                  WÜR,          4      pVP-                  V4       V
P/                  4        Ku  	  K~  	  VP1                  V	4      P3                  4       p	\        P4                  P7                  VP                  V	P                  \8        \:        R R7       \        P4                  P7                  VP                  V	P                  \8        \:        R R7       \S        4       '       Edñ   \U        4       '       EgÞ   \=        R4       \         PD                  ! 4        \?        V R7      p\        RVR7      p\        WRW04      p\        4       p	\        P                  P                  V	P                  4       RR7      p
VP                  W‰V
4      w  r‰p
\        ^*4       VP!                  ^*4       \#        ^4       F|  pV Fs  pV	P%                  4        V	! VR,          4      p\        P&                  P(                  P+                  WÜR,          4      pVP-                  V4       V
P/                  4        Ku  	  K~  	  VP1                  V	4      P3                  4       p	\        P4                  P7                  VP                  V	P                  \8        \:        R R7       \        P4                  P7                  VP                  V	P                  \8        \:        R R7       R# R# R# )é   z0Did not obtain the same model on both processes.r<   rá   rÍ   rã   c                 ó   € R V  2# ©z>Did not obtain the same model on CPU or distributed training.
© ©Úmsgs   &r%   Ú<lambda>Ú training_check.<locals>.<lambda>á  ó   € ÐYÐZ]ÐY^Ñ_r'   )ÚatolÚrtolrù   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû   è  rü   r'   zVTraining yielded the same results on one CPU or distributed setup with no batch split.T)ru   r$   rË   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû     rü   r'   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû     rü   r'   zSTraining yielded the same results on one CPU or distributed setup with batch split.zKeep fp32 wrapper check.Úfp16)Úmixed_precision)Úkeep_fp32_wrapper)Údtypery   zBF16 training check.rÊ   Úbf16)r  rÌ   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû   >  ó   € Ð]Ð^aÐ]bÑcr'   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû   E  r  r'   zFP16 training check.c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû   d  r  r'   c                 ó   € R V  2# rö   r÷   rø   s   &r%   rú   rû   k  r  r'   N)+r
   rf   rm   r>   rò   r   ÚaÚbr   r&   r   rå   ræ   rç   rÎ   r   rä   r[   rè   ré   rê   rë   rì   rí   Úunwrap_modelr}   ÚtestingÚassert_closeÚATOLÚRTOLr*   r   r   r   Ú_reset_stateÚLinearÚTensorÚtoÚfloat16ry   r   r   r   )r$   r-   r   r   r„   r#   Ú	old_modelr]   rÑ   rî   rï   rÔ   r†   r¹   rñ   rÌ   Úmodel_with_fp32_wrapperÚinput_tensors   &                 r%   Útraining_checkr  Á  sô  € ÜÓ€EÜ—’Ó!€IØ€JØ˜!�^˜e×1Ñ1Õ1€Fä(¨¸e×>QÑ>QÕ1QÐS\ÓsÑ€IÜ 	§¡×,Ò,Ð`Ð.`Ó`Ð,Ü 	§¡×,Ò,Ð`Ð.`Ó`Ð,ä“-€KÜ+¨IÀ*Óc€HÜÓ€EÜ—‘—‘ × 0Ñ 0Ó 2°s�Ó;€Ià!,×!4Ñ!4°XÀiÓ!PÑ€H�YÜˆR„LØ×Ñ˜"ÔÜ�1ŽXˆÛˆEØ�O‰OÔÙ˜5 �:Ó&ˆFÜ—8‘8×&Ñ&×/Ñ/°¸c½
ÓCˆDØ× Ñ  Ô&Ø�N‰NÖó ñ ð ×$Ñ$ UÓ+×/Ñ/Ó1€EÜ	‡M�M×ÑØ�‰Ø�‰ÜÜÙ_ð ô ô 
‡M�M×ÑØ�‰Ø�‰ÜÜÙ_ð ô ð ×ÑÐnÔoä/¸dÐYmÔnÐÜÐ0AÔB€KÜ+Ø˜j×+>Ñ+>Õ>Ð@Tó€Hô Ó€EÜ—‘—‘ × 0Ñ 0Ó 2°s�Ó;€Ià!,×!4Ñ!4°XÀiÓ!PÑ€H�YÜˆR„LØ×Ñ˜"ÔÜ�1ŽXˆÛˆEØ�O‰OÔÙ˜5 �:Ó&ˆFÜ—8‘8×&Ñ&×/Ñ/°¸c½
ÓCˆDØ× Ñ  Ô&Ø�N‰NÖó ñ ð ×$Ñ$ UÓ+×/Ñ/Ó1€EÜ	‡M�M×ÑØ�‰Ø�‰ÜÜÙ_ð ô ô 
‡M�M×ÑØ�‰Ø�‰ÜÜÙ_ð ô ð ×ÑÐkÔlô ×ÒÔ.×0Ò0äÐ(Ô)Ü×%Ò%Ô'Ü!°&Ô9ˆä—‘—‘  1Ó%ˆØ×#Ñ# EÓ*ˆØ"-×":Ñ":¸5ÐTXÐ":Ó"YÐô —|’| Q¨ FÓ+×.Ñ.´U·]±]È;×K]ÑK]Ð.Ó^ˆÙ(¨Ó6ˆô ×ÓäÐ$Ô%Ü×%Ò%Ô'Ü3ÐI]Ô^ÐÜ!°&ÐL]Ô^ˆÜ/°	ÀjÓgˆÜÓ!ˆÜ—K‘K—O‘O E×$4Ñ$4Ó$6¸3�OÓ?ˆ	à%0×%8Ñ%8¸È)Ó%TÑ"ˆ˜Ü�ŒØ×Ñ˜bÔ!Ü�q–ˆAÛ!�Ø—‘Ô!Ù˜u S�zÓ*�Ü—x‘x×*Ñ*×3Ñ3°FÀ#½JÓG�Ø×$Ñ$ TÔ*Ø—‘Ö ó "ñ ð ×(Ñ(¨Ó/×3Ñ3Ó5ˆÜ�‰×"Ñ"Ø�K‰KØ�G‰GÜÜÙcð 	#ô 	
ô 	�‰×"Ñ"Ø�K‰KØ�G‰GÜÜÙcð 	#ô 	
ô ×ÓÔ#3×#5Ó#5äÐ$Ô%Ü×%Ò%Ô'Ü3ÐI]Ô^ÐÜ!°&ÐL]Ô^ˆÜ/°	ÀjÓgˆÜÓ!ˆÜ—K‘K—O‘O E×$4Ñ$4Ó$6¸3�OÓ?ˆ	à%0×%8Ñ%8¸È)Ó%TÑ"ˆ˜Ü�ŒØ×Ñ˜bÔ!Ü�q–ˆAÛ!�Ø—‘Ô!Ù˜u S�zÓ*�Ü—x‘x×*Ñ*×3Ñ3°FÀ#½JÓG�Ø×$Ñ$ TÔ*Ø—‘Ö ó "ñ ð ×(Ñ(¨Ó/×3Ñ3Ó5ˆÜ�‰×"Ñ"Ø�K‰KØ�G‰GÜÜÙcð 	#ô 	
ô 	�‰×"Ñ"Ø�K‰KØ�G‰GÜÜÙcð 	#ö 	
ñ; $6Ñr'   c           
      ó@  € \        4       pT P                  \        ^VP                  ,          4       Uu. uF  p\	        VR7      NK  	  up4      pVP                  VRR7      ;_uu_ 4       p\        V4      ^8X  g!   Q RVP                   R\        V4       24       h RRR4       T P                  \        ^VP                  ,          ^,
          4       Uu. uF  p\	        VR7      NK  	  up4      pVP                  VRR7      ;_uu_ 4       pVP                  '       d2   \        V4      ^8X  g!   Q RVP                   R\        V4       24       hM0\        V4      ^8X  g!   Q RVP                   R\        V4       24       hRRR4       VP                  4        T P                  \        ^VP                  ,          ^,
          4       Uu. uF  p\	        VR7      NK  	  up4      pT P                  \        ^VP                  ,          4       Uu. uF  p\	        VR7      NK  	  up4      pWV3 EF  pVR	,          pVP                  VR
R7      ;_uu_ 4       pVP                  ^8X  d;   \        V4      \        V4      8X  g!   Q RVP                   R\        V4       24       hM0\        V4      ^8X  g!   Q RVP                   R\        V4       24       h. pV F  p	VP                  V	4       K  	  RRR4       VP                  4        \        X4      p
V
R\        V4        Uu. uF  q»R	,          NK  	  ppW|8X  d   EK  Q RV RV 24       h	  R# u upi   + '       g   i     EL½; iu upi   + '       g   i     ELó; iu upi u upi   + '       g   i     L¤; iu upi )r©   )ÚkF©Úapply_paddingú4Each process did not have two items. Process index: ú
; Length: Nz;Last process did not receive a single item. Process index: zLOne of the intermediate processes did not receive two items. Process index: r  Tz9Single process did not receive all items. Process index: ú)Gathered results is incorrect. Expected: ú; Got: )r
   Ú	from_listr[   r>   ÚdictÚsplit_between_processesr"   r+   rZ   rE   rz   r   )Údatasets_Datasetr-   Úvr‘   ÚresultsÚodd_dataÚ	even_dataÚexpected_outputÚresults_per_processra   Úgathered_resultsÚrr¹   s   &            r%   Ú$test_split_between_processes_datasetr0  o  sw  € ÜÓ€EØ×%Ñ%¼%ÀÀE×DWÑDWÕ@WÔ:XÓ&YÑ:X°Q¤t¨a§yÑ:XÑ&YÓZ€DØ	×	&Ñ	& t¸5Ð	&×	AÔ	AÀWÜ�7‹|˜qÔ ð 	
ØBÀ5×CVÑCVÐBWÐWaÔbeÐfmÓbnÐaoÐpó	
Ñ ÷ 
Bð
 ×%Ñ%¼%ÀÀE×DWÑDWÕ@WÐZ[Õ@[Ô:\Ó&]Ñ:\°Q¤t¨a§yÑ:\Ñ&]Ó^€DØ	×	&Ñ	& t¸5Ð	&×	AÔ	AÀWØ× × Ð Ü�w“< 1Ô$ð ØMÈe×NaÑNaÐMbÐblÔmpÐqxÓmyÐlzÐ{óÑ$ô �w“< 1Ô$ð Ø^Ð_d×_rÑ_rÐ^sÐs}ô  Bð  CJó  Kð  ~Lð  MóÐ$÷ 
Bð 
×ÑÔà×)Ñ)¼eÀAÈ×H[ÑH[ÕD[Ð^_ÕD_Ô>`Ó*aÑ>`¸¬4°!¯9Ñ>`Ñ*aÓb€HØ ×*Ñ*¼uÀQÈ×I\ÑI\ÕE\Ô?]Ó+^Ñ?]¸!¬D°1¯IÑ?]Ñ+^Ó_€IàÔ%ˆØ˜s�)ˆà×*Ñ*¨4¸tÐ*×DÔDÈØ×"Ñ" aÔ'Ü˜7“|¤s¨4£yÔ0ð ØOÐPU×PcÑPcÐOdÐdnÔorÐszÓo{Ðn|Ð}óÑ0ô ˜7“| qÔ(ð ØJÈ5×K^ÑK^ÐJ_Ð_iÔjmÐnuÓjvÐiwÐxóÐ(ð #%ÐÛ!�Ø#×*Ñ*¨6Ö2ñ "÷ Eð 	×ÑÔ!ä(Ð)<Ó=ÐØ"2°;´S¸³YÑ"?Ó@Ñ"?˜Q�C—&�&Ñ"?ˆÐ@à×(ÐvÐ,UÐVeÐUfÐfmÐntÐmuÐ*vÓvÐ(ó- &ùò+ 'Zß	A×	AÐ	Aüò
 '^ß	A×	AÐ	Aüò +bùÚ+^÷
 E×Düò" AsC   ´MÁ+1MÃM%ÄA4M*ÇM>ÈNÉBNÌNÍM"	Í*M;	ÎNc                  ó
  € \        4       p \        \        ^ ^V P                  ,          4      4      pV P	                  V4      ;_uu_ 4       p\        V4      ^8X  g!   Q RV P                   R\        V4       24       h RRR4       V P                  4        \        \        ^ ^V P                  ,          4      4      p\        \        ^ ^V P                  ,          ^,
          4      4      pWC3 Fî  pTpV P	                  VRR7      ;_uu_ 4       p\        P                  ! \        V4      V P                  ,          4      p\        V4      V8X  g.   Q RV P                   RV P                   R\        V4       24       h. pV F  pVP                  V4       K  	  RRR4       V P                  4        \        X4      p	V	R\        V4       p
WZ8X  d   Kã  Q RV R	V
 24       h	  R#   + '       g   i     ELk; i  + '       g   i     Lf; i)
r   r   r!  NTr  úProcess ú; did not get the correct number of item(s). Process index: r"  r#  )r
   r‚   r[   r>   r&  r"   r+   rE   r½   r¾   ry   rz   r   )r-   r‘   r)  r+  r*  r,  Únum_samples_per_devicer-  ra   r.  r¹   s              r%   Ú!test_split_between_processes_listr5  Ÿ  sñ  € ÜÓ€EÜ”�a˜˜U×0Ñ0Õ0Ó1Ó2€DØ	×	&Ñ	& t×	,Ô	,°Ü�7‹|˜qÔ ð 	
ØBÀ5×CVÑCVÐBWÐWaÔbeÐfmÓbnÐaoÐpó	
Ñ ÷ 
-ð 
×ÑÔä”U˜1˜q 5×#6Ñ#6Õ6Ó8Ó9€IÜ”E˜!˜a %×"5Ñ"5Õ5¸Õ:Ó;Ó<€HØÓ%ˆØˆà×*Ñ*¨4¸tÐ*×DÔDÈÜ%)§Y¢Y¬s°4«y¸5×;NÑ;NÕ/NÓ%OÐ"ä�w“<Ð#9Ô9ð Ø˜5Ÿ<™<˜.Ð(cÐdi×dwÑdwÐcxð  yCô  DGð  HOó  DPð  CQð  RóÐ9ð #%ÐÛ!�Ø#×*Ñ*¨6Ö2ñ "÷ Eð 	×ÑÔ!ä(Ð)<Ó=ÐØ! +¤C¨£IÐ.ˆàÖ(ÐvÐ,UÐVeÐUfÐfmÐntÐmuÐ*vÓvÐ(ó' &÷ 
-×	,Ð	,ú÷ E×Dús   Á
1GÄ
B
G2ÇG/	Ç2Hc            	      óT  € \        4       p . ROp. ROp\        P                  ! . RO4      pV P                  R9   EdÉ   RVRVRV/p\	        V4      pV P                  V4      ;_uu_ 4       pV P                  ^ 8X  d-   VR,          VR,          R^V P                  ,           8X  g   Q hM{V P                  ^8X  d    VR,          VR,          R,          8X  g   Q hMKV P                  ^8X  d;   VR,          VR,          RR 8X  g#   Q RVR,          R,           RVR,           24       hV P                  ^ 8X  d-   VR,          VR,          R^V P                  ,           8X  g   Q hM[V P                  ^8X  d    VR,          VR,          R,          8X  g   Q hM+V P                  ^8X  d   VR,          VR,          RR 8X  g   Q hV P                  ^ 8X  dp   \        P                  ! VR,          VR,          R^V P                  ,           4      '       g0   Q RVR,          R^V P                  ,            R	VR,           24       hMÃV P                  ^8X  dV   \        P                  ! VR,          VR,          R,          4      '       g#   Q R
VR,          R,           R	VR,           24       hM]V P                  ^8X  dM   \        P                  ! VR,          VR,          RR 4      '       g   Q RVR,          RR  R	VR,           24       hRRR4       V P                  4        R#   + '       g   i     L"; i)é   r  r  ÚcN:é   NNz
Expected: ú
, Actual: z7Did not obtain expected values on process 0, expected `z`, received: z7Did not obtain expected values on process 2, expected `z7Did not obtain expected values on process 4, expected `)r7  r©   é   r9  é   é   é   rô   )r  r  r8  ÚdÚer_   ÚgÚh)r7  r©   r9  éþÿÿÿ)	r
   rf   Útensorr>   r   r&  r+   rÐ   rE   )r-   r  r  r8  r‘   Ú	data_copyr)  s          r%   Ú(test_split_between_processes_nested_dictrF  À  s  € ÜÓ€EÚ €AÚ0€AÜ�ŠÒ-Ó.€AØ×Ñ˜iÕ'Ø�Q˜˜Q  QÐ'ˆÜ˜T“Nˆ	Ø×*Ñ*¨4×0Ô0°GØ×"Ñ" aÔ'Ø˜s•| y°¥~Ð6P¸¸U×=PÑ=PÕ8PÐ'QÔQÐQÑQØ×$Ñ$¨Ô)Ø˜s•| y°¥~°bÕ'9Ô9Ð9Ñ9Ø×$Ñ$¨Ô)à˜s•| y°¥~°b°cÐ':Ô:Ðu¸jÈÐSVÍÐXZÕI[ÐH\Ð\fÐgnÐorÕgsÐftÐ<uÓuÐ:Ø×"Ñ" aÔ'Ø˜s•| y°¥~Ð6P¸¸U×=PÑ=PÕ8PÐ'QÔQÐQÑQØ×$Ñ$¨Ô)Ø˜s•| y°¥~°bÕ'9Ô9Ð9Ñ9Ø×$Ñ$¨Ô)Ø˜s•| y°¥~°b°cÐ':Ô:Ð:Ð:Ø×"Ñ" aÔ'Ü—~’~ g¨c¥l°I¸cµNÐC]ÀQÈ%×J]ÑJ]ÕE]Ð4^×_Ò_ð ØMÈdÐSVÍiÐXrÐZ[Ð_d×_rÑ_rÕZrÐNsÐMtð  uBð  CJð  KNõ  COð  BPð  QóÑ_ð ×$Ñ$¨Ô)Ü—~’~ g¨c¥l°I¸cµNÀ2Õ4F×GÒGð ØMÈdÐSVÍiÐXZÍmÈ_Ð\iÐjqÐruÕjvÐiwÐxóÑGð ×$Ñ$¨Ô)Ü—~’~ g¨c¥l°I¸cµNÀ2À3Ð4G×HÒHð ØMÈdÐSVÍiÐXZÐX[ÈnÐM]Ð]jÐkrÐsvÕkwÐjxÐyóÐH÷/ 1ð6 
×ÑÖ÷7 1×0ús   Á)F LÈ
A2LÉ=B LÌL'	c                  ó€  € \        4       p V P                  ^8”  dý   \        P                  ! . R
O. RO.4      P	                  V P
                  4      pV P                  V4      ;_uu_ 4       pV P                  ^ 8X  d4   \        P                  ! . R
O.4      P	                  V P
                  4      pM2\        P                  ! . RO.4      P	                  V P
                  4      p\        P                  P                  W#4       RRR4       V P                  4        \        P                  ! \        ^V P                  ,          4       Uu. uF  qD.NK  	  up4      P	                  V P
                  4      p\        P                  ! \        ^V P                  ,          ^,
          4       Uu. uF  qD.NK  	  up4      P	                  V P
                  4      pWV3 EF/  pVP                  4        Uu. uF  p\        P                  ! V4      NK  	  ppV P                  VRR7      ;_uu_ 4       p\        P                  ! \        V4      V P                  ,          4      p\        V4      V8X  g.   Q RV P
                   RV P                   R\        V4       24       h. p	V F#  p
V	P!                  V
P	                  R4      4       K%  	  RRR4       V P                  4        \#        X	4      pVR\        V4       pW|8X  d   EK%  Q RV R	V 24       h	  R#   + '       g   i     EL; iu upi u upi u upi   + '       g   i     Lv; i)r7  NTr  r2  r3  r!  r}   r"  r#  )r   r7  r©   r;  )r9  r<  r=  r>  )r
   r>   rf   rD  r  ry   r&  r+   r  r  rE   r[   r€   r½   r¾   r"   rz   r   )r-   r‘   r)  ÚexpectedÚir+  r*  r,  r4  r-  ra   r.  r¹   s                r%   Ú#test_split_between_processes_tensorrJ  æ  sŸ  € ÜÓ€EØ×Ñ˜QÔÜ�|Š|š\ª<Ð8Ó9×<Ñ<¸U¿\¹\ÓJˆØ×*Ñ*¨4×0Ô0°GØ×"Ñ" aÔ'Ü Ÿ<š<ª¨Ó7×:Ñ:¸5¿<¹<ÓH‘ä Ÿ<š<ª¨Ó7×:Ñ:¸5¿<¹<ÓH�Ü�M‰M×&Ñ& wÔ9÷ 1ð 	×ÑÔ!ä—’¬5°°U×5HÑ5HÕ1HÔ+IÓJÑ+I a›cÑ+IÑJÓK×NÑNÈuÏ|É|Ó\€IÜ�|Š|¬%°°E×4GÑ4GÕ0GÈ!Õ0KÔ*LÓMÑ*L Q›SÑ*LÑMÓN×QÑQÐRW×R^ÑR^Ó_€HØÔ%ˆØ48·K±K´MÓB±M¨qœ5Ÿ<š<¨ž?±MˆÐBà×*Ñ*¨4¸tÐ*×DÔDÈÜ%)§Y¢Y¬s°4«y¸5×;NÑ;NÕ/NÓ%OÐ"Ü�w“<Ð#9Ô9ð Ø˜5Ÿ<™<˜.Ð(cÐdi×dwÑdwÐcxð  yCô  DGð  HOó  DPð  CQð  RóÐ9ð #%ÐÛ!�Ø#×*Ñ*¨6¯9©9°UÓ+;Ö<ñ "÷ Eð 	×ÑÔ!ä(Ð)<Ó=ÐØ! +¤C¨£IÐ.ˆà×(ÐvÐ,UÐVeÐUfÐfmÐntÐmuÐ*vÓvÐ(ó# &÷ 1×0Ð0üò KùÚMùâBçD×Dús,   Á*BL
ÅLÆ&L#Ç*L(È&BL-Ì
L	Ì-L=c            	      ó6  € \        4       p V P                  R9   dÛ   \        \        ^4      4      p\	        V4      V P                  ,          p\	        V4      V P                  ,          pV P                  V4      ;_uu_ 4       pV P                  V8  d6   \	        V4      V^,           8X  g   Q RV^,            R\	        V4       24       hM&\	        V4      V8X  g   Q RV R\	        V4       24       hRRR4       V P                  4        R#   + '       g   i     L"; i)r7  z2Each Process should have even elements. Expected: r:  N)r7  r©   r9  rô   )r
   r>   r‚   r[   r"   r&  r+   rE   )r-   r‘   Únum_samples_per_processÚ
num_extrasr)  s        r%   Ú#test_split_between_processes_evenlyrN    s  € ÜÓ€EØ×Ñ˜lÔ*Ü”E˜"“I‹ˆÜ"% d£)¨u×/BÑ/BÕ"BÐÜ˜“Y ×!4Ñ!4Õ4ˆ
Ø×*Ñ*¨4×0Ô0°GØ×"Ñ" ZÔ/Ü˜7“|Ð'>ÀÕ'BÔBð ØHÐI`ÐcdÕIdÐHeÐeoÔpsÐt{Óp|Ðo}Ð~óÑBô ˜7“|Ð'>Ô>ð ØHÐI`ÐHaÐakÔloÐpwÓlxÐkyÐzóÐ>÷ 1ð 
×ÑÖ÷ 1×0ús   ÂA-DÄD	c                  óâ   € \        4       p V P                  4       R J g   Q hV P                  '       d   V P                  4        V P                  4       RJ g   Q hV P                  4       R J g   Q hR# )FTN)r   Úcheck_triggerr@   Úset_trigger)r]   s    r%   Útest_triggerrR    sl   € Ü“-€Kà×$Ñ$Ó&¨%Ó/Ð/Ð/ð ×"×"Ð"Ø×ÑÔ!ð ×$Ñ$Ó&¨$Ó.Ð.Ð.ð ×$Ñ$Ó&¨%Ó/Ð/Ò/r'   c                  óþ  € ^ RI p \        P                  ! 4        \        P                  P                  ^^4      p\        4       p\        P                  ! 4        V P                  \        4      ;_uu_ 4       pVP                  V4       RRR4       R\        XP                  P                  ^ ,          4      9   g   Q hR\        VP                  P                  ^ ,          4      9   g   Q hR#   + '       g   i     Ll; i)r   Nz*`AcceleratorState` object has no attributez1This happens if `AcceleratorState._reset_state()`)Úpytestr
   r  rf   ré   r  r   ÚraisesÚAttributeErrorrÎ   ÚstrÚvalueÚargs)rT  Úsimple_modelr]   Úcms       r%   Útest_reinstantiated_stater\  +  s¦   € Ûä×!Ò!Ô#Ü—8‘8—?‘? 1 aÓ(€Lä“-€Kä×!Ò!Ô#à	�‰”~×	&Ô	&¨"Ø×Ñ˜LÔ)÷ 
'à7¼3¸r¿x¹x¿}¹}ÈQÕ?OÓ;PÔPÐPÐPØ>Ä#ÀbÇhÁhÇmÁmÐTUÕFVÓBWÔWÐWÒW÷ 
'×	&ús   Á6C,Ã,C<	c                  ó@  € \        4       p V P                  pVP                  ^ 8X  d   \        R4       \	        4        VP                  4        VP                  \        P                  8X  d    \        P                  P                  4       pMVP                  pW!P                  8X  Ed   VP                  ^ 8X  d   \        R4       \        4        VP                  ^ 8X  d   \        R4       \        4        VP                  ^ 8X  d   \        R4       \!        4        VP                  ^ 8X  d   \        R4       \#        4        VP                  ^ 8X  d   \        R4       \%        4        VP                  ^ 8X  d   \        R4       \'        4       '       d   ^ RIHp \-        V4       M\        R	4       VP                  ^ 8X  d   \        R
4       \/        4        VP                  ^ 8X  d   \        R4       \1        4        VP                  \        P2                  8w  d)   \5        4        \7        4        \9        4        \;        4        VP                  ^8”  d   \=        4        VP                  \        P>                  8X  d   R# VP                  ^ 8X  d   \        R4       \A        RR7       \A        RR7       VP                  ^ 8X  d   \        R4       \C        4        \E        4       '       d'   VP                  ^ 8X  d   \        R4       \G        4        VPI                  4        R# )r   z**Initialization**z
**Test process execution**z+
**Test split between processes as a list**z+
**Test split between processes as a dict**z-
**Test split between processes as a tensor**z(
**Test split between processes evenly**z7
**Test split between processes as a datasets.Dataset**)r   z6Skipped because Hugging Face datasets is not availablez1
**Test random number generator synchronization**z 
**DataLoader integration test**Nz
**Training integration test**FrÊ   Tz
**Breakpoint trigger test**z
**Test reinstantiated state**)%r   r-   r1   r*   rd   rE   rj   r   rk   rf   rg   Údevice_countr>   r+   rb   r5  rF  rJ  rN  r   Údatasetsr   r0  ro   r‡   ÚXLArŠ   rÅ   rÖ   rß   rÛ   Ú	DEEPSPEEDr  rR  r   r\  Údestroy_process_group)r]   r-   Únum_processes_per_noder'  s       r%   Úmainrd  ;  sL  € Ü“-€KØ×Ñ€EØ× Ñ  AÔ%ÜÐ"Ô#ÜÔØ	×ÑÔà×Ñ¤×!:Ñ!:Ô:Ü!&§¡×!8Ñ!8Ó!:Ñà!&×!4Ñ!4Ðð ×!4Ñ!4Õ4Ø×Ñ !Ô#ÜÐ0Ô1ÜÔ!à×Ñ !Ô#ÜÐ@ÔAÜ)Ô+à×Ñ !Ô#ÜÐ@ÔAÜ0Ô2à×Ñ !Ô#ÜÐBÔCÜ+Ô-à×Ñ !Ô#ÜÐ=Ô>Ü+Ô-à×Ñ !Ô#ÜÐLÔMÜ ×"Ò"Ý<ä0Ð1AÕBäÐJÔKà× Ñ  AÔ%ÜÐBÔCÜÔà× Ñ  AÔ%ÜÐ1Ô2ÜÔØ×Ñ¤×!4Ñ!4Ô4Ü$Ô&ÜÔÜÔ Ü-Ô/à×Ñ˜QÔÜ5Ô7ð ×Ñ¤×!:Ñ!:Ô:Ùà× Ñ  AÔ%ÜÐ/Ô0Ü¨Õ.Ü¨Õ-à× Ñ  AÔ%ÜÐ-Ô.Ü„Nä×ÒØ×$Ñ$¨Ô)ÜÐ3Ô4Ü!Ô#à	×ÑÖ!r'   Ú__main__)F)BrP   rN   r½   rA   Úcopyr   Úpathlibr   Únumpyr±   rf   Útorch.utils.datar   r   Ú
accelerater   Úaccelerate.data_loaderr   r	   Úaccelerate.stater
   Úaccelerate.test_utilsr   r   r   Úaccelerate.utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r&   r.   r2   r5   r:   rb   rd   ro   r‡   rŠ   rÅ   rÖ   rÛ   rß   rò   r  r0  r5  rF  rJ  rN  rR  r\  rd  r�   r÷   r'   r%   Ú<module>ro     s  ðó" Û 	Û Û Ý Ý ã Û ß 0å "ß MÝ -ß ZÑ Z÷÷ ÷ õ ñ" ×ÒØ€DØ�Dà€DØ€Dô_òCòOòCòIòFòRò/ò$9.òx>6òB+
ò\tò4ò&nô8ô$k
ò\-wò`wòB#òLwòDò$0ò"Xò N"ðb ˆzÔÙ†Fñ r'   