+
    "Ý³jÿE  ã            	      ó°  € ^ RI Ht ^ RIt^ RIt^ RI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Ht ^RIHt ^RIH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% ^RI&H't' ^RI(H)t)H*t*H+t+H,t, ]! RR4      t-]'! ]4      t.]P^                  ! 4       t0R2R R llt1]!! 4       t2]'       d   ^RI3H4t4 ^RI5H6t6 ^RI7H8t8 . R3Ot9R R lt:]R R l4       t;]P^                  ! 4       t<]Pz                  ! 4       RRRRRRRR/R  R! ll4       t>R" R# lt?R$ R% lt@R& R' ltAR( R) ltBR*]?R+R/R, R- lltC]Pz                  ! 4       R.RR/R/R0 R1 ll4       tDR# )4é    )ÚannotationsN)Úcontextmanager)ÚTYPE_CHECKINGÚCallableÚDictÚListÚOptionalÚSequenceÚTuple)Úparallel)ÚDEBUG_ONÚDEVICE_THREAD_POOL)ÚStopForward)Únormalize_seq_mask)Ú
get_device)Úenv_flag)Úget_supported_kwargs)Úsetup_logger)Úget_layer_nameÚmove_toÚnested_move_to)Ú
ThreadSafe)ÚALL_DEVICESÚCPUÚHAS_NPUÚ
torch_syncÚGPTQMODEL_USE_TORCH_REPLICATETc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úmoduleútorch.nn.ModuleÚdevicesz"Sequence[torch.device | str | int]ÚdetachÚbool© )Úformats   "Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/looper_helpers.pyÚ__annotate__r(   "   s+   € ÷ Zñ ZØðZà/ðZð ñZó    c                óª  € . pV F2  p\        V4      pVf   \        RV: 24      hVP                  V4       K4  	  T;'       g    Rp\        P                  ! V4      ;_uu_ 4        V F"  pVP
                  R9   g   K   \        V4       K$  	  \        P                  WVR7      uuRRR4       #   \         d     KU  i ; i  + '       g   i     R# ; i)zÒReplicate a module across ``devices`` while coordinating device locks and syncs.

Clones default to ``detach=True`` because quantization workflows operate in inference-only
mode and do not need autograd edges.
NzUnsupported device spec: )r#   >   ÚmpsÚnpuÚxpuÚcuda)
Únormalize_device_likeÚ
ValueErrorÚappendr   ÚlockÚtyper   ÚBaseExceptionÚ_THREAD_SAFE_PARALLELÚ	replicate)r    r"   r#   Únormalized_devicesÚ	candidateÚ
normalizedÚ
lock_scopeÚdevs   &&&     r'   Útorch_replicater<   "   sÆ   € ð .0ÐÛˆ	Ü*¨9Ó5ˆ
ØÒÜÐ8¸¹ÐFÓGÐGØ×!Ñ! *Ö-ñ	 ð $×+Ð+ t€Jä	×	 Ò	  ×	,Õ	,Û%ˆCØ�x‰xÐ8Ö8ðÜ˜s–Oñ &ô %×.Ñ.¨vÐRXÐ.ÓY÷ 
-Ò	,øô
 %ô Úðú÷ 
-×	,Ð	,ús0   Á%CÁ?B/Â
CÂ/B>	Â:CÂ=B>	Â>CÃC	)ÚLoopProcessor)ÚDEVICE)ÚBaseQuantizeConfigc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úquantize_configz'BaseQuantizeConfig'Úlayer_moduleszList[List[str]]Úlayer_nameszOptional[List[str]]Úlayer_countÚintÚreturnzOptional[int]r%   )r&   s   "r'   r(   r(   S   s<   € ÷ &ñ &Ø)ð&ð #ð&ð %ð	&ð
 ð&ð ñ&r)   c          	     ó¦  a a	€ S P                   '       g	   V'       g   R# V UUu0 uF/  pV F&  pV'       g   K  VP                  R^4      ^ ,          kK(  	  K1  	  pppV'       g   R# Rp\        V4       FT  p\        W(4      o	\        ;QJ d     V	V 3R lV 4       F  '       g   K   RM	  RM! V	V 3R lV 4       4      '       g   KR  TpKV  	  V# u uppi )zJReturn the final layer containing a module not excluded by dynamic config.NÚ#c              3  óV   <"  € T F  pSP                  S R V 2R7      RJx € K   	  R# 5i)Ú.)Ú
layer_nameFN)Údynamic_get)Ú.0Úmodule_namerK   rA   s   & €€r'   Ú	<genexpr>Ú2find_last_quantized_layer_index.<locals>.<genexpr>k   s7   øé € ð 
á1�ð ×'Ñ'°j°\ÀÀ;À-Ð3PÐ'ÓQÐY^Õ^Û1ùs   ƒ&)TFéÿÿÿÿ)Úlm_headÚsplitÚranger   Úany)
rA   rB   rC   rD   Úmodule_groupÚnameÚlayer_module_namesÚlast_quantized_layer_indexÚcandidate_layer_indexrK   s
   f$$$     @r'   Úfind_last_quantized_layer_indexr[   S   sÉ   ù€ ð ××Ð§kÙñ *ôá)ˆLÛ ˆDÜô 	ˆ�
‰
�3˜Ó˜1×Ðá ñ 	Ù)ð ñ ÷ Ùà!#ÐÜ!& {Ö!3ÐÜ# KÓGˆ
ß‹3õ 
á1ó
�3�3Š3õ 
á1ó
÷ 
ô 
ð *?Ò&ñ "4ð &Ð%ùó%s
   ¤C¸!Cc               ó   € V ^8„  d   QhRR/# )r   r;   z!Optional[torch.device | 'DEVICE']r%   )r&   s   "r'   r(   r(   u   s   € ÷ 
ñ 
Ð5ñ 
r)   c              #  óÌ  "  € V f   Rx € R# V P                   R8X  dA   \        P                  P                  V P                  4      ;_uu_ 4        Rx € RRR4       R# V P                   R8X  dW   \        \        R4      '       dA   \        P                  P                  V P                  4      ;_uu_ 4        Rx € RRR4       R# V P                   R8X  dM   \        '       dA   \        P                  P                  V P                  4      ;_uu_ 4        Rx € RRR4       R# Rx € R#   + '       g   i     R# ; i  + '       g   i     R# ; i  + '       g   i     R# ; i5i)z>Temporarily set the thread-local device for CUDA/XPU backends.Nr.   r-   r,   )	r3   Útorchr.   ÚdeviceÚindexÚhasattrr-   r   r,   )r;   s   &r'   Ú
device_ctxrb   t   sÖ   é € ð ‚{ÛÙà
‡x�x�6ÔÜ�Z‰Z×Ñ˜sŸy™y×)Õ)Û÷ *áØ
‡x�x�5ÔœW¤U¨E×2Ò2Ü�Y‰Y×Ñ˜cŸi™i×(Õ(Û÷ )áØ
‡x�x�5ÔŸW›WÜ�Y‰Y×Ñ˜cŸi™i×(Õ(Û÷ )áõ 
÷ *Ö)áúç(Ö(áúç(Ö(áüsU   ‚AE$ÁD(ÁA"E$Â6D<Â;&E$Ã"1E$ÄEÄE$Ä(D9	Ä3	E$Ä<E	Å	E$ÅE!	Å	E$Úmove_parametersFÚmove_buffersÚinclude_non_persistent_buffersÚonly_mismatchedc               ó4   € V ^8„  d   QhRRRRRRRRRRR	RR
R/# )r   r    r!   r_   útorch.devicerc   r$   rd   re   rf   rF   ÚNoner%   )r&   s   "r'   r(   r(   Ž   sN   € ÷ 3!ñ 3!Øð3!àð3!ð ð	3!ð
 ð3!ð %)ð3!ð ð3!ð 
ñ3!r)   c               ó  € \         ;_uu_ 4        V P                  4        EF¾  pV'       dµ   \        VR\        4       4      p\	        \        VR/ 4      P                  4       4       Fw  w  r‰V	e!   \        V	\        P                  4      '       g   K+  V'       g	   W‡9   d   K;  V'       d   V	P                  V8X  d   KV   V	P                  VRR7      VP                  V&   Ky  	  V'       g   KÊ  \	        \        VR/ 4      P                  4       4       FÌ  w  r«Ve+   \        V\        P                  P                  4      '       g   K5  V'       d   VP                  V8X  d   KP   \        P                  ! 4       ;_uu_ 4        \        P                  P                  VP                   P                  VRR7      VP"                  R7      pRRR4       XVP$                  V
&   KÎ  	  EKÁ  	  RRR4       R#   \         d9     T	P                  T4      TP                  T&    EK¶    \         d      EKÆ  i ; ii ; i  + '       g   i     Lx; i  \         d¨     \        P                  ! 4       ;_uu_ 4        \        P                  P                  TP                   P                  T4      TP"                  R7      pRRR4       M  + '       g   i     M; iXTP$                  T
&    EKÕ    \         d      EKå  i ; ii ; i  + '       g   i     R# ; i)zMMove registered tensors on ``module`` to ``device`` with defensive fallbacks.Ú_non_persistent_buffers_setÚ_buffersNT)Únon_blockingÚ_parameters)Úrequires_grad)Ú_rehome_lockÚmodulesÚgetattrÚsetÚlistÚitemsÚ
isinstancer^   ÚTensorr_   Útorl   Ú	ExceptionÚnnÚ	ParameterÚno_gradÚdataro   rn   )r    r_   rc   rd   re   rf   ÚsubÚnp_setrW   ÚbufÚpnameÚpÚnew_ps   &&$$$$       r'   Úrehome_module_to_devicer„   �   s.  € ÷ 
ŽØ—>‘>×#ˆCßÜ  Ð&CÄSÃUÓK�Ü!%¤g¨c°:¸rÓ&B×&HÑ&HÓ&JÖ!K‘I�DØ’{¬*°S¼%¿,¹,×*GÒ*GÙ ß9¸d¼nÙ ß&¨3¯:©:¸Ô+?Ù ð!Ø-0¯V©V°FÈ¨VÓ-N˜Ÿ™ TÓ*ñ "L÷ ‰Ü $¤W¨S°-ÀÓ%D×%JÑ%JÓ%LÖ M‘H�EØ’y¬
°1´e·h±h×6HÑ6H×(IÒ(IÙ ß&¨1¯8©8°vÔ+=Ù ð!Ü"Ÿ]š]Ÿ_�_Ü$)§H¡H×$6Ñ$6Ø !§¡§	¡	¨&¸t 	Ó DØ./¯o©oð %7ó %˜E÷ -ð
 27˜Ÿ™¨Ó.ô !Nñ' $÷ 
‰øô %ô !ð!Ø14·±¸³˜CŸL™L¨Õ.øÜ(ô !Ü ð!úð!ú÷ -Ÿ_ûô %ô 	!ð!Ü!&§¢§¥Ü(-¯©×(:Ñ(:Ø$%§F¡F§I¡I¨fÓ$5Ø23·/±/ð );ó )" ÷ "1§§ úð
 6;˜CŸO™O¨EÕ2øÜ(ô !Ü ð!úð	!ú÷A 
�ˆúsÛ   �BK;ÂK;Â(K;Â< G-Ã	K;Ã*A K;ÅK;ÅIÅ<AH3ÇIÇ	K;Ç-H0Ç9H
ÈK;ÈH,È&H0È'K;È+H,È,H0È0K;È3IÈ>IÉK8ÉK#
É/AJ=Ê4	K#
Ê=KËK#
ËK;Ë#K4Ë.K8Ë/K;Ë3K4Ë4K8Ë8K;Ë;L	c               ó    € V ^8„  d   QhRRRR/# )r   r    r!   rF   zList[Tuple[str, int]]r%   )r&   s   "r'   r(   r(   Ä   s   € ÷ ñ  oð Ð:Oñ r)   c                óØ   a€ . p\        4       oR V3R llp\        V \        P                  P                  4      '       d"   V P                  4        F  pV! V4       K  	  V# V! V 4       V# )zKPlaceholder hook that tracks visited modules; extended elsewhere as needed.c               ó   € V ^8„  d   QhRR/# )r   Úobjr!   r%   )r&   s   "r'   r(   Ú/clear_non_picklable_state.<locals>.__annotate__É   s   € ÷ ñ ˜ñ r)   c                ó`   <€ \        V 4      S9   d   R # SP                  \        V 4      4       R # ©N)ÚidÚadd)rˆ   Úseens   &€r'   Úmaybe_clearÚ.clear_non_picklable_state.<locals>.maybe_clearÉ   s!   ø€ Üˆc‹7�dŒ?ÙØ�‰”�C“Ör)   )rs   rv   r^   rz   ÚModulerq   )r    Úclearedr�   r~   rŽ   s   &   @r'   Úclear_non_picklable_stater“   Ä   s_   ø€ à%'€GÜ‹5€D÷ð ô
 �&œ%Ÿ(™(Ÿ/™/×*Ò*Ø—>‘>Ö#ˆCÙ˜Öñ $ð
 €Nñ 	�FÔà€Nr)   c               ó    € V ^8„  d   QhRRRR/# )r   r_   rh   rF   r%   )r&   s   "r'   r(   r(   ×   s   € ÷ ñ ˜lð ¨|ñ r)   c                óª   € V P                   R9   dB   V P                  e   V P                  M^ p\        P                  ! V P                    RV 24      # V # )zGReturn a canonical form so indexless accelerators collapse to device:0.Ú:>   r,   r-   r.   )r3   r`   r^   r_   )r_   r`   s   & r'   Ú_canonical_devicer—   ×   sF   € à‡{�{Ð,Ô,Ø &§¡Ò 8�—’¸aˆÜ�|Š|˜vŸ{™{˜m¨1¨U¨GÐ4Ó5Ð5Ø€Mr)   c               ó    € V ^8„  d   QhRRRR/# )r   Úbase_deviceúOptional[torch.device]rF   úList[torch.device]r%   )r&   s   "r'   r(   r(   ß   s   € ÷ ñ Ð(>ð ÐCUñ r)   c                óà   aa€ V f   \         .# . o\        4       oR VV3R llpV! V 4       S^ ,          P                  pVR9   d)   \         F  pVP                  V8X  g   K  V! V4       K   	  S# )Nc               ó    € V ^8„  d   QhRRRR/# )r   r_   rh   rF   ri   r%   )r&   s   "r'   r(   Ú,select_forward_devices.<locals>.__annotate__æ   s   € ÷ "ñ "�\ð " dñ "r)   c                ó¤   <€ \        V 4      pVP                  VP                  3pVS9   d   R # SP                  V4       SP	                  V4       R # r‹   )r—   r3   r`   r�   r1   )r_   Ú	canonicalÚkeyr"   rŽ   s   &  €€r'   Ú_addÚ$select_forward_devices.<locals>._addæ   s@   ø€ Ü% fÓ-ˆ	Ø�~‰~˜yŸ™Ð/ˆØ�$Œ;ÙØ�‰�ŒØ�‰�yÖ!r)   >   r+   r,   r-   r.   )r   rs   r3   r   )r™   r¢   Ú	base_typer;   r"   rŽ   s   &   @@r'   Úselect_forward_devicesr¥   ß   sj   ù€ ØÒÜˆuˆà"$€GÜ(+«€D÷"ñ "ñ 	ˆÔØ˜•
—‘€IØÐ1Ô1ßˆCØ�x‰x˜9Ö$Ù�S–	ñ ð €Nr)   c               ó   € V ^8„  d   QhRR/# )r   rF   rš   r%   )r&   s   "r'   r(   r(   ÷   s   € ÷ 
%ñ 
%Ð*@ñ 
%r)   c                óî   € V f   R # \        V \        P                  4      '       d   T pMB\        V R4      '       d   V P	                  4       pM\        P                  ! \        V 4      4      p\        V4      # )NÚto_torch_device)rv   r^   r_   ra   r¨   Ústrr—   )Údevice_liker_   s   & r'   r/   r/   ÷   s[   € ØÒÙÜ�+œuŸ|™|×,Ò,Ø‰Ü	�Ð/×	0Ò	0Ø×,Ñ,Ó.‰ä—’œc +Ó.Ó/ˆä˜VÓ$Ð$r)   Úclear_state_fnÚprogress_callbackc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r    r!   r"   r›   r¬   z7Optional[Callable[[int, int, torch.device, str], None]]rF   z#Dict[torch.device, torch.nn.Module]r%   )r&   s   "r'   r(   r(     s7   € ÷ ~ñ ~Øð~àð~ð
 Oð~ð )ñ~r)   c               óø  a aaaaaaaa€ / pV'       g   V# \        S R S P                  P                  4      o. o\        P                  ! 4       o\        V4      oR VV3R llpR V3R lloR VVV3R llpV^ ,          pVP                  o\        ;QJ d    V3R lV 4       F  '       d   K   RM	  R	M! V3R lV 4       4      pR
 R lp	R VVV 3R llp
\        ;'       d     T;'       d    V	! S4      ;'       d    SR8g  pVP                  R8w  d   TM\        pV'       d²    V
! VRV 24       V! ^ VR4       \        P                  ! 4       p\        S V4      pS! RV4       \        \        W4      ^R7       FL  w  pw  ppVP                  4        \        VVR	R	R7       S! V4       \        VRV4       VVV&   V! VVR4       KN  	  V! R4       V# \        V4      ^8X  dZ   V^ ,          P                  R8X  dB   V
! \        R4       V! ^ \        R4       S WA^ ,          &   V! ^V^ ,          R4       V! R4       V# V'       g   V
! VRV 24       V! ^ VR4       \        V^R7       F�  w  pp\        P                  ! 4       p\(        ;_uu_ 4        \*        P,                  ! S 4      pRRR4       XP                  4        \        VVR	R	R7       S! V4       \        VRV4       VVV&   S! \/        V4      V4       V! VVR4       KŸ  	  V! R4       V#   \          dG   p\"        P%                  RT 24       SP'                  R4       YÇ8w  d   T
! TRT 24        Rp?EL‹Rp?ii ; i  + '       g   i     LÇ; i)Ú	full_namec               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚidxrE   r_   rh   Ústepr©   rF   ri   r%   )r&   s   "r'   r(   Ú.clone_module_for_devices.<locals>.__annotate__  s(   € ÷ ñ �Sð  ,ð °cð ¸dñ r)   c                óš   <€ Sf   R #  S! V SW4       R #   \          d+    \        '       d   \        P                  RTT4        R #  R # i ; i)NzGclone_module_for_devices: progress callback failed (device=%s, step=%s))ry   r   ÚlogÚdebug)r±   r_   r²   r¬   Útotal_targetss   &&&€€r'   Ú_notifyÚ)clone_module_for_devices.<locals>._notify  sK   ø€ ØÒ$Ùð	Ù˜c =°&Ö?øÜô 	ß‹xÜ—	‘	Ø]ØØ÷ò ð	ús   ‰
 •A
¬A
Á	A
c               ó$   € V ^8„  d   QhRRRRRR/# )r   rW   r©   Ústart_tszOptional[float]rF   ri   r%   )r&   s   "r'   r(   r³   "  s&   € ÷ Eñ E�cð E _ð E¸ñ Er)   c                ó†   <€ \         '       d   Vf   R # SP                  V \        P                  ! 4       V,
          34       R # r‹   )r   r1   ÚtimeÚperf_counter)rW   r»   Úclone_timingss   &&€r'   Ú_recordÚ)clone_module_for_devices.<locals>._record"  s1   ø€ ß‹x˜8Ò+ÙØ×Ñ˜d¤D×$5Ò$5Ó$7¸(Õ$BÐCÖDr)   c               ó    € V ^8„  d   QhRRRR/# )r   Úmethodr©   rF   ri   r%   )r&   s   "r'   r(   r³   '  s   € ÷ cñ c ð c¨ñ cr)   c                ó4  <€ \         '       g   R # \        P                  ! 4       S,
          R,          pS'       d>   RP                  R S 4       4      p\        P                  RS RV  RVR RV R	2	4       R # \        P                  RS RV  RVR R
24       R # )Ng     @�@z, c              3  óF   "  € T F  w  rV R VR,          R R2x € K  	  R# 5i)Ú=iè  ú.2fÚmsNr%   )rM   r²   Údurations   &  r'   rO   ÚDclone_module_for_devices.<locals>._emit_clone_log.<locals>.<genexpr>,  s(   é € Ð"iÑ[hÉÈ d V¨1¨X¸­_¸SÐ,AÀÕ#DÓ[hùs   ‚!zModuleLooper: clone z via z in rÇ   zms [Ú]rÈ   )r   r½   r¾   Újoinrµ   Úinfo)rÃ   Útotal_durationÚ
timing_strr¿   Úmodule_labelÚoverall_starts   &  €€€r'   Ú_emit_clone_logÚ1clone_module_for_devices.<locals>._emit_clone_log'  s’   ø€ ß‹xÙÜ×+Ò+Ó-°Õ=ÀÕGˆßØŸ™Ñ"iÑ[hÓ"iÓiˆJÜ�H‰HÐ+¨L¨>¸¸v¸hÀdÈ>ÐZ]ÐJ^Ð^bÐcmÐbnÐnoÐpÖqä�H‰HÐ+¨L¨>¸¸v¸hÀdÈ>ÐZ]ÐJ^Ð^`ÐaÖbr)   c              3  ó@   <"  € T F  qP                   S8H  x € K  	  R # 5ir‹   )r3   )rM   r;   Údevice_types   & €r'   rO   Ú+clone_module_for_devices.<locals>.<genexpr>3  s   øé € ÐF¹g°sŸ8™8 {Ö2»gùs   ƒFTc               ó    € V ^8„  d   QhRRRR/# )r   Údev_typer©   rF   r$   r%   )r&   s   "r'   r(   r³   5  s   € ÷ ñ  Cð ¨Dñ r)   c                ó”  € V R 8X  d   \         P                  P                  4       # V R8X  dA   \        \         R4      '       d+   \	        \        \         P                  RR 4      ! 4       4      # V R8X  dU   \	        \        \         P                  RR4      ;'       d)    \         P                  P                  P                  4       4      # R# )r.   r-   Úis_availablec                 ó   € R # )Fr%   r%   r)   r'   Ú<lambda>ÚEclone_module_for_devices.<locals>.backend_available.<locals>.<lambda>9  s   € Á5r)   r+   NF)	r^   r.   rÚ   ra   r$   rr   r-   Úbackendsr+   )rØ   s   &r'   Úbackend_availableÚ3clone_module_for_devices.<locals>.backend_available5  sŠ   € Ø�vÔÜ—:‘:×*Ñ*Ó,Ð,Ø�uÔ¤¬°×!6Ò!6Üœ¤§	¡	¨>¹=ÔIÓKÓLÐLØ�uÔÜœ¤§¡°°tÓ<×bÐbÄÇÁ×ASÑAS×A`ÑA`ÓAbÓcÐcÙr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útarget_devicerh   Ú	step_namer©   rF   ri   r%   )r&   s   "r'   r(   r³   >  s!   € ÷ %ñ % |ð %Àð %Èñ %r)   c                óÌ   <€ \         P                  ! 4       pSP                  V 4       SP                  4        \	        SV R R R7       S! S4       \        SRV 4       S! W4       R# )T©rc   rd   Ú_gptqmodule_device_hintN)r½   r¾   rx   Úevalr„   Úsetattr)râ   rã   r»   rÀ   r«   r    s   && €€€r'   Ú_prepare_moduleÚ1clone_module_for_devices.<locals>._prepare_module>  sR   ø€ Ü×$Ò$Ó&ˆØ�	‰	�-Ô Ø�‰ŒÜ ¨ÀtÐZ^Õ_Ù�vÔÜ�Ð1°=ÔAÙ�	Ö$r)   ÚcpuÚstage_Ústager6   )Ústartrå   ræ   ÚreplicazClone: fast clone failed NÚ	stage_cpuÚreuseÚcloneÚdeepcopy)Úreplicate_failedg        )rr   Ú	__class__Ú__name__r½   r¾   Úlenr3   ÚallÚUSE_TORCH_REPLICATEr   r<   Ú	enumerateÚziprç   r„   rè   ry   rµ   rÍ   r1   Ú_DEEPCOPY_LOCKÚcopyró   r©   )r    r"   r«   r¬   Úclonesr¸   rÒ   r™   Úhomogeneous_typerß   ré   Úuse_replicateÚstage_deviceÚreplicate_startÚreplicasr±   r;   rï   Úer»   rÀ   r¿   rÕ   rÐ   rÑ   r·   s   f&dd                @@@@@@r'   Úclone_module_for_devicesr    s,  ÿø€ ð 35€FßØˆä˜6 ;°×0@Ñ0@×0IÑ0IÓJ€LØ-/€MÜ×%Ò%Ó'€Mä˜“L€M÷ñ ÷Eð E÷
cò cð ˜!•*€KØ×"Ñ"€Kß“sÔF¹gÓF—s—s’sÔF¹gÓFÓFÐõ÷%ò %ô 	÷ 	!ð 	!Ø÷	!ð 	!á˜kÓ*÷	!ð 	!ð ˜5Ñ ð	 ð #.×"2Ñ"2°eÔ";‘;Ä€Lçð	GÙ˜K¨6°+°Ð)?Ô@Ù�A�{ GÔ,ä"×/Ò/Ó1ˆOÜ& v¨wÓ7ˆHÙ�K Ô1ä'0´°WÓ1GÈq×'QÑ#�‘^�c˜7Ø—‘”Ü'¨°ÀdÐY]Õ^Ù˜wÔ'Ü˜Ð!:¸CÔ@Ø%��s‘Ù˜˜S )Ö,ñ (Rñ ˜KÔ(ØˆMô ˆ7ƒ|�qÔ˜W Q�ZŸ_™_°Ô5Ùœ˜[Ô)Ù�”3˜Ô Ø#ˆ�q�zÑÙ��7˜1•:˜wÔ'Ù˜Ô ØˆçÙ˜¨¨|¨nÐ&=Ô>Ù��< Ô)ä˜g¨Q×/‰ˆˆSÜ×$Ò$Ó&ˆßŽ^Ü—m’m FÓ+ˆG÷ à�‰ŒÜ ¨¸dÐQUÕVÙ�wÔÜ�Ð2°CÔ8Øˆˆs‰Ù”�C“˜(Ô#Ù��S˜'Ö"ñ 0ñ �JÔØ€Møô? ô 	GÜ�H‰HÐ0°°Ð4Ô5Ø× Ñ Ð!:Ô;ØÔ*Ù °°|°nÐ.EÔFÿùð		Gú÷( �^ús%   Ä&B/L ÊM)ÌM&Ì ;M!Í!M&Í)M9Ú
gptq_modelÚwrite_shared_kv_cachec               óH   € 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!   Ú	processorz'LoopProcessor'Úbatch_indexrE   Úlayer_inputzList[torch.Tensor]Úlayer_input_kwargszDict[str, torch.Tensor]Úattention_maskzOptional[torch.Tensor]Úposition_idsÚsupport_batch_quantizer$   Úis_lm_head_moduleÚneed_outputÚreuse_kvr  r%   )r&   s   "r'   r(   r(   †  sŽ   € ÷ o/ñ o/Øðo/àðo/ð ðo/ð $ð	o/ð
 0ðo/ð +ðo/ð )ðo/ð !ðo/ð ðo/ð ðo/ð ðo/ð  ño/r)   c               ó¼  € VP                  V4       \        V R R4      ;'       g    \        V 4      p\        WRRR7       \	        VR7       V Uu. uF  p\        WþR7      NK  	  ppRpVe   \        W^R7      p/ p\        V P                  4      w  ppT;'       g    VRJ ;'       g    RV9   pV'       d   V'       d   TMRVR&   Ve   \        WnR7      VR&   VP                  4        F  w  pp\        VVR7      VV&   K  	  RpVeV   \        V4      ^ 8”  d7   V^ ,          P                  4       ^8¼  d   V^ ,          P                  ^,          MRp\        VVR7      p\        VRR4      pVe   VVn        V'       d   Ve   \        WÎR7      VR	&   R
VR&   Ve   VP                  V VVVR7      pRpRp V	'       d   V ! V!  pM	V ! V/ VB p Ve   RVn        VP                  R4       V'       g	   V'       d4   Ve0   \#        V\$        4      '       d   \        V4      ^ 8”  d
   VR,          pVe/   Ve+   \        VRR4      p\'        V4      '       d   V! V VVVR7       RpV
'       d&   Ve"   \#        V\$        4      '       d
   V^ ,          MTp\	        VR7       ????Ve   ?VVV3# u upi   \          d    Rp Lîi ; i  Te   RTn        TP                  R4       i ; i)ræ   NTrå   )r_   r  r  )Úseq_lenÚ	_mask_tlsÚkv_last_layerFÚ	use_cache)Úlayerr  Úadditional_inputsrâ   Ú&update_layer_replay_kwargs_from_output)r  Úlayer_outputr  râ   rQ   )Ú_set_current_batch_indexrr   r   r„   r   r   r   Úforwardru   r   r÷   ÚdimÚshaper   ÚvalueÚprepare_layer_replay_kwargsr   rv   ÚtupleÚcallable)r    r	  r
  r  r  r  r  r  r  r  r  r  Úprev_kvr  Úmodule_deviceÚinpÚinputsÚattn_tensorr  Úaccepts_var_kwÚallowed_kwargsÚsupports_attention_maskr¡   r   Ú	keep_maskr  Úmask_tlsÚmodule_outputÚkv_nextÚupdate_replay_kwargsÚresult_outputs   &&&&&&&$$$$$$$                 r'   Úforward_batch_workerr2  …  s  € ð$ ×&Ñ& {Ô3Ü˜FÐ$=¸tÓD×ZÐZÌ
ÐSYÓHZ€Mä˜FÀ4ÐVZÕ[ô �mÕ$Ù<GÓH¹K°SŒg�c×0¹K€FÐHà€KØÒ!Ü˜nÔCˆà13ÐÜ%9¸&¿.¹.Ó%IÑ"€N�NØ,×lÐl°À$Ð0F×lÐlÐJZÐ^lÑJlÐß÷ >T©kÐY]ÐÐ*Ñ+àÒÜ,3°LÔ,WÐ˜.Ñ)à(×.Ñ.Ö0‰
ˆˆUÜ!/°¸mÔ!LÐ˜#Óñ 1ð €IØÒÜ),¨V«°q¬¸VÀA½Y¿]¹]»_ÐPQÔ=Q�&˜•)—/‘/ !Ö$ÐX\ˆÜ& {¸GÔDˆ	ä�y +¨tÓ4€HØÒØ"ˆŒç�GÒ'Ü-;¸GÔ-ZÐ˜/Ñ*ð &+Ð�kÑ"ØÒØ&×BÑBØØØ/Ø'ð	 Có 
Ðð €MØ€Gð
1ßÙ" F™O‰Má" FÐ@Ð.?Ñ@‰Mð ÒØ!ˆHŒNØ×*Ñ*¨4Ô0ç×)¨}Ò/HÌZÐXeÔgl×MmÒMmÔruð  wDó  sEð  HIô  sIØ Õ#ˆàÒ -Ò";Ü& zÐ3[Ð]aÓbÐÜÐ(×)Ò)Ù ØØ*Ø#5Ø+õ	ð €Mß�}Ò0ô -7°}Äe×,LÒ,L˜ aÖ(ÐR_ˆô
 �mÕ$ð 	ØØØØÒ ØØ˜ wÐ.Ð.ùòo Iøôb ô ØŠðûð ÒØ!ˆHŒNØ×*Ñ*¨4Õ0ús<   ÁJ%Æ3J* ÇJ= ÇJ* Ç
J= Ê*J:Ê7J= Ê9J:Ê:J= Ê=K)T)rb   r„   r“   r¥   r/   r  r[   r2  )EÚ
__future__r   rý   Ú	threadingr½   Ú
contextlibr   Útypingr   r   r   r   r	   r
   r   r^   Útorch.nnr   Útorch_parallelÚ r   r   Únn_modules.hooked_linearr   Úutils.attn_maskr   Úutils.devicer   Ú	utils.envr   Úutils.inspectr   Úutils.loggerr   Úutils.modelr   r   r   Ú
utils.safer   Úutils.torchr   r   r   r   rù   r5   ÚLockrü   r<   rµ   Úlooper.loop_processorr=   Úmodels._constr>   Úquantization.configr?   Ú__all__r[   rb   rp   Úinference_moder„   r“   r—   r¥   r/   r  r2  r%   r)   r'   Ú<module>rI     sj  ðõ
 #ã Û Û Ý %ß Q× QÑ Qã Ý /ç +Ý 2Ý 0Ý %Ý  Ý 0Ý 'ß AÑ AÝ #ß ?Ó ?ñ Ð>ÀÓEÐ ñ # >Ó2Ð Ø—’Ó!€÷Zñ8 ƒn€÷ Ý5Ý&Ý8ò	€õ&ðB ô
ó ð
ð, �~Š~Ó€à×ÒÓð3!ð "ð	3!ð
 ð3!ð ,0ð3!ð !ö3!ó ð3!õlõ&õõ0
%ð~ð -ð	~ð
 RV÷~ðB ×ÒÓðo/ð ðo/ð #(öo/ó òo/r)   