+
    "Ý³jM  ã                  ó–   € ^ RI Ht ^ RIt^ RIt^ RIHu Ht ^ RIH	t	 ^ RI
HtHtHtHtHtHt ^ RIHt RR.tR R	 lt ! R
 R]4      tR# )é    )ÚannotationsN)ÚPerChannelMinMaxObserver)ÚOperatorConfigÚOperatorPatternTypeÚQuantizationAnnotationÚQuantizationConfigÚQuantizationSpecÚ	Quantizer)ÚQ_ANNOTATION_KEYÚget_embedding_operators_configÚEmbeddingQuantizerc               ó   € V ^8„  d   QhRR/# )é   Úreturnr   © )Úformats   "Úx/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/quantization/pt2e/quantizer/embedding_quantizer.pyÚ__annotate__r       s   € ÷ 9ñ 9¨ñ 9ó    c            	     óZ  € \        \        P                  \        P                  ^ \        P
                  ! RR7      R7      p \        RRV R4      p\        P                  P                  ..pVP                  \        P                  .4       \        WR7      p\        P                  ! V4      # )r   )Úeps)ÚdtypeÚqschemeÚch_axisÚobserver_or_fake_quant_ctrN)ÚconfigÚ	operatorsg      0?)r	   ÚtorchÚuint8Ú per_channel_affine_float_qparamsr   Ú	with_argsr   ÚnnÚ	EmbeddingÚappendÚFÚ	embeddingr   ÚcopyÚdeepcopy)Úweight_quantization_specÚquantization_configÚopsÚsupported_config_and_operatorss       r   r   r       sŠ   € Ü/Ü�k‰kÜ×6Ñ6ØÜ#;×#EÒ#EÈ&Ô#Qô	 Ðô -¨T°4Ð9QÐSWÓXÐÜ',§x¡x×'9Ñ'9Ð&:Ð%;€CØ‡J�J”—‘ˆ}ÔÜ%3Ø"ô&Ð"ô �=Š=Ð7Ó8Ð8r   c                  ó”   a € ] tR t^0tR V 3R llt]R R l4       t]R R l4       tR R ltR	 R
 lt	R R lt
]R R l4       tRtV ;t# )r   c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   ÚEmbeddingQuantizer.__annotate__1   s   € ÷ ñ ˜$ñ r   c                	ó$   <€ \         SV `  4        R # ©N)ÚsuperÚ__init__)ÚselfÚ	__class__s   &€r   r4   ÚEmbeddingQuantizer.__init__1   s   ø€ Ü‰ÑÖr   c               ó   € V ^8„  d   QhRR/# )r   r   zlist[QuantizationConfig]r   )r   s   "r   r   r0   5   s   € ÷  ñ  Ð3Kñ  r   c                	ój   € V P                  4        UUu0 uF  w  rVkK	  	  ppp\        V4      # u uppi r2   )Úget_supported_operatorsÚlist)ÚclsÚspecÚ_Ú
op_configss   &   r   Ú"get_supported_quantization_configsÚ5EmbeddingQuantizer.get_supported_quantization_configs4   s>   € ð !$× ;Ñ ;Ô =ô/
Ù =‘W�T‹DÑ =ð 	ñ /
ô �JÓÐùó/
s   ”/c               ó    € V ^8„  d   QhRRRR/# )r   r*   r   r   zlist[OperatorPatternType]r   )r   s   "r   r   r0   <   s   € ÷ ñ Ø"4ðà	"ñr   c                	óL   € V P                  4        F  w  r#W!8X  g   K  Vu # 	  . # r2   )r:   )r<   r*   r   r+   s   &&  r   Ú.get_supported_operator_for_quantization_configÚAEmbeddingQuantizer.get_supported_operator_for_quantization_config;   s-   € ð ×6Ñ6Ö8‰KˆFð Ö,Ø’
ñ 9ð ˆ	r   c               ó    € V ^8„  d   QhRRRR/# )r   Úmodelútorch.fx.GraphModuler   r   )r   s   "r   r   r0   I   s   € ÷ ñ Ð2ð Ð7Kñ r   c                ó<   € V P                  VP                  4       V# )z!just handling global spec for now)Ú_annotate_embedding_opsÚgraph©r5   rG   s   &&r   ÚannotateÚEmbeddingQuantizer.annotateI   s   € à×$Ñ$ U§[¡[Ô1Øˆr   c               ó    € V ^8„  d   QhRRRR/# )r   rK   ztorch.fx.Graphr   r/   r   )r   s   "r   r   r0   N   s   € ÷ ñ ¨^ð Àñ r   c                	ó²  € \        4       pVP                   F¼  pVP                  R 8X  g   K  VP                  \        P
                  P                  P                  P                  8X  g   KU  VP                  P                  f   \        R4      h\        VP                  ^ ,          VP                  P                  /R7      VP                  \        &   K¾  	  R# )Úcall_functionNz<Embedding config must have a valid weight quantization spec.)Úinput_qspec_map)r   ÚnodesÚopÚtargetr   r+   Úatenr&   Údefaultr   ÚweightÚ
ValueErrorr   ÚargsÚmetar   )r5   rK   Úembedding_configÚnodes   &&  r   rJ   Ú*EmbeddingQuantizer._annotate_embedding_opsN   sŸ   € Ü+IÓ+KÐØ—K”KˆDð —‘˜?Ö*Ø—K‘K¤5§9¡9§>¡>×#;Ñ#;×#CÑ#CÖCà#×*Ñ*×1Ñ1Ò9Ü$ØVóð ô /EàŸ	™	 !�Ð&6×&=Ñ&=×&DÑ&Dð%ô/�—	‘	Ô*Ó+ó  r   c               ó    € V ^8„  d   QhRRRR/# )r   rG   rH   r   r/   r   )r   s   "r   r   r0   a   s   € ÷ ñ Ð2ð °tñ r   c                	ó   € R # r2   r   rL   s   &&r   ÚvalidateÚEmbeddingQuantizer.validatea   s   € Ùr   c               ó   € V ^8„  d   QhRR/# )r   r   zlist[OperatorConfig]r   )r   s   "r   r   r0   e   s   € ÷ 2ñ 2Ð(<ñ 2r   c                	ó   € \        4       .# r2   )r   )r<   s   &r   r:   Ú*EmbeddingQuantizer.get_supported_operatorsd   s   € ä.Ó0Ð1Ð1r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r4   Úclassmethodr@   rD   rM   rJ   ra   r:   Ú__static_attributes__Ú__classcell__)r6   s   @r   r   r   0   sX   ø† ÷ð ð ô ó ð ð ôó ðõõ
õ&ð ô2ó ö2r   )Ú
__future__r   r'   r   Útorch.nn.functionalr"   Ú
functionalr%   Ú"torchao.quantization.pt2e.observerr   Ú#torchao.quantization.pt2e.quantizerr   r   r   r   r	   r
   Ú-torchao.quantization.pt2e.quantizer.quantizerr   Ú__all__r   r   r   r   r   Ú<module>rt      sI   ðõ #ã ã ß Ð å G÷÷ õ Kð %Øð€õ9ô 62˜ö 62r   