+
    "Ý³jæ  ã                  óÆ   € ^ RI Ht ^ RIt^ RIt^ RIHtHt ^ RIt^ RIH	t	 ^ RI
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Ht R	 R
 lt ! R R4      tRR.tR# )é    )ÚannotationsN)ÚOptionalÚTuple)Ú_ConvNd)ÚNamedModule)ÚFallbackÚFallbackStrategyÚ	RTNConfigÚ	SmoothMSE)Úmse_optimal_quantÚsmooth_block)Ú
HF_OPTIMUMÚ	Quantizerc               ó    € V ^8„  d   QhRRRR/# )é   Úlayerú	nn.ModuleÚreturnzTuple[int, int]© )Úformats   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/quantization/rtn.pyÚ__annotate__r      s   € ÷ Dñ D yð D°_ñ Dó    c                ó–  € \        V \        4      '       d   V P                  p \        V \        P                  4      '       d;   V P
                  P                  ^,          V P
                  P                  ^ ,          3# V P
                  P                  ^ ,          \        P                  ! V P
                  P                  R,          4      3# )é   :r   NN)	Ú
isinstancer   ÚmoduleÚtransformersÚConv1DÚweightÚshapeÚmathÚprod)r   s   &r   Úget_number_of_rows_and_colsr$      s†   € Ü�%œ×%Ò%Ø—‘ˆä�%œ×,Ñ,×-Ò-Ø�|‰|×!Ñ! !Õ$ e§l¡l×&8Ñ&8¸Õ&;Ð;Ð;à�<‰<×Ñ˜aÕ ¤$§)¢)¨E¯L©L×,>Ñ,>¸rÕ,BÓ"CÐCÐCr   c                  ó¦   € ] tR t^tRtR R lt]R R l4       tRR R llt]R	 R
 l4       t	]R R l4       t
]P                  ! 4       R 4       tRtR# )ÚRTNa  Native weight-only RTN quantizer with optional smoothing.

This path never enters GPTQ's activation/Hessian lifecycle. It quantizes the
module weights directly, then returns tensors that can be packed into GPTQ,
AWQ, or future export layouts by the existing packing stage.
c               ó    € V ^8„  d   QhRRRR/# )r   r   r   Úqcfgr
   r   )r   s   "r   r   ÚRTN.__annotate__'   s   € ÷ $.ñ $.˜yð $.°	ñ $.r   c                	ó¾  € \        V4      w  V n        V n        \        V\        4      '       d*   VP
                  V n        VP                  V n        Wn        MWn        \        V n        R V n        V P                  V P
                  4       W n
        \        W P                  R7      V n        V P                  P                  RR7       ^ V n        \        \         P"                  RVP$                  R7      V n        V P                  V n        V P                  e'   V P                  P*                  P-                  R4      pM\/        V P
                  RR 4      p\        V\0        4      '       d3   \3        VP-                  R^ 4      ;'       g    ^ 4      p\5        V^ 4      pM^ pW@n        V P6                  '       d&   V ;P                  V P6                  ,          un        R # R # )N)r(   ÚnameT)Ú
perchannel)ÚstrategyÚ	thresholdÚsmoothÚtp_pad_infoÚ_tp_pad_infoÚpad_cols)r$   ÚrowsÚcolumnsr   r   r   r+   Ú_named_moduler   Úvalidate_moduler(   r   Ú	quantizerÚ	configureÚnsamplesr   r	   r&   r/   Ú_primaryÚ_original_columnsÚstateÚgetÚgetattrÚdictÚintÚmaxÚ_tp_pad_cols)Úselfr   r(   Úpad_infor2   s   &&&  r   Ú__init__ÚRTN.__init__'   sb  € Ü"=¸fÓ"EÑˆŒ	�4”<Ü�fœk×*Ò*Ø Ÿ-™-ˆDŒKØŸ™ˆDŒIØ!'Õà ŒKÜ"ˆDŒIØ!%ˆDÔà×Ñ˜TŸ[™[Ô)ØŒ	Ü"¨·9±9Ô=ˆŒØ�‰× Ñ ¨DÐ Ô1ØˆŒÜ Ü%×)Ñ)ØØ—;‘;ô
ˆŒð "&§¡ˆÔØ×ÑÒ)Ø×)Ñ)×/Ñ/×3Ñ3°MÓB‰Hä˜tŸ{™{¨N¸DÓAˆHä�h¤×%Ò%Ü˜8Ÿ<™<¨
°AÓ6×;Ð;¸!Ó<ˆHÜ˜8 QÓ'‰HàˆHà$ÔØ××ÐØ�LŠL˜D×-Ñ-Õ-�Lñ r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   ÚNoner   )r   s   "r   r   r)   N   s   € ÷ Tñ T 	ð T¨dñ Tr   c                	ó¸   € \        V \        P                  \        P                  \        P                  \
        P                  34      '       g   Q R V  R24       hR# )z<We supports only linear and convolutional layers. actual = `Ú`N)r   ÚnnÚLinearÚConv1dÚConv2dr   r   )r   s   &r   r6   ÚRTN.validate_moduleM   sQ   € äØÜ�Y‰YœŸ	™	¤2§9¡9¬l×.AÑ.AÐB÷
ò 
ð 	Tð JÈ&ÈÐQRÐSó	Tò 
r   Nc               ó    € V ^8„  d   QhRRRR/# )r   ÚdevicezOptional[torch.device]r   útorch.Tensorr   )r   s   "r   r   r)   T   s   € ÷ ñ Ð#9ð À\ñ r   c                	ó´  € Vf+   V P                   P                  P                  P                  pV P                   P                  P                  P	                  RVR7      p\        V P                   \        4      '       d   VP                  ^4      p\        V P                   \        P                  P                  4      '       d   VP                  4       pV P                  '       dd   \        P                  ! VP                  ^ ,          V P                  3VP                   VP                  R7      p\        P"                  ! W#3^R7      pVP%                  4       # )NT)ÚcopyrQ   )ÚdtyperQ   ©Údim)r   r    ÚdatarQ   Útor   r   Úflattenr   Úpytorch_utilsr   ÚtrB   ÚtorchÚzerosr!   rU   ÚcatÚfloat)rC   rQ   ÚcloneÚpads   &&  r   Úclone_moduleÚRTN.clone_moduleT   sì   € ØŠ>Ø—[‘[×'Ñ'×,Ñ,×3Ñ3ˆFà—‘×"Ñ"×'Ñ'×*Ñ*°¸VÐ*ÓDˆÜ�d—k‘k¤7×+Ò+Ø—M‘M !Ó$ˆEÜ�d—k‘k¤<×#=Ñ#=×#DÑ#D×EÒEØ—G‘G“IˆEØ××ÐÜ—+’+Ø—‘˜Q• ×!2Ñ!2Ð3Ø—k‘kØ—|‘|ôˆCô
 —I’I˜u˜l°Ô2ˆEØ�{‰{‹}Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚtensorrR   Úlengthr@   r   r   )r   s   "r   r   r)   g   s&   € ÷ Eñ E ,ð E¸ð EÀñ Er   c                	ó  € V P                  4       ^ 8X  d   V # \        WP                  R,          4      pW P                  R,          8X  d   V # V P                  V P                  4       ^,
          ^ V4      P	                  4       # )r   éÿÿÿÿ)rW   Úminr!   ÚnarrowÚ
contiguous)rf   rg   Útrims   && r   Útruncate_last_dimÚRTN.truncate_last_dimf   sc   € à�:‰:‹<˜1ÔØˆMä�6Ÿ<™<¨Õ+Ó,ˆØ—<‘< Õ#Ô#ØˆMà�}‰}˜VŸZ™Z›\¨AÕ-¨q°$Ó7×BÑBÓDÐDr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚparamrR   r   r   )r   s   "r   r   r)   r   s   € ÷ ñ  \ð °lñ r   c                	ó¬   € V P                  4       ^8”  d   T MV P                  ^4      pVP                  ^,          ^8”  d   VP                  ^RR7      pV# )r   T)rW   Úkeepdim)rW   Ú	unsqueezer!   Úmean)rq   Ú	collapseds   & r   Ú_collapse_group_paramÚRTN._collapse_group_paramq   sG   € à"ŸY™Y›[¨1œ_‘E°%·/±/À!Ó2Dˆ	Ø�?‰?˜1Õ Ô!Ø!Ÿ™¨1°d˜Ó;ˆIØÐr   c           	     	óÀ	  € ^V P                   P                  ,          ^,
          pV P                   P                  R8w  d   V P                   P                  MV P                  pV P                   P                  p^ pRp\        V\        4      '       d   VP                  pVP                  p\        P                  ! 4       pV P                  P                  P                  pV P                  VR7      p\        P                  ! V4      p	. p
. p\!        ^ V P                  V4       EF=  p\#        WÂ,           V P                  4      pVRWÍ13,          p\        V\        4      '       d    \%        VV P                   VVVR7      w  pppM•\'        VV P(                  VR7      w  ppV P*                  P-                  VRR7       V P*                  P/                  V4      pV P*                  P0                  pV P*                  P2                  pVe   VV,          pVV,          pWùRWÍ13&   V
P5                  V P7                  V4      4       VP5                  V P7                  V4      4       EK@  	  \        P8                  ! V
^R	7      p\        P8                  ! V^R	7      pV P:                  '       d?   V P<                  pV	RRV13,          p	V P?                  VV4      pV P?                  VV4      pMV P                  p\        P@                  ! VV	P                  \        PB                  R
7      V,          p\        V P                  \D        PF                  4      '       d   V	PI                  4       p	V	PJ                  V P                  P                  PJ                  8w  d^   V	PM                  V P                  P                  PJ                  4      PO                  V P                  P                  PP                  4      p	M/V	PO                  V P                  P                  PP                  4      p	V	PO                  V P                  P                  PR                  P                  RR7      p	W�P                  P                  PR                  ,
          PU                  4       PW                  4       PY                  4       p\        P                  ! 4       V,
          pRVR 2pRpV	VVVVVVV PZ                  3# )r   gš™™™™™é?)rQ   :NNN)ÚstepsÚ	maxshrink)Ú
group_sizeT)r    NrV   )rQ   rU   F)rQ   Únon_blockingzrtn: z.7fg        ri   ).r(   Úbitsr|   r4   r/   r   r   rz   r{   Útimer   r    rQ   rc   r]   Ú
empty_likeÚrangerj   r   r   r:   r7   Úfind_paramsÚquantizeÚscaleÚzeroÚappendrw   r_   rB   r;   rn   ÚarangeÚint32r   r   r\   r!   ÚreshaperY   rU   rX   Úabsru   Úitemr9   )rC   ÚmaxqÚeffective_group_sizeÚsmooth_methodÚ	mse_stepsÚmse_maxshrinkÚ
start_timeÚtarget_deviceÚweightsÚ	quantizedÚscale_chunksÚzero_chunksÚstartÚendÚblockÚdequantr„   r…   Ú	block_modÚscale_factorÚ
valid_colsÚg_idxÚmean_abs_errÚdurationÚavg_lossÚdamps   &                         r   rƒ   ÚRTN.quantizex   sÈ  € à�D—I‘I—N‘NÕ" QÕ&ˆØ7;·y±y×7KÑ7KÈrÔ7Q˜tŸy™y×3Ò3ÐW[×WcÑWcÐØŸ	™	×(Ñ(ˆØˆ	ØˆÜ�m¤Y×/Ò/Ø%×+Ñ+ˆIØ)×3Ñ3ˆMä—Y’Y“[ˆ
ØŸ™×*Ñ*×1Ñ1ˆØ×#Ñ#¨=Ð#Ó9ˆÜ×$Ò$ WÓ-ˆ	ØˆØˆä˜1˜dŸl™lÐ,@×AˆEÜ�eÕ2°D·L±LÓAˆCØ˜A˜u˜y˜LÕ)ˆEä˜-¬×3Ò3Ü'8ØØ—I‘IØØ#Ø+ô(Ñ$�˜¡ô +7ØØ—M‘MØ3ô+Ñ'�	˜<ð
 —‘×*Ñ*¨9¸TÐ*ÔBØŸ.™.×1Ñ1°)Ó<�ØŸ™×,Ñ,�Ø—~‘~×*Ñ*�àÒ+Ø! LÕ0�EØ%¨Õ4�Gà&-�a˜˜�lÑ#Ø×Ñ × :Ñ :¸5Ó AÔBØ×Ñ˜t×9Ñ9¸$Ó?×@ñ; Bô> —	’	˜,¨AÔ.ˆÜ�yŠy˜¨!Ô,ˆà××ÐØ×/Ñ/ˆJØ! ! [ j [ .Õ1ˆIØ×*Ñ*¨5°*Ó=ˆEØ×)Ñ)¨$°
Ó;‰DàŸ™ˆJä—’˜Z°	×0@Ñ0@ÌÏÉÔTÐXlÕlˆä�d—k‘k¤<×#6Ñ#6×7Ò7Ø!Ÿ™›ˆIà�?‰?˜dŸk™k×0Ñ0×6Ñ6Ô6Ø!×)Ñ)¨$¯+©+×*<Ñ*<×*BÑ*BÓC×FÑFÀtÇ{Á{×GYÑGY×G_ÑG_Ó`‰Ià!Ÿ™ T§[¡[×%7Ñ%7×%=Ñ%=Ó>ˆIà—L‘L¨¯©×(:Ñ(:×(?Ñ(?×(FÑ(FÐUZ�LÓ[ˆ	Ø!§K¡K×$6Ñ$6×$;Ñ$;Õ;×@Ñ@ÓB×GÑGÓI×NÑNÓPˆÜ—9’9“; Õ+ˆØ˜<¨Ð,Ð-ˆØˆà˜%  u¨h¸À$ÈÏÉÐUÐUr   )r5   r;   r:   rB   r4   r   r+   r9   r(   r7   r3   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rE   Ústaticmethodr6   rc   rn   rw   r]   Úinference_moderƒ   Ú__static_attributes__r   r   r   r&   r&      ss   † ñõ$.ðL ôTó ðT÷ð$ ôEó ðEð ôó ðð ×ÒÓñKVó ôKVr   r&   r$   )Ú
__future__r   r"   r   Útypingr   r   r]   Útorch.nnrK   r   Útorch.nn.modules.convr   Úlooper.named_moduler   Úconfigr   r	   r
   r   Úfallback_smoothr   r   r7   r   r   r$   r&   Ú__all__r   r   r   Ú<module>r´      sP   ðõ #ã Û ß "ã Ý Û Ý )å -ß DÓ Dß <ß ,õD÷eVñ eVðP Ð/Ð
0‚r   