+
    G-j¦  ã                   ó¤   € ^ RI t ^ RIt^ RIt^RIHtHtHtHtH	t	H
t
Ht ^RIHt ^RIHt ^RIHt R tR tR t ! R	 R
]4      t ! R R]4      tR# )é    N)ÚTENSOR_NAME_QUANT_SUFFIXÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚfind_by_nameÚget_mul_nodeÚ	ms_domain)ÚQuantOperatorBase)Ú	QOpMatMul)ÚQDQOperatorBasec                 óÌ   € V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d*   \        P                  P	                  V^ ,          4      ^ 8„  # R# u upi )ÚtransBF©Ú	attributeÚnameÚonnxÚhelperÚget_attribute_value)Ú	gemm_nodeÚattrÚtransB_attributes   &  Úx/Volumes/fast/ai/experiments/nudenet-smoke/.venv/lib/python3.14/site-packages/onnxruntime/quantization/operators/gemm.pyÚis_B_transposedr      sV   € Ø)2×)<Ò)<ÓVÑ)< Ç	Á	ÈXÑ@UŸ˜Ñ)<ÐÐVßÜ�{‰{×.Ñ.Ð/?ÀÕ/BÓCÀaÑGÐGáùò	 Ws
   �A!¦A!c                 óÆ   € V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d'   \        P                  P	                  V^ ,          4      # R# u upi ©Úbetag      ð?r   ©r   r   Úbeta_attributes   &  r   Úget_betar      sO   € Ø'0×':Ò':ÓRÑ':˜t¿i¹iÈ6Ñ>Q—d�dÑ':€NÐRßÜ�{‰{×.Ñ.¨~¸aÕ/@ÓAÐAáùò	 Ss
   �A¦Ac                 ó–   € V P                    Uu. uF  qP                  R 8X  g   K  VNK  	  ppV'       d   RV^ ,          n        R# u upi r   )r   r   Úfr   s   &  r   Úset_default_betar"   $   sB   € Ø'0×':Ò':ÓRÑ':˜t¿i¹iÈ6Ñ>Q—d�dÑ':€NÐRßØ!ˆ�qÕÔáùò	 Ss
   �A¦Ac                   ó>   a a€ ] tR t^,t oV 3R ltV 3R ltRtVtV ;t# )ÚQLinearGemmc                ó&   <€ \         SV `  W4       R # ©N©ÚsuperÚ__init__©ÚselfÚonnx_quantizerÚ	onnx_nodeÚ	__class__s   &&&€r   r)   ÚQLinearGemm.__init__-   ó   ø€ Ü‰Ñ˜Ö3ó    c           
     ó"	  <€ V P                   pVP                  R 8X  g   Q hV P                  P                  VP                  ^ ,          4      w  pppppV P                  P                  VP                  ^,          4      '       dá   V P                  P                  4       '       dÁ   V P                  P                  V^ .4      w  pppp	V P                  P                  VP                  ^,          V P                  P                  \        V4      '       d   ^ M^4      p
VP                  V
^ ,          4       VP                  V
^,          4       VP                  V
^,          4       MžV P                  P                  V^ .4      w  pppp	V P                  P                  V^.V P                  P                  R7      w  ppppVP                  V4       VP                  V4       VP                  V4       V	P                  V4       V'       d   Vf   \         SV `E  4       # Rp\%        VP                  4      ^8X  d¥   V P                  P                  VP                  ^,          4      '       g   \         SV `E  4       # V P                  P'                  VP                  ^,          VP                  ^ ,          VP                  ^,          \)        V P                   4      4      pVP                  ^ ,          \*        ,           pVP,                  '       d   VP,                  R,           MRp/ pVP.                   F0  pVP,                  R8w  g   K  VP1                  \3        V4      4       K2  	  \4        VR&   . p\7        ^4       F,  pVP                  VV,          VV,          VV,          .4       K.  	  VP                  WóV.4       \8        P:                  P<                  ! RVV.V3/ VB pV	P                  V4       \?        VP                  ^ ,          VVV\@        PB                  VP                  V P                  P                  R7      pVV P                  PD                  VP                  ^ ,          &   V P                  ;PF                  V	,          un#        R# )	ÚGemm)Úreduce_rangeNÚ Ú_quantr   ÚdomainÚQGemm)Ú	node_typeÚ
node_qtype)$ÚnodeÚop_typeÚ	quantizerÚ_get_quantization_paramsÚoutputÚis_input_a_initializerÚinputÚis_per_channelÚquantize_activationÚquantize_weight_per_channelÚweight_qTyper   ÚappendÚquantize_weightr4   Úextendr(   ÚquantizeÚlenÚquantize_bias_staticr   r   r   r   Úupdater   r	   Úranger   r   Ú	make_noder   r   ÚInputÚquantized_value_mapÚ	new_nodes)r+   r;   Ú
data_foundÚoutput_scale_nameÚoutput_zp_nameÚ_Úquantized_input_namesÚzero_point_namesÚscale_namesÚnodesÚquant_weight_tupleÚquantized_input_names_weightÚzero_point_names_weightÚscale_names_weightÚnodes_weightÚquantized_bias_nameÚqgemm_outputÚ
qgemm_nameÚkwargsr   Úqgemm_inputsÚiÚ
qgemm_nodeÚq_outputr.   s   &                       €r   rI   ÚQLinearGemm.quantize0   s°  ø€ Ø�y‰yˆØ�|‰|˜vÔ%Ð%Ð%ð �N‰N×3Ñ3°D·K±KÀµNÓCñ	
ØØØØØð �>‰>×0Ñ0°·±¸Aµ×?Ò?ÀDÇNÁN×DaÑDa×DcÒDcð —‘×2Ñ2°4¸!¸Ó=ñØ%Ø ØØà!%§¡×!KÑ!KØ—
‘
˜1•Ø—‘×+Ñ+Ü$ T×*Ò*‘°ó"Ðð
 "×(Ñ(Ð);¸AÕ)>Ô?Ø×#Ñ#Ð$6°qÕ$9Ô:Ø×ÑÐ1°!Õ4Õ5ð —‘×2Ñ2°4¸!¸Ó=ñØ%Ø ØØð —‘×.Ñ.¨t°a°SÀtÇ~Á~×GbÑGbÐ.ÓcñØ,Ø'Ø"Øà!×(Ñ(Ð)EÔFØ×#Ñ#Ð$;Ô<Ø×ÑÐ1Ô2Ø�L‰L˜Ô&çÐ2Ò:Ü‘7Ñ#Ó%Ð%à ÐÜˆt�z‰z‹?˜aÔØ—>‘>×8Ñ8¸¿¹ÀA½×GÒGÜ‘wÑ'Ó)Ð)ð #'§.¡.×"EÑ"EØ—
‘
˜1•˜tŸz™z¨!�}¨d¯j©j¸­m¼XÀdÇiÁiÓ=Pó#Ðð —{‘{ 1•~Ô(@Õ@ˆØ-1¯Y¯Y¨Y�T—Y‘Y Ö)¸Bˆ
àˆØŸœˆIØ�~‰~ Ö'Ø—‘Ô0°Ó;Ö<ñ (ô %ˆˆxÑð ˆÜ�q–ˆAØ×ÑÐ!6°qÕ!9¸;Àq½>ÐK[Ð\]ÕK^Ð _Ö`ñ ð 	×ÑÐ0À^ÐTÔUä—[‘[×*Ò*¨7°LÀ<À.ÐR\ÑgÐ`fÑgˆ
Ø�‰�ZÔ ô "Ø�K‰K˜�NØØØÜ×$Ñ$Ø—l‘lØ—~‘~×2Ñ2ô
ˆð >Fˆ�‰×*Ñ*¨4¯;©;°q­>Ñ:à�‰× Ò  EÕ)× r1   © ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r)   rI   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r.   Ú__classdict__s   @@r   r$   r$   ,   s   ù‡ € õ4÷\*õ \*r1   r$   c                   ó8   a a€ ] tR t^�t oV 3R ltR tRtVtV ;t# )ÚQDQGemmc                ó&   <€ \         SV `  W4       R # r&   r'   r*   s   &&&€r   r)   ÚQDQGemm.__init__�   r0   r1   c           	     óf  € V P                   pVP                  R 8X  g   Q hV P                  P                  VP                  ^ ,          4       V P
                  '       g-   V P                  P                  VP                  ^ ,          4       V P                  P                  VP                  ^,          \        V4      '       d   ^ M^R7      w  r#V'       d/   V P                  P                  VP                  ^,          V4       M,V P                  P                  VP                  ^,          4       \        VP                  4      ^8X  dé   V P                  P                  VP                  ^,          4      '       d‡   V P                  P                  VP                  VP                  ^,          VP                  ^ ,          VP                  ^,          \        V P                   4      4       \!        V P                   4       R# \"        P$                  ! RV P                   P                   R24       R# R# )r3   )Údefault_axiszBias of Gemm node 'zC' is not constant. Please exclude this node for better performance.N)r;   r<   r=   Úquantize_activation_tensorrA   Údisable_qdq_for_node_outputr?   Úis_tensor_per_channelr   Ú"quantize_weight_tensor_per_channelÚquantize_weight_tensorrJ   r@   Úquantize_bias_tensorr   r   r"   ÚloggingÚwarning)r+   r;   Úis_weight_per_channelÚweight_axiss   &   r   rI   ÚQDQGemm.quantize“   sv  € Ø�y‰yˆØ�|‰|˜vÔ%Ð%Ð%à�‰×1Ñ1°$·*±*¸Qµ-Ô@Ø×/×/Ð/Ø�N‰N×5Ñ5°d·k±kÀ!µnÔEà-1¯^©^×-QÑ-QØ�J‰J�q�M¬_¸T×-BÒ-B©Èð .Ró .
Ñ*Ð÷ !Ø�N‰N×=Ñ=¸d¿j¹jÈ½mÈ[ÕYà�N‰N×1Ñ1°$·*±*¸Qµ-Ô@äˆt�z‰z‹?˜aÔØ�~‰~×4Ñ4°T·Z±ZÀµ]×CÒCØ—‘×3Ñ3Ø—I‘I˜tŸz™z¨!�}¨d¯j©j¸­m¸T¿Z¹ZÈ½]ÌHÐUY×U^ÑU^ÓL_ôô ! §¡Ö+ä—’Ø)¨$¯)©)¯.©.Ð)9Ð9|Ð}öñ  r1   rh   ri   rq   s   @@r   rt   rt   �   s   ù‡ € õ4÷ò r1   rt   )r   ÚnumpyÚnpr   Úquant_utilsr   r   r   r   r   r   r	   Úbase_operatorr
   Úmatmulr   Úqdq_base_operatorr   r   r   r"   r$   rt   rh   r1   r   Ú<module>rŠ      sR   ðÛ ã Û ÷÷ ñ õ -Ý Ý .òòòô`*�)ô `*ôFˆoö r1   