+
    "Ý³j¿R  ã                   ó  € ^ RI t ^ RIHtHtHtHtHt ^ RIt^ RIH	t	 ^ RI
H	u Ht ^ RIHtHt ^RIHtHt ^RIHtHtHt ]P.                  P0                  t. ROtRR	 lt]P6                  ]P6                  3R
 R llt ! R R]P                  P:                  4      tR]P6                  ]P6                  ]R3R R lltRR lt  ! R R4      t!R t" ! R R]P                  P:                  4      t#RR R llt$R R lt% ! R R4      t&R# )é    N)ÚAnyÚCallableÚDictÚOptionalÚType)Ú
_is_deviceÚfind_multiple)ÚMappingTypeÚdequantize_affine)Úgroup_quantize_tensor_symmetricÚ groupwise_affine_quantize_tensorÚper_token_dynamic_quantÚWeightOnlyInt4LinearÚInt4WeightOnlyQuantizerÚInt8DynActInt4WeightQuantizerc                 ó`   € W,          ^ 8H  pVe   W^,          ,          ^ 8H  pT;'       d    T# V# )r   © )ÚkÚ	groupsizeÚinner_k_tilesÚk_divisible_by_groupsizeÚ%k_divisible_by_16_times_inner_k_tiless   &&&  Új/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/quantization/linear_quant_modules.pyÚ_check_linear_int4_kr   '   s=   € Ø �}°Ñ1ÐØÒ Ø01ÀRÕ5GÕ0HÈAÑ0MÐ-Ø'×QÐQÐ,QÐQØ#Ð#ó    c                óÐ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\        R\         P                  R\         P                  /# )é   ÚxÚweight_int4packÚscales_and_zerosÚout_featuresr   Ú	precisionÚscales_precision)ÚtorchÚTensorÚintÚdtype)Úformats   "r   Ú__annotate__r)   /   sb   € ÷ ñ Ü‡|�|ðä—\‘\ðô —l‘lðô ð	ô
 ðô �{‰{ðô —k‘kñr   c                 ór  € V P                  4       pV P                  RVR,          4      p \        V P                  P                  R4      '       df   \
        P                  P                  P                  V P                  V4      VVVP                  V4      4      P                  V P                  R7      pMd\
        P                  P                  P                  V P                  V4      VVVP                  V4      4      P                  V P                  R7      pVRR V3,           p	VP                  V	4      pV# )é   Úcpu©r'   Néÿÿÿÿ)ÚsizeÚreshaper   ÚdeviceÚtyper$   ÚopsÚatenÚ_weight_int4pack_mm_for_cpuÚtor'   Ú_weight_int4pack_mm)
r   r   r    r!   r   r"   r#   Úorigin_x_sizeÚcÚ	new_shapes
   &&&&&&&   r   Úlinear_forward_int4r;   /   sý   € ð —F‘F“H€MØ	�	‰	�"�m BÕ'Ó(€AÜ�!—(‘(—-‘- ×'Ò'Ü�I‰I�N‰N×6Ñ6Ø�D‰D�‹OØØØ×ÑÐ 0Ó1ó	
÷
 ‰"�1—7‘7ˆ"Ó
ñ 	
ô �I‰I�N‰N×.Ñ.Ø�D‰D�‹OØØØ×ÑÐ 0Ó1ó	
÷
 ‰"�1—7‘7ˆ"Ó
ð 	
ð ˜c˜rÐ" l _Õ4€IØ	�	‰	�)Ó€AØ€Hr   c                   óž   a a€ ] tR t^Mt oRR.tRRR^€^]P                  ]P                  3V3R lV 3R llltV3R lR ltV3R	 lt	R
t
VtV ;t# )r   Úin_featuresr!   FNc                ój   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[P                  RS[P                  RR/# )	r   r=   r!   r   r   r"   r#   ÚreturnN©r&   r$   r'   )r(   Ú__classdict__s   "€r   r)   Ú!WeightOnlyInt4Linear.__annotate__S   sb   ø€ ÷ E
ñ E
áðE
ñ ðE
ñ ðE
ñ ðE
ñ —;‘;ðE
ñ  Ÿ+™+ðE
ð 
ñE
r   c
           
     ór  <€ \         S
V `  4        \        WV4      '       * V n        V P                  '       d   Wn        \        VR 4      pWn        W n        V'       d   Q R4       hW@n        W`n	        Wpn
        W€n        W�n        Ve   \        R4      hV^,          ^ 8X  g   Q R4       hW^,          ,          ^ 8X  g   Q R4       h\        VP                  R4      '       dB   V P!                  R\"        P$                  ! VV^,          3\"        P&                  VR7      4       MVV P!                  R\"        P$                  ! V^,          W^,          ,          ^ V^,          3\"        P(                  VR7      4       WPn        V P!                  R	\"        P$                  ! W,          V^3V P                  VR7      4       R# )
é   zrequire bias=FalseNú-Please specify 'precision' instead of 'dtype'zrequire out_features % 8 == 0z-require in_features % (innerKTiles * 16) == 0r,   Úweight)r'   r1   r    )ÚsuperÚ__init__r   ÚpaddingÚorigin_in_featuresr	   r=   r!   r1   r   r   r"   r#   Ú
ValueErrorr   r2   Úregister_bufferr$   ÚzerosÚuint8Úint32r'   )Úselfr=   r!   Úbiasr1   r'   r   r   r"   r#   Ú	__class__s   &&&&&&&&&&€r   rH   ÚWeightOnlyInt4Linear.__init__S   s“  ø€ ô 	‰ÑÔÜ/°ÈÓVÔVˆŒØ�<�<ˆ<Ø&1Ô#Ü'¨°TÓ:ˆKà&ÔØ(ÔßÐ-Ð-Ó-ˆxØŒØ"ŒØ*ÔØ"ŒØ 0ÔàÒÜÐLÓMÐMà˜aÕ 1Ô$ÐEÐ&EÓEÐ$Ø¨bÕ0Õ1°QÔ6ð 	
Ø;ó	
Ð6ô �f—k‘k 5×)Ò)Ø× Ñ ØÜ—’à$Ø# qÕ(ðô  Ÿ+™+Ø!ôõ
ð × Ñ ØÜ—’à$¨Õ)Ø#¸Õ(:Õ;ØØ%¨Õ*ð	ô  Ÿ+™+Ø!ô	ôð Œ
Ø×ÑØÜ�KŠKØÕ)¨<¸Ð;Ø×+Ñ+Øôö	
r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úinputr?   ©r$   r%   )r(   rA   s   "€r   r)   rB   š   s#   ø€ ÷ 
ñ 
™UŸ\™\ð 
©e¯l©lñ 
r   c           	     ó*  € V P                   '       d6   \        P                  ! V^ V P                  V P                  ,
          3R7      p\        VV P                  V P                  V P                  V P                  V P                  V P                  4      # )r   ©Úpad)rI   ÚFrZ   r=   rJ   r;   rF   r    r!   r   r"   r#   ©rP   rV   s   &&r   ÚforwardÚWeightOnlyInt4Linear.forwardš   sq   € Ø�<�<ˆ<Ü—E’E˜% a¨×)9Ñ)9¸D×<SÑ<SÕ)SÐ%TÔUˆEÜ"ØØ�K‰KØ×!Ñ!Ø×ÑØ�N‰NØ�N‰NØ×!Ñ!ó
ð 	
r   c                óR   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[P                  ;R&   # )r   r=   r!   rF   ©r&   r$   r%   )r(   rA   s   "€r   r)   rB   M   s.   ø‡ ‚ áÑñ ñ Ññ ñ �L‰LÑò	 r   )
r1   r'   r   r=   r   rJ   r!   rI   r"   r#   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__constants__r$   Úbfloat16rH   r]   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rR   rA   s   @@r   r   r   M   sM   ù‡ € Ø" NÐ3€Mð ØØØØØ!&§¡Ø(-¯©÷E
õ E
÷N
ð 
÷[ … r   Fc                ó>  € V ^8„  d   QhR\         P                  P                  R\        R\        \        ,          R\
        R\        \        ,          R\         P                  R\         P                  R\        \         P                  P                  ,          R	\
        /	# )
r   Úmoduler   r   Úpadding_allowedÚskip_layer_funcr"   r#   Úlinear_classÚcopy_weights)	r$   ÚnnÚModuler&   r   Úboolr   r'   r   )r(   s   "r   r)   r)   ¨   sˆ   € ÷ 2ñ 2Ü�H‰H�O‰Oð2äð2ô œC•=ð2ô ð	2ô
 œhÕ'ð2ô �{‰{ð2ô —k‘kð2ô ”u—x‘x—‘Õ'ð2ô ñ2r   c	                 ób  € V P                  4        EF  w  rš\        V
\        P                  4      '       dá   V
P                  fÓ   Ve   V! V
P
                  4      '       g·   \        V
P                  W4      '       g	   V'       d�   V! V
P                  V
P                  RV
P
                  P                  VVVVR7      pV'       dA   V
P
                  P                  \        P                  ! R4      8w  d   V
P
                  Vn        \        W	V4       EK  EK  \        V
VVVVVVVV4	       EK  	  R # )NF)rQ   r1   r   r   r"   r#   Úmeta)Únamed_childrenÚ
isinstancerr   ÚLinearrQ   rF   r   r=   r!   r1   r$   ÚsetattrÚ_replace_linear_int4)rm   r   r   rn   ro   r"   r#   rp   rq   ÚnameÚchildÚ
new_linears   &&&&&&&&&   r   r{   r{   ¨   sù   € ð ×,Ñ,×.‰ˆô �uœbŸi™i×(Ò(Ø—
‘
Ò"Ø Ò(±ÀÇÁ×0MÒ0Mô % U×%6Ñ%6¸	×QÒQß"á)Ø×%Ñ%Ø×&Ñ&ØØ Ÿ<™<×.Ñ.Ø'Ø"/Ø'Ø%5ô	�
÷   E§L¡L×$7Ñ$7¼5¿<º<ÈÓ;OÔ$OØ(-¯©�JÔ%Ü˜ j×1ò% #ô( !ØØØØØØØ ØØ÷
ó; /r   c           	      ó0   € \        V VVVV\        R 7       R# ))rp   N)r{   r   )rm   r   r   rn   ro   s   &&&&&r   Úreplace_linear_int4r€   Ý   s   € ô ØØØØØÜ)÷r   c                   óÞ   a a€ ] tR t^êt oRR^]P
                  ! R4      ]P                  3V3R lV 3R lllt]P                  ! 4       V3R lR l4       t	V3R lR	 lt
V3R
 lR ltRtVtV ;t# )r   é   TÚcudac                ót   <€ V ^8„  d   QhRS[ RS[RS[S[ ,          RS[P                  RS[P
                  RR/# )r   r   rn   r   r1   r"   r?   N)r&   rt   r   r$   r1   r'   )r(   rA   s   "€r   r)   Ú$Int4WeightOnlyQuantizer.__annotate__ë   sS   ø€ ÷ 0ñ 0áð0ñ ð0ñ  ¡•}ð	0ñ
 —‘ð0ñ —;‘;ð0ð 
ñ0r   c                ó„   <€ \         SV `  4        VR9   g   Q hVR9   g   Q hW0n        Wn        W n        W@n        WPn        R# )r   N)r   é   é   )é    é@   é€   r‚   )rG   rH   r   r   rn   r1   r"   )rP   r   rn   r   r1   r"   rR   s   &&&&&&€r   rH   Ú Int4WeightOnlyQuantizer.__init__ë   sH   ø€ ô 	‰ÑÔØ 	Ô)Ð)Ð)ØÐ.Ô.Ð.Ð.à*ÔØ'ŒØ%4ÔØ$*Œà&/Žr   c                óx   <€ V ^8„  d   QhRS[ P                  P                  RS[S[S[ P
                  3,          /# ©r   Úmodelr?   ©r$   rr   rs   r   Ústrr%   )r(   rA   s   "€r   r)   r…   ÿ   s3   ø€ ÷ 8ñ 8Ù—X‘X—_‘_ð8á	‰c‘5—<‘<ÐÕ	 ñ8r   c           	     óf  € VP                  4       pVP                  4        EF‹  w  r4\        V\        P                  P
                  4      '       g   K2  VP                  e   KB  VP                  pVP                  p\        P                  ! RV RV RV 24       W`P                  ,          ^ 8X  g   Q RV RV P                   R24       hVP                  P                  p\        W`P                  V P                  4      '       gƒ   V P                   '       dM   ^ R IHu Hp \        P&                  ! RV R24       \)        VR	4      p	VP*                  ! V^ W–,
          3R
7      pM$\        P&                  ! RV R2R,           4       EKf  \-        V^V P                  V P.                  4      w  r«\1        V
P2                  P4                  R4      '       dO   \        P6                  P8                  P;                  V
P=                  V P2                  4      V P                  4      pMM\        P6                  P8                  P?                  V
P=                  V P2                  4      V P                  4      pVP=                  V P2                  4      W# R2&   VP=                  V P2                  4      W# R2&   EKŽ  	  V# )Núlinear: ú, in=ú, out=úrequire in_features:ú % self.groupsize:ú == 0ú	warning: ú- is padded to satisfy in_features % 1024 == 0rD   rY   úP is skipped, int4 requires that in_features is 32, 64, or is divisible by 1024, ú=and that groupsize and inner_k_tiles*16 evenly divide into itr,   ú.weightz.scales_and_zeros) Ú
state_dictÚnamed_modulesrx   r$   rr   ry   rQ   r!   r=   ÚloggingÚinfor   rF   Údatar   r   rn   Útorch.nn.functionalÚ
functionalÚwarningr	   rZ   r   r"   r   r1   r2   r3   r4   Ú#_convert_weight_to_int4pack_for_cpur6   Ú_convert_weight_to_int4pack)rP   r�   Úcur_state_dictÚfqnÚmodr!   r=   rF   r[   Úpadded_in_featuresÚw_int4x8r    r   s   &&           r   Ú_create_quantized_state_dictÚ4Int4WeightOnlyQuantizer._create_quantized_state_dictþ   sD  € ð ×)Ñ)Ó+ˆØ×+Ñ+×-‰HˆCÜ˜#œuŸx™xŸ™×/Ô/°C·H±HÔ4DØ"×/Ñ/�Ø!Ÿo™o�ä—’˜x¨ u¨E°+°¸fÀ\ÀNÐSÔTà"§^¡^Õ3°qÔ8ð Ø*¨;¨-Ð7IÈ$Ï.É.ÐIYÐY^Ð_óÐ8ð Ÿ™Ÿ™�Ü+Ø§¡°×1CÑ1C÷ò ð ×+×+Ð+ß7Ð7äŸšØ'¨ uÐ,YÐZôô .;¸;ÈÓ-MÐ*Ø!"§¢Ø"¨Ð,>Õ,LÐ(Mô"™ô  ŸšØ'¨ uÐ,|Ð}Ø]õ^ôò !Ü/OØØØ—N‘NØ—N‘Nó	0Ñ,�ô ˜hŸo™o×2Ñ2°E×:Ò:äŸ	™	Ÿ™×JÑJØ$ŸK™K¨¯©Ó4°d×6HÑ6Hóñ $ô ',§i¡i§n¡n×&PÑ&PØ Ÿ™ D§K¡KÓ0°$×2DÑ2Dó'�Oð 3B×2DÑ2DÀTÇ[Á[Ó2Q�  g˜Ñ/Ø<L×<OÑ<OØ—K‘Kó=� Ð&7Ð8Ô9ñc .ðh Ðr   c                óv   <€ V ^8„  d   QhRS[ P                  P                  RS[ P                  P                  /# rŽ   ©r$   rr   rs   )r(   rA   s   "€r   r)   r…   9  s+   ø€ ÷ 
ñ 
©%¯(©(¯/©/ð 
¹e¿h¹h¿o¹oñ 
r   c           
     óŽ   € \        VV P                  V P                  V P                  R V P                  V P                  R7       V# )N)ro   r"   r#   )r{   r   r   rn   r"   ©rP   r�   s   &&r   Ú_convert_for_runtimeÚ,Int4WeightOnlyQuantizer._convert_for_runtime9  s>   € ÜØØ�N‰NØ×ÑØ× Ñ Ø Ø—n‘nØ!Ÿ^™^õ	
ð ˆr   c                ó‚   <€ V ^8„  d   QhRS[ P                  P                  RS[RS[RS[ P                  P                  /# ©r   r�   ÚargsÚkwargsr?   ©r$   rr   rs   r   )r(   rA   s   "€r   r)   r…   E  ó=   ø€ ÷ ñ Ù—X‘X—_‘_ðÙ-0ðÙ<?ðá	�‰�‰ñr   c                óp   € V P                  V4      pV P                  V4      pVP                  VR R7       V# ©F)Ústrict©r­   r³   Úload_state_dict©rP   r�   r·   r¸   rž   s   &&*, r   ÚquantizeÚ Int4WeightOnlyQuantizer.quantizeE  ó<   € ð ×6Ñ6°uÓ=ˆ
Ø×)Ñ)¨%Ó0ˆà×Ñ˜j°ÐÔ7Øˆr   )r1   r   r   rn   r"   )ra   rb   rc   rd   r$   r1   rf   rH   Úno_gradr­   r³   rÁ   rh   ri   rj   rk   s   @@r   r   r   ê   sa   ù‡ € ð Ø $Ø'(Ø$Ÿ|š|¨FÓ3Ø!&§¡÷0õ 0ð& ‡]‚]ƒ_÷8ó ð8÷t
ð 
÷÷ ð r   c                 ó¦  € \        V \        P                  \        P                  \        P                  ! \        P                  4      P                  R 7      p ^p^V^,
          ,          ) p	^V^,
          ,          ^,
          p
^V3p\        VVVV\        P                  V	V
VR7      p\        P                  P                  P                  WV4      pV# ))Úscale_dtypeÚzero_point_dtypeÚeps)Úoutput_dtype)
r   r$   Úfloat32ÚfinforÈ   r   Úint8rr   r¤   Úlinear)r   Úweight_int8rQ   ÚscalesrM   r!   r   Úoutput_precisionÚn_bitÚ	quant_minÚ	quant_maxÚ
block_sizeÚw_dqr9   s   &&&&&&&&      r   Úlinear_forward_8da4wrÖ   O  s´   € ô 	 Ø	Ü—M‘MÜŸ™Ü�KŠKœŸ™Ó&×*Ñ*ô		€Að €EØ˜ �	Õ"Ð#€IØ�e˜a•iÕ  1Õ$€IØ�Y�€JäØØØØÜ�
‰
ØØØ%ô	€Dô 	�‰×Ñ×"Ñ" 1¨DÓ1€Að
 €Hr   c                   óž   a a€ ] tR tRt oRR.t RRRR]P                  ]P                  3V3R lV 3R llltV3R	 lR
 ltV3R lt	Rt
VtV ;t# )ÚInt8DynActInt4WeightLineari„  r=   r!   TNr‚   c                ód   <€ V ^8„  d   QhRS[ RS[ RS[ RS[P                  RS[P                  RR/# )r   r=   r!   r   r"   r#   r?   Nr@   )r(   rA   s   "€r   r)   Ú'Int8DynActInt4WeightLinear.__annotate__•  sO   ø€ ÷ 8ñ 8áð8ñ ð8ñ ð8ñ —;‘;ð8ñ  Ÿ+™+ð8ð 
ñ8r   c	                óF  <€ \         S	V `  4        W,          ^ 8X  g   Q RV RV R24       hWn        W n        W`n        Wpn        Ve   \        R4      hV P                  R\        P                  ! W!3\        P                  R7      4       V P                  R\        P                  ! W!V,          3VR7      4       V P                  R	\        P                  ! W!V,          3VR7      4       V'       d*   V P                  R
\        P                  ! W'R7      4       R# RV n        R# )r   r–   z % groupsize:r˜   NrE   rF   r-   rÏ   rM   rQ   )rG   rH   r=   r!   r   r"   rK   rL   r$   rM   rÌ   rQ   )
rP   r=   r!   rQ   r1   r'   r   r"   r#   rR   s
   &&&&&&&&&€r   rH   Ú#Int8DynActInt4WeightLinear.__init__•  s  ø€ ô 	‰ÑÔð Õ&¨!Ô+ð 	
Ø" ; -¨}¸Y¸KÀuÐMó	
Ð+ð 'ÔØ(Ôà"Œð #ŒàÒÜÐLÓMÐMð 	×ÑØÜ�KŠK˜Ð3¼5¿:¹:ÔFô	
ð 	×ÑØÜ�KŠKØ¨iÕ7Ð8Ø&ôô	
ð 	×ÑØÜ�KŠKØ¨iÕ7Ð8Ø&ôô	
÷ Ø× Ñ  ¬¯ª°\Ô)SÖTàˆDŽIr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rU   rW   )r(   rA   s   "€r   r)   rÚ   Ï  s#   ø€ ÷ 
ñ 
™UŸ\™\ð 
©e¯l©lñ 
r   c           
     óè   € VP                  V P                  4      p\        VV P                  V P                  V P
                  V P                  V P                  V P                  V P                  4      # ©N)	r6   r"   rÖ   rF   rQ   rÏ   rM   r!   r   r\   s   &&r   r]   Ú"Int8DynActInt4WeightLinear.forwardÏ  sY   € Ø—‘˜Ÿ™Ó(ˆô $ØØ�K‰KØ�I‰IØ�K‰KØ�J‰JØ×ÑØ�N‰NØ�N‰Nó	
ð 		
r   c                ór   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[P                  ;R&   S[P                  ;R&   # )r   r=   r!   rF   rQ   r`   )r(   rA   s   "€r   r)   rÚ   „  sA   ø‡ ‚ ñ Ññ ñ Ññ	 ñ
 �L‰LÑñ ñ �,‰,Ñò r   )rQ   r   r=   r!   r"   )ra   rb   rc   rd   re   r$   rÊ   rH   r]   rg   rh   ri   rj   rk   s   @@r   rØ   rØ   „  sM   ù‡ € Ø" NÐ3€Mðð ØàØØ!&§¡Ø(-¯©÷8õ 8÷t
ð 
÷W … r   rØ   c                óú   € V ^8„  d   QhR\         P                  P                  R\        R\        R\         P
                  R\         P
                  R\        \         P                  P                  ,          R\        /# )r   rm   r   rn   r"   r#   rp   rq   )r$   rr   rs   r&   rt   r'   r   )r(   s   "r   r)   r)   ß  st   € ÷ #Qñ #QÜ�H‰H�O‰Oð#Qäð#Qô ð#Qô �{‰{ð	#Qô
 —k‘kð#Qô ”u—x‘x—‘Õ'ð#Qô ñ#Qr   c                 ó^   aaaaaa€ ^ RI Hp R VV3R llpR VVVVV3R llp	V! W	V4       R# )r   )Ú)_replace_with_custom_fn_if_matches_filterc                ód   € V ^8„  d   QhR\         P                  P                  R\        R\        /# )r   r}   Úcur_fqnr?   )r$   rr   rs   r‘   rt   )r(   s   "r   r)   Ú+_replace_linear_8da4w.<locals>.__annotate__ë  s)   € ÷ 
ñ 
œŸ™Ÿ™ð 
´3ð 
¼4ñ 
r   c                 óˆ   <€ \        V \        P                  4      ;'       d!    \        V P                  S4      ;'       g    S# rß   )rx   rr   ry   r   r=   )r}   ræ   r   rn   s   &&€€r   Ú	filter_fnÚ(_replace_linear_8da4w.<locals>.filter_fnë  s8   ø€ Ü˜%¤§¡Ó+÷ 
ð 
Ü  ×!2Ñ!2°IÓ>×QÐQÀ/ð	
r   c                ó€   € V ^8„  d   QhR\         P                  P                  R\         P                  P                  /# )r   r}   r?   r°   )r(   s   "r   r)   rç   ð  s*   € ÷ ñ œeŸh™hŸo™oð ´%·(±(·/±/ñ r   c           
      ó@  <€ S! V P                   V P                  V P                  R JV P                  P                  SSSR7      pS'       dR   V P                  P                  \
        P                  ! R4      8w  d#   V P                  Vn        V P                  Vn        V# )N)rQ   r1   r   r"   r#   rv   )r=   r!   rQ   rF   r1   r$   )r}   r~   rq   r   rp   r"   r#   s   & €€€€€r   Úreplacement_fnÚ-_replace_linear_8da4w.<locals>.replacement_fnð  s}   ø€ Ù!Ø×ÑØ×ÑØ—‘ 4Ð'Ø—<‘<×&Ñ&ØØØ-ô
ˆ
÷ ˜EŸL™L×/Ñ/´5·<²<ÀÓ3GÔGØ %§¡ˆJÔØ#Ÿj™jˆJŒOØÐr   N)Útorchao.quantization.quant_apirä   )
rm   r   rn   r"   r#   rp   rq   rä   ré   rí   s
   &ffffff   r   Ú_replace_linear_8da4wrð   ß  s)   ý€ õ Y÷
ñ 
÷
ô ñ$ .¨fÀiÖPr   c          
      ó¤   € V ^8„  d   QhR\         P                  P                  R\        R\        R\         P
                  R\         P
                  /# )r   rm   r   rn   r"   r#   )r$   rr   rs   r&   rt   r'   )r(   s   "r   r)   r)     sJ   € ÷ ñ Ü�H‰H�O‰Oðäðô ðô �{‰{ð	ô
 —k‘kñr   c                 ó.   € \        V VVVV\        4       R # rß   )rð   rØ   )rm   r   rn   r"   r#   s   &&&&&r   Úreplace_linear_8da4wró     s   € ô ØØØØØÜ"ör   c                   ó  a a€ ] tR tRt oRR]P
                  ]P
                  ]P                  ! R4      ]P                  3V3R lV 3R lllt	]P                  ! 4       V3R lR l4       tV3R	 lR
 ltV3R lR ltRtVtV ;t# )r   i  r‚   Fr,   c                ó~   <€ V ^8„  d   QhRS[ RS[RS[P                  RS[P                  RS[P                  RS[RR/# )	r   r   rn   r"   r#   r1   Úmapping_typer?   N)r&   rt   r$   r'   r1   r
   )r(   rA   s   "€r   r)   Ú*Int8DynActInt4WeightQuantizer.__annotate__  s]   ø€ ÷ 6ñ 6áð6ñ ð6ñ —;‘;ð	6ñ
  Ÿ+™+ð6ñ —‘ð6ñ "ð6ð 
ñ6r   c                ól   <€ \         SV `  4        Wn        W n        W0n        W@n        WPn        W`n        R # rß   )rG   rH   r   rn   r"   r#   r1   rö   )rP   r   rn   r"   r#   r1   rö   rR   s   &&&&&&&€r   rH   Ú&Int8DynActInt4WeightQuantizer.__init__  s1   ø€ ô 	‰ÑÔØ'ŒØ%4ÔØ&/ŒØ-=ÔØ$*ŒØ)5Ör   c                óx   <€ V ^8„  d   QhRS[ P                  P                  RS[S[S[ P
                  3,          /# rŽ   r�   )r(   rA   s   "€r   r)   r÷   )  s3   ø€ ÷ 0ñ 0Ù—X‘X—_‘_ð0á	‰c‘5—<‘<ÐÕ	 ñ0r   c           	     ó<  € VP                  4       pVP                  4        EFö  w  r4\        V\        P                  P
                  4      '       g   K2  VP                  pVP                  p\        P                  ! R V RV RV 24       W`P                  ,          ^ 8X  g   Q RV RV P                   R24       hVP                  P                  p\        W`P                  4      '       gƒ   V P                  '       dM   ^ RIHu Hp \        P"                  ! RV R24       \%        VR	4      p	VP&                  ! V^ W–,
          3R
7      pM$\        P"                  ! RV R2R,           4       EKK  \)        VP+                  V P,                  4      ^V P                  V P.                  V P0                  R7      w  p
ppV
P+                  V P2                  4      W# R2&   VP+                  V P2                  4      W# R2&   VP+                  V P2                  4      W# R2&   EKù  	  V# )r“   r”   r•   r–   r—   r˜   Nr™   rš   rD   rY   r›   rœ   )rö   r�   z.scalesz.zeros)rž   rŸ   rx   r$   rr   ry   r!   r=   r    r¡   r   rF   r¢   r   rn   r£   r¤   r¥   r	   rZ   r   r6   r"   r#   rö   r1   )rP   r�   r¨   r©   rª   r!   r=   rF   r[   r«   rÎ   rÏ   rM   s   &&           r   r­   Ú:Int8DynActInt4WeightQuantizer._create_quantized_state_dict(  sâ  € ð ×)Ñ)Ó+ˆØ×+Ñ+×-‰HˆCÜ˜#œuŸx™xŸ™×/Ô/Ø"×/Ñ/�Ø!Ÿo™o�ä—’˜x¨ u¨E°+°¸fÀ\ÀNÐSÔTà"§^¡^Õ3°qÔ8ð Ø*¨;¨-Ð7IÈ$Ï.É.ÐIYÐY^Ð_óÐ8ð Ÿ™Ÿ™�Ü+¨K¿¹×HÒHØ×+×+Ð+ß7Ð7äŸšØ'¨ uÐ,YÐZôô .;¸;ÈÓ-MÐ*Ø!"§¢Ø"¨Ð,>Õ,LÐ(Mô"™ô  ŸšØ'¨ uÐ,|Ð}Ø]õ^ôò !ô
 4Ø—I‘I˜dŸn™nÓ-ØØ—N‘NØ×)Ñ)Ø!%×!2Ñ!2ôñ	ØØØð 3>·.±.ÀÇÁÓ2M�  g˜Ñ/Ø28·)±)¸D¿K¹KÓ2H�  g˜Ñ/Ø16·±¸$¿+¹+Ó1F�  f˜~Ô.ñU .ðX Ðr   c                óv   <€ V ^8„  d   QhRS[ P                  P                  RS[ P                  P                  /# rŽ   r°   )r(   rA   s   "€r   r)   r÷   [  s+   ø€ ÷ ñ ©%¯(©(¯/©/ð ¹e¿h¹h¿o¹oñ r   c                ót   € \        VV P                  V P                  V P                  V P                  4       V# rß   )ró   r   rn   r"   r#   r²   s   &&r   r³   Ú2Int8DynActInt4WeightQuantizer._convert_for_runtime[  s4   € ÜØØ�N‰NØ× Ñ Ø�N‰NØ×!Ñ!ô	
ð ˆr   c                ó‚   <€ V ^8„  d   QhRS[ P                  P                  RS[RS[RS[ P                  P                  /# r¶   r¹   )r(   rA   s   "€r   r)   r÷   e  rº   r   c                óp   € V P                  V4      pV P                  V4      pVP                  VR R7       V# r¼   r¾   rÀ   s   &&*, r   rÁ   Ú&Int8DynActInt4WeightQuantizer.quantizee  rÃ   r   )r1   r   rö   rn   r"   r#   )ra   rb   rc   rd   r$   rÊ   r1   r
   Ú	SYMMETRICrH   rÄ   r­   r³   rÁ   rh   ri   rj   rk   s   @@r   r   r     sn   ù‡ € ð Ø %Ø!&§¡Ø(-¯©Ø$Ÿ|š|¨EÓ2Ø$/×$9Ñ$9÷6õ 6ð" ‡]‚]ƒ_÷0ó ð0÷dð ÷÷ ð r   )r   r   r   )r+   Nrß   )F)'r    Útypingr   r   r   r   r   r$   Útorch.nnrr   r£   r¤   r[   Útorchao.utilsr   r	   Úquant_primitivesr
   r   Úutilsr   r   r   r3   r4   Ú__all__r   rf   r;   rs   r   r{   r€   r   rÖ   rØ   rð   ró   r   r   r   r   Ú<module>r
     sÛ   ðó ß 6Õ 6ã Ý ß Ð ç 3÷÷ñ ð ‡y�y‡~�~€ò€ô$ð #Ÿ^™^Ø$)§N¡N÷ô<X
˜5Ÿ8™8Ÿ?™?ô X
ð@ +/Ø"Ÿ^™^Ø$)§N¡NØ*>Ø÷2ôj
÷bñ bòJ2ôjX
 §¡§¡ô X
÷v#QõL÷"Vó Vr   