+
    "Ý³jz!  ã                   óÎ   € ^ RI HtHtHt ^ RIt^ RI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 ]! 4       t ! R
 R]P                  P*                  4      tR# )é    )ÚAnyÚDictÚOptionalN)ÚTensorÚnn)Ú	Parameter)Ú_ConvNd)Úsetup_logger)Úget_parent_lock)Ústream_sync)Ústream_tensor_dict_to_cpuc                   ój  a a€ ] tR t^t oRtV3R lV 3R lltR$V3R lR lltR%V3R lR lltR$V3R lR	 lltR%V3R
 lR llt	R t
R$V3R lR lltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR  ltV3R! lR" ltR#tVtV ;t# )&ÚNamedModulezIThread-safe wrapper that adds stable names and scratch state to a module.c          
      ó^   <€ V ^8„  d   QhRS[ P                  P                  RS[RS[RS[RR/# )é   ÚmoduleÚnameÚ	full_nameÚlayer_indexÚreturnN)Útorchr   ÚModuleÚstrÚint)ÚformatÚ__classdict__s   "€Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/looper/named_module.pyÚ__annotate__ÚNamedModule.__annotate__   s:   ø€ ÷ -ñ -™uŸx™xŸ™ð -±cð -ÁSð -ÑWZð -Ð_cñ -ó    c                ó&  <€ \         SV `  4        \        V4      V n        Wn        \        VP                  4       4      P                  V n        W n	        W0n
        W@n        \        VR4      '       d   VP                  f   W1n        / V n        \        V\         P"                  4      '       d   VP$                  pVP&                  pM˜\        V\(        4      '       d   VP*                  pVP,                  pMi\        V\.        P0                  P2                  4      '       d<   VP4                  P6                  ^ ,          pVP4                  P6                  ^,          pMRpRpV'       d,   V'       d"   V P                  P9                  RVRV/4       R# R# R# )zCWraps a submodule with naming metadata used by the looper pipeline.Úmodule_nameNÚin_featuresÚout_features)ÚsuperÚ__init__r   Ú_parent_lockr   ÚnextÚ
parametersÚdtypeÚmodule_dtyper   r   r   Úhasattrr"   ÚstateÚ
isinstancer   ÚLinearr#   r$   r	   Úin_channelsÚout_channelsÚtransformersÚpytorch_utilsÚConv1DÚweightÚshapeÚupdate)Úselfr   r   r   r   r#   r$   Ú	__class__s   &&&&&  €r   r&   ÚNamedModule.__init__   s;  ø€ ô 	‰ÑÔä+¨IÓ6ˆÔØŒÜ  ×!2Ñ!2Ó!4Ó5×;Ñ;ˆÔØŒ	Ø"ŒØ&Ôä�6˜=×)Ò)¨f×.@Ñ.@Ò.HØ!*Ôð ˆŒ
ô
 �fœbŸi™i×(Ò(Ø ×,Ñ,ˆKØ!×.Ñ.‰LÜ˜¤×(Ò(Ø ×,Ñ,ˆKØ!×.Ñ.‰Lô ˜¤× :Ñ :× AÑ A×BÒBØ Ÿ-™-×-Ñ-¨aÕ0ˆKØ!Ÿ=™=×.Ñ.¨qÕ1‰LàˆKØˆLçŸ<Ø�J‰J×ÑØ˜{Ø ðö ñ (‰;r    c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úrecurse©Úbool)r   r   s   "€r   r   r   I   s   ø€ ÷ 7ñ 7¡$ñ 7r    c                ó:   € V P                   P                  VR7      # )z4Delegates parameter iteration to the wrapped module.©r=   )r   r)   ©r8   r=   s   &&r   r)   ÚNamedModule.parametersI   s   € ð �{‰{×%Ñ%¨gÐ%Ó6Ð6r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   Úprefixr=   ©r   r?   )r   r   s   "€r   r   r   N   s   ø€ ÷ Lñ L¡sð L¹$ñ Lr    c                ó:   € V P                   P                  WR7      # )z:Delegates named parameter iteration to the wrapped module.©rF   r=   )r   Únamed_parameters©r8   rF   r=   s   &&&r   rJ   ÚNamedModule.named_parametersN   s   € ð �{‰{×+Ñ+°6Ð+ÓKÐKr    c                ó    <€ V ^8„  d   QhRS[ /# r<   r>   )r   r   s   "€r   r   r   S   s   ø€ ÷ 4ñ 4™tñ 4r    c                ó:   € V P                   P                  VR7      # )z1Delegates buffer iteration to the wrapped module.rA   )r   ÚbuffersrB   s   &&r   rO   ÚNamedModule.buffersS   s   € ð �{‰{×"Ñ"¨7Ð"Ó3Ð3r    c                ó&   <€ V ^8„  d   QhRS[ RS[/# rE   rG   )r   r   s   "€r   r   r   X   s   ø€ ÷ Iñ I¡Cð I±tñ Ir    c                ó:   € V P                   P                  WR7      # )z7Delegates named buffer iteration to the wrapped module.rI   )r   Únamed_buffersrK   s   &&&r   rS   ÚNamedModule.named_buffersX   s   € ð �{‰{×(Ñ(°Ð(ÓHÐHr    c                ó    € V P                   ;_uu_ 4        V P                  P                  ! V/ VB uuRRR4       #   + '       g   i     R# ; i)z>Registers a forward hook while holding the parent module lock.N)r'   r   Úregister_forward_hook)r8   ÚargsÚkwargss   &*,r   rV   Ú!NamedModule.register_forward_hook]   s6   € ð
 ××ÓØ—;‘;×4Ò4°dÐE¸fÑE÷ ××Óúó	   •<¼A	c                ó@   <€ V ^8„  d   QhRS[ RS[S[,          RS[RR/# )r   r   ÚtensorÚ
persistentr   N)r   r   r   r?   )r   r   s   "€r   r   r   e   s8   ø€ ÷ Iñ IÙðIÙ!)©&Õ!1ðIÙ?CðIà	ñIr    c                ó    € V P                   ;_uu_ 4        V P                  P                  WV4      uuRRR4       #   + '       g   i     R# ; i)z?Registers a buffer on the wrapped module under the parent lock.N)r'   r   Úregister_buffer)r8   r   r\   r]   s   &&&&r   r_   ÚNamedModule.register_buffere   s3   € ð
 ××ÓØ—;‘;×.Ñ.¨t¸ZÓH÷ ××ÓúrZ   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©r   )r   r   s   "€r   r   r   m   s   ø€ ÷ /ñ /¡cñ /r    c                ó.  € V P                   ;_uu_ 4        WP                  P                  9   dJ   V P                  P                  V \        V P                  V4      '       d   \	        V P                  V4       RRR4       R#   + '       g   i     R# ; i)z6Removes a buffer from the wrapped module if it exists.N)r'   r   Ú_buffersr,   Údelattr©r8   r   s   &&r   Úunregister_bufferÚNamedModule.unregister_bufferm   s`   € ð ××ÓØ—{‘{×+Ñ+Ô+Ø—K‘K×(Ñ(¨Ð.Ü˜4Ÿ;™;¨×-Ò-Ü˜DŸK™K¨Ô.÷	 ××Òúó   •A$BÂB	c                ó:   <€ V ^8„  d   QhRS[ RS[S[,          RR/# )r   r   Úparamr   N)r   r   r   )r   r   s   "€r   r   r   v   s'   ø€ ÷ ?ñ ?¡sð ?±8¹IÕ3Fð ?È4ñ ?r    c                óž   € V P                   ;_uu_ 4        V P                  P                  W4      uuRRR4       #   + '       g   i     R# ; i)zBRegisters a parameter on the wrapped module under the parent lock.N)r'   r   Úregister_parameter)r8   r   rl   s   &&&r   rn   ÚNamedModule.register_parameterv   s1   € ð ××ÓØ—;‘;×1Ñ1°$Ó>÷ ××Óús	   •;»A	c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r   r   Nrc   )r   r   s   "€r   r   r   |   s   ø€ ÷ /ñ /©ð /°ñ /r    c                ó.  € V P                   ;_uu_ 4        WP                  P                  9   dJ   V P                  P                  V \        V P                  V4      '       d   \	        V P                  V4       RRR4       R#   + '       g   i     R# ; i)z9Removes a parameter from the wrapped module if it exists.N)r'   r   Ú_parametersr,   rf   rg   s   &&r   Úunregister_parameterÚ NamedModule.unregister_parameter|   s`   € ð ××ÓØ—{‘{×.Ñ.Ô.Ø—K‘K×+Ñ+¨DÐ1Ü˜4Ÿ;™;¨×-Ò-Ü˜DŸK™K¨Ô.÷	 ××Òúrj   c                ó    <€ V ^8„  d   QhRS[ /# rb   rc   )r   r   s   "€r   r   r   �   s   ø€ ÷ )ñ )¡ñ )r    c                óÂ   € \         P                  V R4      p\         P                  V R4      pV;_uu_ 4        \        W14      uuRRR4       #   + '       g   i     R# ; i)zBFalls back to the wrapped module while preserving lock discipline.r'   r   N)ÚobjectÚ__getattribute__Úgetattr)r8   r   Úlockr   s   &&  r   Ú__getattr__ÚNamedModule.__getattr__�   sA   € ô ×&Ñ& t¨^Ó<ˆÜ×(Ñ(¨¨xÓ8ˆßŠTÜ˜6Ó(÷ �T�T‹Tús   ·AÁA	c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r   r   Úvaluer   N)r   r   )r   r   s   "€r   r   r   ˜   s"   ø€ ÷ )ñ )¡ð )©Cð )°Dñ )r    c                ó  € VR9   d   \         P                  WV4       R# \         P                  V R4      p\         P                  V R4      pV;_uu_ 4        \        WAV4       RRR4       R#   + '       g   i     R# ; i)z?Routes non-wrapper attributes to the wrapped module under lock.r   r'   N)r   r+   r   r   r   r-   r'   Útarget_devicer_   rh   rn   rs   )rw   Ú__setattr__rx   Úsetattr)r8   r   r~   rz   r   s   &&&  r   r�   ÚNamedModule.__setattr__˜   se   € ð ð 
ô 
ô ×Ñ˜t¨5Ô1Ùä×&Ñ& t¨^Ó<ˆÜ×(Ñ(¨¨xÓ8ˆßŠTÜ�F %Ô(÷ �T�TŠTús   ÁA-Á-A>	c                óz   <€ V ^8„  d   QhRS[ S[S[P                  3,          RS[ S[S[P                  3,          /# )r   Útensorsr   ©r   r   r   r   )r   r   s   "€r   r   r   ±   s;   ø€ ÷ 
ñ 
á‘c™5Ÿ<™<Ð'Õ(ð
ñ 
‰c‘5—<‘<ÐÕ	 ñ
r    c                óV   a € S P                   p\        VV 3R lS P                  VR7      # )zCStreams arbitrary state tensors to CPU and records them in `state`.c                 ó:   <€ SP                   P                  V 4      # )N)r-   r7   ©Úhost_mapr8   s   &€r   Ú<lambda>Ú9NamedModule.stream_state_payload_to_cpu.<locals>.<lambda>º   s   ø€ ¨D¯J©J×,=Ñ,=¸hÔ,Gr    ©Ústore_callbackr-   Ú
state_lock)r'   r   r-   )r8   r…   r�   s   f& r   Ústream_state_payload_to_cpuÚ'NamedModule.stream_state_payload_to_cpu±   s-   ø€ ð ×&Ñ&ˆ
Ü(ØÜGØ—*‘*Ø!ô	
ð 	
r    c                óJ   <€ V ^8„  d   QhRS[ S[S[P                  3,          /# ©r   r   r†   )r   r   s   "€r   r   r   ¿   s"   ø€ ÷ 

ñ 

©$©s±E·L±LÐ/@Õ*Añ 

r    c                ó    a € S P                   p\        S P                  P                  RR7      4      p\	        VV 3R lS P
                  VR7      # )zDStreams this module's direct parameters to CPU-backed state storage.FrA   c                 óZ   <€ SP                   P                  R / 4      P                  V 4      # )Úparameters_cpu©r-   Ú
setdefaultr7   r‰   s   &€r   r‹   Ú6NamedModule.stream_parameters_to_cpu.<locals>.<lambda>Æ   s$   ø€ ¨D¯J©J×,AÑ,AÐBRÐTVÓ,W×,^Ñ,^Ð_gÔ,hr    r�   )r'   Údictr   rJ   r   r-   ©r8   r�   Ú
tensor_maps   f  r   Ústream_parameters_to_cpuÚ$NamedModule.stream_parameters_to_cpu¿   sI   ø€ ð ×&Ñ&ˆ
Ü˜$Ÿ+™+×6Ñ6¸uÐ6ÓEÓFˆ
Ü(ØÜhØ—*‘*Ø!ô	
ð 	
r    c                óJ   <€ V ^8„  d   QhRS[ S[S[P                  3,          /# r“   r†   )r   r   s   "€r   r   r   Ë   s"   ø€ ÷ 

ñ 

¡t©C±·±Ð,=Õ'>ñ 

r    c                ó    a € S P                   p\        S P                  P                  RR7      4      p\	        VV 3R lS P
                  VR7      # )zAStreams this module's direct buffers to CPU-backed state storage.FrA   c                 óZ   <€ SP                   P                  R / 4      P                  V 4      # )Úbuffers_cpur—   r‰   s   &€r   r‹   Ú3NamedModule.stream_buffers_to_cpu.<locals>.<lambda>Ò   s#   ø€ ¨D¯J©J×,AÑ,AÀ-ÐQSÓ,T×,[Ñ,[Ð\dÔ,er    r�   )r'   rš   r   rS   r   r-   r›   s   f  r   Ústream_buffers_to_cpuÚ!NamedModule.stream_buffers_to_cpuË   sI   ø€ ð ×&Ñ&ˆ
Ü˜$Ÿ+™+×3Ñ3¸EÐ3ÓBÓCˆ
Ü(ØÜeØ—*‘*Ø!ô	
ð 	
r    c                ó`   <€ V ^8„  d   QhRS[ S[S[ S[S[P                  3,          3,          /# r“   r†   )r   r   s   "€r   r   r   ×   s,   ø€ ÷ :ñ :¡4©©T±#±u·|±|Ð2CÕ-DÐ(DÕ#Eñ :r    c                óN   € V P                  4       pV P                  4       pRVRV/# )z9Streams direct parameters and buffers to CPU in one call.r)   rO   )r�   r¤   )r8   ÚparamsrO   s   &  r   Ústream_all_to_cpuÚNamedModule.stream_all_to_cpu×   s/   € ð ×.Ñ.Ó0ˆØ×,Ñ,Ó.ˆØ˜f i°Ð9Ð9r    c                ó   <€ V ^8„  d   QhRR/# )r   r   N© )r   r   s   "€r   r   r   Þ   s   ø€ ÷ :ñ :˜Tñ :r    c                óF   € \        V P                  V P                  4       R# )z?Waits for any outstanding asynchronous stream-to-CPU transfers.N)Ústream_sync_eventsr-   r'   )r8   s   &r   r   ÚNamedModule.stream_syncÞ   s   € ô 	˜4Ÿ:™: t×'8Ñ'8Ö9r    )r'   r   r   r   r+   r   r-   )T)Ú T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   r)   rJ   rO   rS   rV   r_   rh   rn   rs   r{   r�   r�   r�   r¤   r©   r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r9   r   s   @@r   r   r      sº   ù‡ € ÙS÷-ó -÷^7ò 7÷
Lò L÷
4ò 4÷
Iò Iò
F÷Iò I÷/ð /÷?ð ?÷/ð /÷&)ð )÷)ð )÷2
ð 
÷

ð 

÷

ð 

÷:ð :÷:÷ :ð :r    r   )Útypingr   r   r   r   r2   r   r   Útorch.nnr   Útorch.nn.modules.convr	   Úutils.loggerr
   Úutils.module_locksr   Úutils.streamr   r®   r   Úlogr   r   r¬   r    r   Ú<module>rÀ      sG   ð÷ 'Ñ &ã Û ß Ý Ý )å 'Ý 0Ý <Ý 4ñ ƒn€ôJ:�%—(‘(—/‘/ö J:r    