+
    "Ý³jïn  ã                  óú   € R 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It^RIHt ^RIHt ^RIHt ^RIHt ^R	IHtHtHtHt ^R
IHtHt ^RIHt ]'       d   ^ RI H!t! ^RI"H#t# ^RI$H%t%  ! R R4      t&R# )z<Forward execution logic for cached layer and subset batches.)Úannotations)Únullcontext)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚListÚOptionalÚTupleN)ÚDEVICE_THREAD_POOL)ÚStopForward)Únormalize_seq_mask)Úsetup_logger)Úclone_module_for_devicesÚforward_batch_workerÚrehome_module_to_deviceÚselect_forward_devices)Úmove_toÚnested_move_to)Ú
torch_sync)ÚProgressBar)ÚLoopProcessor)ÚModuleLooperc                  óò   € ] tR t^#tRtR R R lltR!R R lltR R ltR	RR
RRRRRRRRRRRRRRRRRR]/R R llt	R	RR
RRRRRRRRRRRRRRR/	R R llt
R	RR
RRRRRRRRRRRRRR]R]R]/R R lltRtR# )"ÚForwardExecutorz>Own the layer/subset forward execution logic for ModuleLooper.Nc               ó    € V ^8„  d   QhRRRR/# )é   Úlooperz'ModuleLooper'ÚreturnÚNone© )Úformats   "Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/looper/forward_executor.pyÚ__annotate__ÚForwardExecutor.__annotate__&   s   € ÷ ,ñ ,˜~ð ,¸tñ ,ó    c                óD   € Wn         T;'       g    \        4       V n        R# )zCBind the executor to the looper that owns device state and helpers.N)r   r   Úlog)Úselfr   Úloggers   &&&r"   Ú__init__ÚForwardExecutor.__init__&   s   € ð ŒØ×+Ð+œ\›^ˆŽr%   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Ú	processorú'LoopProcessor'Úlayer_inputsúList[List[torch.Tensor]]Úprogress_rows_per_batchúOptional[List[int]]Úprogress_total_rowsúOptional[int]r   zTuple[int, List[int], int]r    )r!   s   "r"   r#   r$   ,   s<   € ÷ ;ñ ;à"ð;ð /ð;ð "5ð	;ð
 +ð;ð 
$ñ;r%   c                ó®  € V P                   P                  VP                  V4      pT;'       g    V P                   P                  V4      p\	        V4      p\        V4      V8”  d   VRV pM9\        V4      V8  d*   VP                  ^ .V\        V4      ,
          ,          4       Ve   TM
\        V4      pV^ 8:  d
   V^ 8”  d   Tp\        V^4      pWVV3# )z?Normalize batch and row progress accounting for a forward pass.N)	r   Ú_resolve_batch_totalÚnum_batchesÚ_collect_row_countsÚlistÚlenÚextendÚsumÚmax)r(   r-   r/   r1   r3   Útotal_batchesÚbatch_row_countsÚ
total_rowss   &&&&&   r"   Ú_resolve_batch_progressÚ'ForwardExecutor._resolve_batch_progress,   sÒ   € ð Ÿ™×8Ñ8¸×9NÑ9NÐP\Ó]ˆØ2×cÐc°d·k±k×6UÑ6UÐVbÓ6cÐÜÐ 0Ó1ÐÜÐÓ  =Ô0Ø/°°Ð?ÑÜÐ!Ó" ]Ô2Ø×#Ñ# Q C¨=¼3Ð?OÓ;PÕ+PÕ$QÔRà,?Ò,KÑ(ÔQTÐUeÓQfˆ
Ø˜Œ?˜}¨qÔ0Ø&ˆJÜ˜ QÓ'ˆ
Ø°
Ð:Ð:r%   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úmoduleútorch.nn.Moduler-   r.   Úcurrent_subsetúOptional[Dict[str, Any]]Úordered_module_namesúOptional[List[str]]Úapply_moe_configÚboolr    )r!   s   "r"   r#   r$   C   s>   € ÷ !
ñ !
ð  ð!
ð #ð	!
ð
 1ð!
ð 2ð!
ð ñ!
r%   c               óâ  € V'       g   \        4       # V P                  P                  '       d0   V P                  P                  WP                  P                  4      # \	        V P                  RR4      '       g   \        4       # \	        V P                  RR4      p\        V4      '       d   V! VVVR7      '       g   \        4       # V P                  P                  V P                  VVVV4      # )z0Pick the MoE routing context for a forward pass.Úmoe_routing_bypassFÚ_should_use_moe_lifecycleN)rF   )r   r   Úmoe_routing_overrideÚMoERoutingOverrideContextÚgetattrÚcallableÚMoELifecycleContext)r(   rD   r-   rF   rH   rJ   Úshould_use_lifecycles   &$$$$$ r"   Ú_moe_forward_contextÚ$ForwardExecutor._moe_forward_contextC   sÅ   € ÷  ä“=Ð Ø�;‰;×+×+Ð+Ø—;‘;×8Ñ8¸ÇÁ×AaÑAaÓbÐbÜ�t—{‘{Ð$8¸%×@Ò@Ü“=Ð ä& t§{¡{Ð4OÐQUÓVÐÜÐ(×)Ò)Ñ2FØØØ)÷3
ó 3
ô
 “=Ð à�{‰{×.Ñ.Ø�K‰KØØØØ ó
ð 	
r%   rF   rH   Úprogress_pbÚprogress_titleÚprogress_stager1   r3   Úforce_serialFÚpreserve_module_devicesrJ   TÚselect_forward_devices_fnc          0     óx   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRR R!R"R#RR$RR%RR&R'R(R
/# ))r   rD   rE   r-   r.   rF   rG   rH   rI   r/   r0   Úlayer_input_kwargsúList[Dict[str, torch.Tensor]]Úposition_idsúList[torch.Tensor]Úattention_masksÚcur_layer_deviceútorch.deviceÚis_lm_head_modulerK   Úshared_kv_cache_dictúDict[int, torch.Tensor]Úlayer_indexÚintÚneed_outputsÚreuse_kvrW   ú'ProgressBar' | NonerX   úOptional[str]rY   r1   r2   r3   r4   rZ   r[   rJ   r\   z6Callable[[Optional[torch.device]], List[torch.device]]r   r    )r!   s   "r"   r#   r$   f   s  € ÷ k
ñ k
ð  ðk
ð #ð	k
ð
 1ðk
ð 2ðk
ð /ðk
ð :ðk
ð )ðk
ð ,ðk
ð 'ðk
ð  ðk
ð 6ðk
ð ðk
ð ðk
ð  ð!k
ð" *ð#k
ð$ &ð%k
ð& &ð'k
ð( "5ð)k
ð* +ð+k
ð, ð-k
ð. "&ð/k
ð0 ð1k
ð2 $Zð3k
ð4 
"ñ5k
r%   c               óª  € V'       g;   \        V P                  P                  RR4      pVe   \        VRR4      '       g   RpV'       d'   V P                  VVVVVVVVV	V
VVVVVVVVVVVR7      # V! V	4      p\	        V4      ^8:  d'   V P                  VVVVVVVVV	V
VVVVVVVVVVVR7      # V P                  VVVVVVVVV	V
VVVVVVVVVVVR7      # )zFDispatch the cached batches through the most appropriate forward path.Úquantize_configNÚauto_forward_data_parallelT)rD   r-   rF   rH   r/   r^   r`   rb   rc   re   rf   rh   rj   rk   rW   rX   rY   r1   r3   r[   rJ   )rD   r-   rF   rH   r/   r^   r`   rb   rc   re   rf   rh   rj   rk   ÚdevicesrW   rX   rY   r1   r3   rJ   )rQ   r   Ú
gptq_modelÚ
run_singler:   Úrun_parallel)r(   rD   r-   rF   rH   r/   r^   r`   rb   rc   re   rf   rh   rj   rk   rW   rX   rY   r1   r3   rZ   r[   rJ   r\   Úquant_configrq   s   &$$$$$$$$$$$$$$$$$$$$$$$  r"   ÚrunÚForwardExecutor.runf   sZ  € ÷: Ü" 4§;¡;×#9Ñ#9Ð;LÈdÓSˆLØÒ'´¸ÐFbÐdh×0iÒ0iØ#�çØ—?‘?ØØ#Ø-Ø%9Ø)Ø#5Ø)Ø /Ø!1Ø"3Ø%9Ø'Ø)Ø!Ø'Ø-Ø-Ø(?Ø$7Ø(?Ø!1ð+ #ó ð ñ0 ,Ð,<Ó=ˆÜˆw‹<˜1ÔØ—?‘?ØØ#Ø-Ø%9Ø)Ø#5Ø)Ø /Ø!1Ø"3Ø%9Ø'Ø)Ø!Ø'Ø-Ø-Ø(?Ø$7Ø(?Ø!1ð+ #ó ð ð0 × Ñ ØØØ)Ø!5Ø%Ø1Ø%Ø+Ø-Ø/Ø!5Ø#Ø%ØØØ#Ø)Ø)Ø$;Ø 3Ø-ð+ !ó 
ð 	
r%   c          ,     óp   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRR R!R"R#RR$RR%R
/# )&r   rD   rE   r-   r.   rF   rG   rH   rI   r/   r0   r^   r_   r`   ra   rb   rc   rd   re   rK   rf   rg   rh   ri   rj   rk   rW   rl   rX   rm   rY   r1   r2   r3   r4   r[   rJ   r   r    )r!   s   "r"   r#   r$   Ó   s   € ÷ gñ gð  ðgð #ð	gð
 1ðgð 2ðgð /ðgð :ðgð )ðgð ,ðgð 'ðgð  ðgð 6ðgð ðgð ðgð  ð!gð" *ð#gð$ &ð%gð& &ð'gð( "5ð)gð* +ð+gð, "&ð-gð. ð/gð0 
"ñ1gr%   c          
     ón  € . p\        \        V P                  P                  RR4      4      pV'       d   VP	                  V^,
          4      MRpV P                  VVVVR7      w  ppp^ pT;'       g    Rp\        V4       EF·  pVP                  V4        T	pV'       d   \        VRR4      p V e   T pVV,          '       d   VV,          ^ ,          P                  MT	p!VV,           U"u. uF  p"\        V"VR7      NK  	  p#p"VV,          p$V$f   T$M\        V$VR7      p%Rp&V%eV   \        V#4      ^ 8”  d7   V#^ ,          P                  4       ^8¼  d   V#^ ,          P                  ^,          MRp'\        V%V'R7      p&V P                  P                  VV&4       / p(V P                  P                   '       d   V%e   V%V(R	&   MRV(R	&   V'       d   VV,          p)V)e   \        V)VR7      V(R
&   VV,          P#                  4        F  w  p*p+V*R9   d   K  \        V+VR7      V(V*&   K!  	  V'       d   Ve   \        VVR7      V(R&   RV(R&   V P                  P                  P%                  VV#V(VR7      p(V'       g   \'        WRRR7       V P)                  VVVVVR7      ;_uu_ 4        Rp, \*        P,                  ! 4       ;_uu_ 4        V
'       d   V! V#!  p,MV! V#/ V(B p,RRR4       T P                  P                  TR4        RRR4       ?#?%?&?(T'       g	   T'       dI   X,eE   \1        T,\2        4      '       d/   \        T,4      ^ 8”  d   TP	                  T4      f   T,R,          Y¼&   X,ex   T P                  P                  P4                  P6                  p-T-e   T!MT	p.\        T P                  P                  RR4      p/\9        T/4      '       d   T/! TT,TT,          T.R7       T'       dw   T,es   \1        T,\2        4      '       d
   T,^ ,          MT,p0T P                  P                  P4                  P6                  p-T-e   T!MT	p.\        T0T.R7      p0TP;                  T0.4       T,e   ?,T\        T4      8  d
   TT,          M^ p1T1^ 8:  dI   T'       d3   T\        T4      8  d#   T P                  P=                  TT,          4      M^p1\?        T1^4      p1\A        TT1,           T4      pTeH   T'       d   TPC                  T4       TTn"        TPG                  T RT RT 24      PI                  4        TP                  R4       EKº  	  V# u up"i   + '       g   i     ELu; i  \.         d    Rp, ELˆi ; i  T P                  P                  TR4       i ; i  + '       g   i     EL™; i  TP                  R4       i ; i)z8Run the forward pass sequentially on the current device.Úwrite_shared_kv_cacheFN©r1   r3   ÚForwardÚtarget_device©Údevice)Úseq_lenÚattention_maskr`   Úkv_last_layerÚ	use_cache)ÚlayerÚlayer_inputÚadditional_inputsr}   T)Úmove_parametersÚmove_buffers©rD   r-   rF   rH   rJ   Ú&update_layer_replay_kwargs_from_output)r„   Úlayer_outputr^   r}   ú rows Ú/)Úpast_key_valuesÚpast_key_valueéÿÿÿÿ)%rK   rQ   r   rr   ÚgetrA   ÚrangeÚ_set_current_batch_indexr   r   r   r:   ÚdimÚshaper   Ú_set_processor_maskÚsupport_batch_quantizeÚitemsÚprepare_layer_replay_kwargsr   rU   ÚtorchÚno_gradr   Ú
isinstanceÚtuplero   Úcalibration_data_devicerR   ÚappendÚ_batch_row_countr=   ÚminÚtitleÚcurrent_iter_stepÚsubtitleÚdraw)2r(   rD   r-   rF   rH   r/   r^   r`   rb   rc   re   rf   rh   rj   rk   rW   rX   rY   r1   r3   r[   rJ   Úoutputsrz   Úprev_kvr>   r?   r@   Úprocessed_rowsÚstage_labelÚ	batch_idxÚexec_deviceÚmodule_targetÚinput_deviceÚinpr…   Úraw_maskÚattn_tensorÚ	keep_maskr€   r†   ÚposÚkeyÚvalueÚmodule_outputÚcalib_device_cfgr}   Úupdate_replay_kwargsÚprimaryÚrows_for_batchs2   &$$$$$$$$$$$$$$$$$$$$$                            r"   rs   ÚForwardExecutor.run_singleÓ   s€  € ð6 -/ˆÜ $¤W¨T¯[©[×-CÑ-CÐE\Ð^cÓ%dÓ eÐß?GÐ&×*Ñ*¨;¸­?Ô;ÈTˆØ6:×6RÑ6RØØØ$;Ø 3ð	 7Só 7
Ñ3ˆÐ'¨ð ˆØ$×1Ð1¨	ˆä˜}×-ˆIØ×.Ñ.¨yÔ9ð|9Ø.�ß*Ü$+¨F°OÀTÓ$J�MØ$Ò0Ø&3˜ð EQÐQZ×D[ÔD[˜|¨IÕ6°qÕ9×@Ò@Ðaq�àR^Ð_hÖRiÓjÑRiÈ3œ~¨c¸+×FÑRi�Ðjà*¨9Õ5�Ø*2Ò*:™hÄÈÐYdÔ@e�à �	ØÒ*Ü:=¸kÓ:JÈQÔ:NÐS^Ð_`ÕSa×SeÑSeÓSgÐklÔSl˜k¨!�n×2Ñ2°1Ö5Ðsw�GÜ 2°;ÈÔ P�Ià—‘×/Ñ/°	¸9ÔEØGIÐ!Ø—;‘;×5×5Ð5¸+Ò:QØ:EÐ%Ð&6Ò7à:>Ð%Ð&6Ñ7çØ& yÕ1�CØ’Ü<CÀCÐP[Ô<\Ð)¨.Ñ9à"4°YÕ"?×"EÑ"EÖ"G‘J�C˜ØÐCÔCÙ Ü-;¸EÈ+Ô-VÐ% cÓ*ñ #H÷
  Ò 3Ü9GÈÐXcÔ9dÐ% oÑ6à16Ð! +Ñ.Ø$(§K¡K×$:Ñ$:×$VÑ$VØ Ø +Ø&7Ø"-ð	 %Wó %Ð!÷ /Ü+¨FÐVZÐimÕnà×.Ñ.Ø!Ø'Ø#1Ø)=Ø%5ð /÷ õ ð %)�Mð	IÜ"Ÿ]š]Ÿ_�_ß0Ù06¸Ñ0D¡á06¸Ð0YÐGXÑ0Y ÷	 -ð Ÿ™×7Ñ7¸	À4ÕH÷#ð&  ØØØ%÷ ×!6Ø%Ò1Ü" =´%×8Ò8Ü˜MÓ*¨QÔ.Ø,×0Ñ0°Ó=ÒEà8EÀbÕ8IÐ(Ñ5à Ò,Ø'+§{¡{×'=Ñ'=×'MÑ'M×'eÑ'eÐ$Ø4DÒ4P¡LÐVf�MÜ+2ØŸ™×.Ñ.Ø@Øó,Ð(ô
  Ð 4×5Ò5Ù,Ø"(Ø)6Ø/AÀ)Õ/LØ*7õ	÷   MÒ$=Ü2<¸]ÌE×2RÒ2R˜m¨AÖ.ÐXe�Gð (,§{¡{×'=Ñ'=×'MÑ'M×'eÑ'eÐ$Ø4DÒ4P¡LÐVf�MÜ% g°mÔD�GØ—N‘N G 9Ô-à Ò,Ø%à@IÌCÐP`ÓLaÔ@aÐ!1°)Ö!<Ðgh�Ø! QÔ&ß^jÐoxÔ{~ð  @Ló  |Mô  pM T§[¡[×%AÑ%AÀ,ÈyÕBYÔ%Zð  ST�NÜ%(¨¸Ó%;�Nä!$ ^°nÕ%DÀjÓ!Q�ØÒ*ß%Ø#×)Ñ)¨.Ô9Ø4B�KÔ1Ø×(Ñ(¨K¨=¸¸~Ð>NÈaÐPZÈ|Ð)\Ó]×bÑbÔdà×2Ñ2°4×8ñ} .ð@ ˆùòi k÷d -Ÿ_˜_ûô
 'ô -Ø(,›ð-ûð Ÿ™×7Ñ7¸	À4ÕHú÷#÷ ð ûðR ×2Ñ2°4Õ8úsÌ   Â+V!Ã'V!Ã*T?Ä B2V!Æ3V!Ç
AV!È)A	V!É3,V!ÊVÊ#UË UËUË VË=V!ÌV!ÌC
V!Ï$B$V!Ò	AV!Ó(?V!Ô?V!ÕUÕUÕU,ÕUÕU)	Õ%U,Õ(U)	Õ)U,Õ,V
	Ö
VÖVÖ	V!Ö!V4Úclone_module_for_devices_fnÚforward_batch_worker_fnÚdevice_thread_poolc          ,     óp   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRR RR!R"R#R$R%RR&R
/# )'r   rD   rE   r-   r.   rF   rG   rH   rI   r/   r0   r^   r_   r`   ra   rb   rc   rd   re   rK   rf   rg   rh   ri   rj   rk   rq   zList[torch.device]rW   rl   rX   rm   rY   r1   r2   r3   r4   rJ   r   r    )r!   s   "r"   r#   r$   |  s   € ÷ wñ wð  ðwð #ð	wð
 1ðwð 2ðwð /ðwð :ðwð )ðwð ,ðwð 'ðwð  ðwð 6ðwð ðwð ðwð  ð!wð" $ð#wð$ *ð%wð& &ð'wð( &ð)wð* "5ð+wð, +ð-wð. ð/wð6 
"ñ7wr%   c               óÚ  aaHaIaJaKaL€ T;'       g    T;'       g    RoHV P                  VVVVR7      w  pppT;'       g    RoLRoJRoK^ oISeí   SP                  SH4       \        V4      ^8”  dŒ   SL R\        V4       R2oKV P                  P	                  \        \        V4      4      4      P                  4       P                  RR7      oJSJP                  SK4      P                  R	4      P                  4        M@V'       d   \        V^ ,          4      MR
pSP                  SL RV 24      P                  4        R VHVVIVJVKVL3R llpSe   TMRp\        4         V! VVVR7      pSJe   SJP                  4        Se4   SP                  SH4      P                  SL RV 24      P                  4        . p  TP                  4        FU  w  p!p"T P                  T"TTTTR7      p#\        T#\         4      '       d   K4  T#P#                  4        T P%                  T#4       KW  	  \'        \)        T P*                  P,                  RR4      4      p$T'       d   TP/                  T^,
          4      MRp%/ p&^ p'T P*                  P,                  P0                  P2                  e^   T P*                  P,                  P0                  P3                  T4      p(\        T(4      ^8  d   T P                  P5                  R4       Tp(MTp(/ p)^ p*\        T(4      p+T P*                  P,                  P0                  P6                  p,T,R8H  p-T-'       d–   T( F  p.. T)T.&   K
  	  \        T4       Fw  p/TT/,          '       g   K  TT/,          ^ ,          P8                  p0T0T)9   d   T)T0,          P%                  T/4       KO  T(T/T+,          ,          p1T)T1,          P%                  T/4       Ky  	  M˜\;        T(4       F‰  w  p2p.\=        TT*,
          ^ 4      p3\=        T+T2,
          ^4      p4T3T4,          p5T3T4,          p6T6^ 8”  d
   T5^,          p5T5^ 8:  d   . T)T.&   K\  \?        T*T5,           T4      p7\A        \        T*T74      4      T)T.&   T7p*K‹  	  ^ p8T)PC                  4        F   p9\        T94      T88”  g   K  \        T94      p8K"  	  \        T84       EFt  p:. p;T( F×  p.T)P/                  T.. 4      p<T:\        T<4      8¼  d   K'  T<T:,          p/TT.,          p"T.PD                  R9   d   TPF                  MTPH                  p=T;P%                  T=! T.TT"TT/TT/,          TT/,          TT/,          T'       d
   TT/,          MRT P*                  P,                  T P*                  PJ                  T
TTT%T$R7      4       KÙ  	  T; EFŠ  p>T>PM                  4       w  p/p?p@T'       dj   T?ef   TT/,          '       d   TT/,          ^ ,          P8                  MT	pAT,e   XAMT	pB\        T?\N        4      '       d
   T?^ ,          MT?pC\Q        TCXBR7      T&T/&   ??T'       g	   T$'       d'   X@e#   TP/                  T4      f   \S        X@T	R7      Y¼&   T/\        T4      8  d
   TT/,          M^ pDTD^ 8:  dI   T'       d3   T/\        T4      8  d#   T P*                  PU                  TT/,          4      M^pD\=        TD^4      pD\?        T'XD,           T4      p'Sf   EKC  T'       d   SP                  T4       T'Sn+        SP                  SL RT' RT 24      P                  4        EK�  	  EKw  	  T  F  p# T#PY                  RRR4       K  	  T P]                  4        \A        TP_                  4       4       F  pETTE K  	  T'       g   . # . pF\        T4       F5  pGT&P/                  TG4      pCTCf   \a        R4      hXFP%                  XC.4       K7  	  XF#   SJe   SJP                  4        Se5   SP                  SH4      P                  SL RT 24      P                  4        i i ; i  \Z         d     EK   i ; i  T  F)  p# T#PY                  RRR4       K    \Z         d     K'  i ; i	  T P]                  4        i ; i)z@Fan batches across device replicas and preserve result ordering.r|   r{   NÚ z: replicate to z devicesF)Úshow_left_stepszStaging module...z<device>ú: staging on c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   Úidxri   Útotalr   rd   ÚstepÚstrr   r   r    )r!   s   "r"   r#   Ú2ForwardExecutor.run_parallel.<locals>.__annotate__±  s8   € ÷ 	Nñ 	N 3ð 	N¨sð 	N¸Lð 	NÐPSð 	NÐX\ñ 	Nr%   c           	     óL  <€ \        V4      pS	eÂ   VR8X  d4   S	P                  S
4      P                  RV 24      P                  4        R# V S8”  dI   V oS	P                  S
4      P                  V RV  RV 24      P	                  4       P                  4        R# S	P                  S
4      P                  V RV  RV 24      P                  4        R# SeO   VR8X  d   S RV 2MS RV RV  RV RV 2	pSP                  S4      P                  V4      P                  4        R# R# )	z8Update the progress bar while replicas are materialized.NÚstagezStage Ú r�   rÂ   z: z on )rÇ   r¢   r¤   r¥   Únext)rÄ   rÅ   r   rÆ   Údevice_labelÚ	stage_msgÚeffective_titlerW   Úreplica_completedÚ
replica_pbÚreplica_titler©   s   &&&&  €€€€€€r"   Ú_replica_progressÚ7ForwardExecutor.run_parallel.<locals>._replica_progress±  s8  ø€ ô ˜v›;ˆLØÒ%Ø˜7”?Ø×$Ñ$ ]Ó3×<Ñ<¸vÀlÀ^Ð=TÓU×ZÑZÔ\ÙØÐ*Ô*Ø(+Ð%Ø×$Ñ$ ]Ó3×<Ñ<À¸~ÈQÈsÈeÐSTÐUZÐT[Ð=\Ó]×bÑbÓd×iÑiÖkà×$Ñ$ ]Ó3×<Ñ<À¸~ÈQÈsÈeÐSTÐUZÐT[Ð=\Ó]×bÑbÖdØÒ(ð ˜w”ð #�m =°°Ñ?à'˜=¨¨4¨&°°#°°a¸°w¸dÀ<À.ÐQð ð
 ×!Ñ! /Ó2×;Ñ;¸IÓF×KÑKÖMñ )r%   )Úprogress_callbackz rows 0/r‰   rz   zZcompute_device_filter returned empty device list. Using all devices for forward execution.Úbalanced)rr   r—   re   Úneed_outputrk   r§   rz   r~   rŒ   r�   zPForward batch returned no output; data-parallel execution produced empty result.)ÚcudaÚxpuÚnpuÚmps)1rA   r¢   r:   r'   Úpbr’   ÚmanualÚsetr¤   r¥   rÇ   r   Úcloser˜   rU   rœ   r   Ú	__enter__rŸ   rK   rQ   r   rr   r‘   ro   Úcompute_device_filterÚwarnrž   r   Ú	enumerater=   r¡   r9   ÚvaluesÚtypeÚsubmit_serialÚsubmitr—   Úresultr�   r   r   r    r£   Ú__exit__Ú	ExceptionÚclearÚkeysÚRuntimeError)Mr(   rD   r-   rF   rH   r/   r^   r`   rb   rc   re   rf   rh   rj   rk   rq   rW   rX   rY   r1   r3   rJ   r»   r¼   r½   r>   r?   r@   rÍ   rÓ   Úprogress_cbÚmodule_replicasÚmoe_contextsÚ_deviceÚreplicaÚctxrz   r§   Úresultsr¨   Úforward_devicesÚdevice_segmentsÚsegment_startÚnum_devicesr¶   Úis_balanced_moder   rª   Úbatch_deviceÚfallback_deviceÚindexÚremaining_batchesÚremaining_devicesÚsegment_lengthÚ	remainderÚsegment_endÚmax_segment_lengthÚindicesÚpositionÚfuturesÚsegment_indicesÚ	submitterÚfutrµ   Úkv_nextr­   r}   r¸   r¹   ÚdevÚordered_outputsrÄ   rÏ   rÐ   rÑ   rÒ   r©   sM   &$$$$$$$$$$$$$$$d$$$$$$$$                                               @@@@@r"   rt   ÚForwardExecutor.run_parallel|  s   ý€ ð< )×IÐI¨^×-HÐ-H¸yˆØ6:×6RÑ6RØØØ$;Ø 3ð	 7Só 7
Ñ3ˆÐ'¨ð %×1Ð1¨	ˆà+/ˆ
ØˆØÐàÒ"Ø×Ñ˜oÔ.Ü�7‹|˜aÔØ#. -¨¼sÀ7»|¸nÈHÐ U�Ø!ŸX™XŸ[™[¬¬s°7«|Ó)<Ó=×DÑDÓF×JÑJÐ[`ÐJÓa�
Ø× Ñ  Ó/×8Ñ8Ð9LÓM×RÑRÕTç29œs 7¨1¥:œ¸z�Ø×$Ñ$¨ }°MÀ,ÀÐ%PÓQ×VÑVÔX÷	Nõ 	Nð, ,7Ò+BÑ'ÈˆäŒð
	iÙ9ØØØ"-ôˆOð Ò%Ø× Ñ Ô"ØÒ&Ø×!Ñ! /Ó2×;Ñ;¸{¸mÈ8ÐT^ÐS_Ð<`Óa×fÑfÔhàˆðL	!Ø$3×$9Ñ$9Ö$;Ñ �˜Ø×/Ñ/Ø"Ø'Ø#1Ø)=Ø%5ð 0ó �ô " #¤{×3Ô3Ø—M‘M”OØ ×'Ñ'¨Ö,ñ %<ô %)¬°·±×1GÑ1GÐI`ÐbgÓ)hÓ$iÐ!ßCKÐ*×.Ñ.¨{¸Q­Ô?ÐQUˆGØ68ˆGØˆNà�{‰{×%Ñ%×5Ñ5×KÑKÒWØ"&§+¡+×"8Ñ"8×"HÑ"H×"^Ñ"^Ð_fÓ"g�Ü�Ó'¨!Ô+Ø—H‘H—M‘MðCôð '.�Oøà")�à=?ˆOØˆMÜ˜oÓ.ˆKð  $Ÿ{™{×5Ñ5×EÑE×]Ñ]ÐØ/°:Ñ=Ðçã-�FØ.0�O FÓ+ñ .ä!& }Ö!5�IØ# I×.Ö.Ø'3°IÕ'>¸qÕ'A×'HÑ'H˜à'¨?Ô:Ø+¨LÕ9×@Ñ@ÀÖKð />¸iÈ+Õ>UÕ.V˜OØ+¨OÕ<×CÑCÀIÖNò "6ô &/¨Ö%?‘M�E˜6Ü(+¨M¸MÕ,IÈ1Ó(MÐ%Ü(+¨K¸%Õ,?ÀÓ(CÐ%Ø%6Ð:KÕ%K�NØ 1Ð4EÕ E�IØ  1”}Ø&¨!Õ+˜à%¨Ô*Ø24˜¨Ñ/Ù ä"% m°nÕ&DÀmÓ"T�KÜ.2´5¸ÈÓ3TÓ.U�O FÑ+Ø$/’Mñ &@ð  "#ÐØ*×1Ñ1Ö3�Ü�w“<Ð"4Ö4Ü),¨W«Ò&ñ 4ô "Ð"4×5�Ø�Û-�FØ&5×&9Ñ&9¸&À"Ó&E�OØ¤3 Ó#7Ô7Ù Ø /°Õ 9�IØ-¨fÕ5�Gð "Ÿ;™;Ð*GÔGð +×8Ò8à/×6Ñ6ð ð —N‘NÙ!Ø"Ø3Ø#Ø%Ø%Ø(¨Õ3Ø.¨yÕ9Ø+¨IÕ6ß7C˜L¨Ö3ÈØ'+§{¡{×'=Ñ'=Ø37·;±;×3UÑ3UØ.?Ø(4Ø%-Ø$+Ø2Gô!öñ .ôB #�CØ8;¿
¹
»Ñ5�I˜}¨gß#¨Ò(AØLXÐYb×LcÔLc |°IÕ'>¸qÕ'A×'HÒ'HÐiy˜Ø8HÒ8T©ÐZj˜ô 7AÀÔPU×6VÒ6V -°Ö"2Ð\i˜Ü-4°WÀ]Ô-S˜ 	Ñ*Ø)ß ×$9¸wÒ?RÐWk×WoÑWoÐp{ÓW|ò  XEÜ<JÈ7Ð[kÔ<lÐ,Ñ9àDMÔPSÐTdÓPeÔDeÐ%5°iÖ%@Ðkl�NØ%¨Ô*ßbnÐs|ô  @Cð  DPó  @Qô  tQ¨¯©×)EÑ)EÀlÐS\ÕF]Ô)^ð  WX˜Ü),¨^¸QÓ)?˜ä%(¨¸.Õ)HÈ*Ó%U�NØ"Õ.ß)Ø'×-Ñ-¨nÔ=Ø8F˜Ô5Ø#×,Ñ,°¨}¸FÀ>ÐBRÐRSÐT^ÐS_Ð-`Óa×fÑf×hô/ #ñG 6óx $�ðØ—L‘L  t¨TÖ2ñ $ð
 ×ÑÔ ä˜×,Ñ,Ó.Ö/ˆCØ Ò$ñ 0÷ ØˆIà46ˆÜ˜Ö'ˆCØ—k‘k #Ó&ˆGØŠÜ"Ð#uÓvÐvØ×"Ñ" G 9Ö-ñ	 (ð ÐøðC Ò%Ø× Ñ Ô"ØÒ&Ø×!Ñ! /Ó2×;Ñ;¸{¸mÈ8ÐT^ÐS_Ð<`Óa×fÑfÕhð 'ûô\ !ô Ûðûó $�ðØ—L‘L  t¨TÖ2øÜ ô Úðúñ $ð
 ×ÑÕ ús“   Å_ Æ2?`) Ç6E.`) Í)D"`) ÒB5`) ÕA;`) ×A`) Ø `) Ø(A`) Ù8A`) Û`) ÛA	`) Ü)`ßA`à`&à%`&à)a*à0aáa*áa	áa*áa	áa*)r'   r   )N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r*   rA   rU   r   rv   rs   r   r   r   rt   Ú__static_attributes__r    r%   r"   r   r   #   s†  † ÙH÷,÷;õ.!
ðFk
ð
 48ðk
ð 59ðk
ð" -1ð#k
ð$ )-ð%k
ð& )-ð'k
ð( 8<ð)k
ð* .2ð+k
ð, #ð-k
ð. ).ð/k
ð0 "&ð1k
ð2 ]s÷3k
ðZgð
 48ðgð 59ðgð" -1ð#gð$ )-ð%gð& )-ð'gð( 8<ð)gð* .2ð+gð, ).ð-gð. "&÷/gðRwð
 48ðwð 59ðwð$ -1ð%wð& )-ð'wð( )-ð)wð* 8<ð+wð, .2ð-wð. "&ð/wð0 %=ð1wð2 !5ð3wð4 .÷5wó wr%   r   )'r  Ú
__future__r   Ú
contextlibr   Útypingr   r   r   r   r   r	   r
   rš   rÀ   r   Únn_modules.hooked_linearr   Úutils.attn_maskr   Úutils.loggerr   Úutils.looper_helpersr   r   r   r   Úutils.modelr   r   Úutils.torchr   Úlogbar.progressr   Úloop_processorr   Úmodule_looperr   r   r    r%   r"   Ú<module>r     sS   ðñ Cå "å "ß L× LÑ Lã å !Ý 2Ý 0Ý '÷ó ÷ 2Ý $çÝ+å-Ý+÷P	ó P	r%   