+
    "Ý³jªœ  ã                   óª  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	H
t
HtHt ^ RIt^ RIHt ^RIHtHt ^RIHtHt ^RIHtH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&H't'H(t(H)t) 0 RQmt*RRt+RR0t,Rs-]! 4       t.]]]P^                  3,          t0]]0]
]0,          3,          t1Rt2]! 4       t3]Ph                  ! 4       t5R R lt6R R lt7R R lt8R R lt9R R lt:R R lt;R t<R  R! lt=R" t>R# R$ lt?R% R& lt@R' R( ltAR) R* ltBR+ R, ltCR- R. ltDR/ R0 ltER1 R2 ltFR3 R4 ltGR5 R6 ltHR7 R8 ltIR9 tJ]J! 4       w  tKtLR: tM]! R;4      '       d   ]M! 4        R< R= ltNR> R? ltOR@ RA ltPRB RC ltQRD RE ltRRSRF RG lltSRH RI ltTRTRK RL lltURURM RN lltV]!P®                  ]P°                  ]P°                  RRJRRRRRR3RO RP lltYR# )Vé    N)ÚOrderedDict)ÚDictÚListÚOptionalÚSequenceÚTypeÚUnion)ÚAdapter)ÚDEVICEÚnormalize_device)ÚBaseQuantLinearÚPackableQuantLinear)ÚFORMATÚMETHOD)Ú_normalize_quant_bitsÚquant_bits_width)Úenv_flag)Úsetup_logger)ÚBACKEND)Únormalize_backend)ÚIS_ROCM)ÚHAS_CUDAÚHAS_MPSÚHAS_NPUÚHAS_XPUÚdiskÚmetaFi   c                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚdeviceÚreturn)ÚSelectorDevicer   )Úformats   "ÚY/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/importer.pyÚ__annotate__r&   1   s   € ÷ 	Yñ 	Yœ>ð 	Y¬fñ 	Yó    c                 ó>  € \        V \        4      '       d   V # \        P                  ! V 4      p \        '       d"   V P
                  R 8X  d   \        P                  #  \        V P
                  4      #   \         d    p\        RT P
                   R24      ThRp?ii ; i)Úcudaz$Unsupported selector device family `Ú`N)Ú
isinstancer   Útorchr!   r   ÚtypeÚROCMÚ
ValueError)r!   Úexcs   & r%   Ú_device_familyr1   1   s   € Ü�&œ&×!Ò!ØˆÜ�\Š\˜&Ó!€Fßƒw�6—;‘; &Ô(Ü�{‰{ÐðYÜ�f—k‘kÓ"Ð"øÜô YÜÐ?ÀÇÁ¸}ÈAÐNÓOÐUXÐXûðYús   ÁA2 Á2BÁ=BÂBc                ó:   € V ^8„  d   QhR\         \        ,          /# ©r    r"   )r   Ústr)r$   s   "r%   r&   r&   =   s   € ÷ )ñ )¤8¬C¥=ñ )r'   c                 óP  € \        \        RR4      p \        V RR4      pVf   R#  V! 4       pTf   R# \        TRR4      pTf"    \        P                  ! T4      P                  p\        T4      P                  4       #   \         d     R# i ; i  \
        \        3 d     R# i ; i)zCReturn the runtime device type used by integer device-map ordinals.ÚacceleratorNÚcurrent_acceleratorr-   )	Úgetattrr,   Ú	Exceptionr!   r-   ÚRuntimeErrorr/   r4   Úlower)Úaccelerator_apir7   r6   Úaccelerator_types       r%   Ú_current_accelerator_typer>   =   s³   € äœe ]°DÓ9€OÜ! /Ð3HÈ$ÓOÐØÒ"ÙðÙ)Ó+ˆð ÒÙÜ˜{¨F°DÓ9ÐØÒð	Ü$Ÿ|š|¨KÓ8×=Ñ=Ðô
 ÐÓ ×&Ñ&Ó(Ð(øô ô Úðûô œjÐ)ô 	Úð	ús#   ¦A> Á B Á>BÂBÂB%Â$B%c                ó$   € V ^8„  d   QhR\         /# r3   ©r#   )r$   s   "r%   r&   r&   T   s   € ÷ bñ b¤.ñ br'   c                óì  € \        V \        4      '       d   V \        P                  8X  d   V # V # \        V \        P                  4      '       d   V # \        V \
        4      '       d5   \        4       pVf   \        R4      h\        P                  ! V RV  24      # \        V \        4      '       de   V P                  4       P                  4       pV\        P                  P                  8X  d   \        P                  #  \        P                  ! V4      # \        R\        V 4       24      h  \        \        3 d6   p \        T4      u Rp?#   \         d    \        RT  R24      Thi ; iRp?ii ; i)z>Convert one public device value without discarding an ordinal.Nz7Integer device-map values require an active acceleratorÚ:zInvalid device `r*   z;device must be a string, int, torch.device, or DEVICE, got )r+   r   ÚALLr,   r!   Úintr>   r/   r4   Ústripr;   r.   Úvaluer:   r-   )rF   r=   Útextr0   s   &   r%   Ú_as_selector_devicerH   T   sB  € ä�%œ× Ò Ø”F—J‘JÔØˆLØˆÜ�%œŸ™×&Ò&ØˆÜ�%œ×Òô 5Ó6ÐØÒ#ÜÐVÓWÐWÜ�|Š|Ð/Ð0°°%°Ð9Ó:Ð:Ü�%œ×ÒØ�{‰{‹}×"Ñ"Ó$ˆØ”6—;‘;×$Ñ$Ô$ô —;‘;Ðð	GÜ—<’< Ó%Ð%ô ÐRÔSWÐX]ÓS^ÐR_Ð`Ó
aÐaøô œjÐ)ô 	GðGÜ˜d“|Õ#øÜô GÜ Ð#3°E°7¸!Ð!<Ó=À3ÐFðGþð		Gús*   Ä D- Ä-E3Ä?
EÅ	E3ÅE+Å+E.Å.E3c                óv   € V ^8„  d   QhR\         \        ,          R\         \        \        R3,          ,          /# ©r    r!   r"   .)r   ÚSelectorDevicesÚtupler#   )r$   s   "r%   r&   r&   u   s/   € ÷ ñ œh¤Õ7ð ¼HÄUÌ>Ð[^ÐK^ÕE_Õ<`ñ r'   c                 ó²  € V f   R # \        V \        \        \        P                  \
        34      '       d   \        V 4      3pMS\        V \        \        34      '       d   \        R4      h\        ;QJ d    . R V  4       F  NK  	  5M! R V  4       4      pV'       g   \        R4      h. pV F  pW29  g   K  VP                  V4       K  	  \        V4      # )Nz*device sequence must contain device valuesc              3   ó8   "  € T F  p\        V4      x € K  	  R # 5i©N)rH   ©Ú.0Úitems   & r%   Ú	<genexpr>Ú$_selector_devices.<locals>.<genexpr>}   s   é € ÐD¹V°TÔ*¨4×0Ð0»Vùó   ‚z!device sequence must not be empty)r+   r4   rD   r,   r!   r   rH   ÚbytesÚ	bytearrayr/   rL   Úappend)r!   ÚvaluesÚresultrF   s   &   r%   Ú_selector_devicesr[   u   s«   € Ø‚~ÙÜ�&œ3¤¤U§\¡\´6Ð:×;Ò;Ü% fÓ-Ð/‰ä�fœu¤iÐ0×1Ò1ÜÐIÓJÐJß”ÑD¹VÓD—‘ÑD¹VÓDÓDˆßÜÐ<Ó=Ð=ð €FÛˆØÖØ�M‰M˜%Ö ñ ô �‹=Ðr'   c                ó$   € V ^8„  d   QhR\         /# ©r    r!   r@   )r$   s   "r%   r&   r&   Š   s   € ÷ ñ œ~ñ r'   c                ó  € \        V \        4      '       d9   V \        P                  \        P                  39  d   R# V P	                  4       pM\
        P                  ! V 4      pVP                  R8X  d*    \        \
        P                  P                  V4      4      # \        \        \
        VP                  R4      RR4      pVe    \        V! V4      4      # R#   \         d     R# i ; i  \         d     R# i ; i)z;Return one device's capability, if its runtime exposes one.Nr)   Úget_device_capability)r+   r   ÚCUDAr.   Úto_torch_devicer,   r!   r-   rL   r)   r_   r9   r8   )r!   ÚtargetÚgetters   &  r%   Ú_device_capabilityrd   Š   sÓ   € ä�&œ&×!Ò!Øœ&Ÿ+™+¤v§{¡{Ð3Ô3ÙØ×'Ñ'Ó)‰ä—’˜fÓ%ˆØ‡{�{�fÔð	ÜœŸ™×9Ñ9¸&ÓAÓBÐBô ”WœU F§K¡K°Ó6Ð8OÐQUÓV€FØÒð	Ü™ ›Ó(Ð(ñ øô ô 	Úð	ûô ô 	Úð	ús$   Á7'C Ã
C/ ÃC,Ã+C,Ã/C>Ã=C>c                ó$   € V ^8„  d   QhR\         /# r]   r@   )r$   s   "r%   r&   r&       s   € ÷ ñ ¬ñ r'   c                 óÊ  € \        V \        4      '       db   V \        P                  8w  d   V P                  4       MR pRV P                  Vf   R MVP
                  Vf   R MVP                  \        V 4      3# \        P                  ! V 4      p \        V4      P                  pRVVP
                  VP                  \        V4      3#   \         d    TP
                  p L=i ; i)NÚfamilyr,   )r+   r   rC   ra   rF   r-   Úindexrd   r,   r!   r1   r/   )r!   rb   rg   s   &  r%   Ú_selector_device_descriptorri       sÉ   € Ü�&œ&×!Ò!Ø-3´v·z±zÔ-A�×'Ñ'Ô)ÀtˆàØ�L‰LØ’N‰D¨¯©Ø’N‰D¨¯©Ü˜vÓ&ð
ð 	
ô �\Š\˜&Ó!€FðÜ Ó'×-Ñ-ˆð 	ØØ�‰Ø�‰Ü˜6Ó"ðð øô	 ô ð —‘Šðús   ÂC ÃC"Ã!C"c           
      ó  € \        V \        \        \        \        \        R 4      \        P                  34      '       d   V # \        V \        P                  \        34      '       d   \        V 4      # \        V \        4      '       d*   \        \        R V P                  4        4       4      4      # \        V \        \        \         \"        34      '       dK   R V  4       p\        V \         \"        34      '       d   \        \        V\$        R7      4      # \        V4      # \        V \&        4      '       d   \        V 4      \)        V 4      3#  \+        V 4       V #   \,         d    \        T 4      \)        T 4      3u # i ; i)Nc              3   óR   "  € T F  w  r\        V4      \        V4      3x € K  	  R # 5irO   ©Ú_freeze_validation_value)rQ   ÚkÚvs   &  r%   rS   Ú+_freeze_validation_value.<locals>.<genexpr>À   s(   é € ÐqÑcpÑ[_Ð[\Ô5°aÓ8Ô:RÐSTÓ:UÕVÓcpùs   ‚%'c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irO   rl   rP   s   & r%   rS   rp   Â   s   é € ÐB¹E°DÔ)¨$×/Ð/»EùrU   ©Úkey)r+   r4   rD   ÚfloatÚboolr-   r,   Údtyper!   r   ri   ÚdictrL   ÚsortedÚitemsÚlistÚsetÚ	frozensetÚreprr
   ÚidÚhashÚ	TypeError)rF   ry   s   & r%   rm   rm   º   s  € Ü�%œ#œs¤E¬4´°d³¼U¿[¹[ÐI×JÒJØˆÜ�%œ%Ÿ,™,¬Ð/×0Ò0Ü*¨5Ó1Ð1Ü�%œ×ÒÜ”VÑqÐch×cnÑcnÔcpÓqÓqÓrÐrÜ�%œ$¤¤s¬IÐ6×7Ò7ÙB¹EÓBˆÜ1;¸EÄCÌÐCS×1TÒ1TŒu”V˜E¤tÔ,Ó-ÐfÔZ_Ð`eÓZfÐfÜ�%œ×!Ò!ô �U“œR ›YÐ'Ð'ð(ÜˆUŒð €Løô ô (Ü�U“œR ›YÐ'Ò'ð(ús   ÅE Å!F Å?F c                ó$   € V ^8„  d   QhR\         /# )r    Úname©r4   )r$   s   "r%   r&   r&   Ï   s   € ÷ ñ ¬3ñ r'   c                 ó„   € V P                    F/  pVP                  P                  V4      pVf   K$  \        V4      u # 	  R # rO   )Ú__mro__Ú__dict__Úgetr~   )Úclsr‚   ÚparentÚ
descriptors   &&  r%   Ú_validation_method_identityr‹   Ï   s9   € Ø—+”+ˆØ—_‘_×(Ñ(¨Ó.ˆ
ØÔ!Ü�j“>Ò!ñ ñ r'   c                 óX   € V f   R #  V ! V4      #   \          d    \        T4      u # i ; irO   )r9   r/   )Ú
error_typeÚmessages   &&r%   Ú_new_validation_errorr�   ×   s5   € ØÒÙð#Ù˜'Ó"Ð"øÜô #Ü˜'Ó"Ò"ð#ús   ˆ �)¨)c                ó:   € V ^8„  d   QhR\         \        ,          /# )r    rˆ   )r   r   )r$   s   "r%   r&   r&   à   s   € ÷ 3Fñ 3Fœt¤OÕ4ñ 3Fr'   c           
     ó$  € VP                  R4      p\        V\        \        34      '       d#   \	        V4      p\        V4      VR&   VR,          pVe}   \        V\        \        \        P                  \        34      '       gM   \        V4      pVf   Q hRpV F1  p\	        V4      pWVR&   \        V 3/ VB pV^ ,          '       d   K/  Vu # 	  V# V \        V R4      \        V R4      \        \        R VP                  4        4       4      4      3p\        ;_uu_ 4        \         P                  V4      pVe2   \         P#                  V4       Vw  ršpV	\%        W«4      3uuRRR4       #  RRR4        V P&                  ! R	/ VB pVw  r�\        V\*        4      '       d   \-        V4      MVe   \.        MRp
Ve   \        V4      MRp\1        V	4      W«3p\        ;_uu_ 4        V\         V&   \         P#                  V4       \3        \         4      \4        8”  d   \         P7                  RR7       K0   RRR4       \1        V	4      \%        W«4      3#   + '       g   i     Lî; i  \(         d   pRTrÙ Rp?LíRp?ii ; i  + '       g   i     LT; i)
zèValidate one kernel contract with a bounded, device-aware cache.

The cache stores only immutable status/error metadata.  In particular, an
exception object (which carries traceback and mutable state) is recreated
for every caller.
r!   NÚvalidateÚcached_validate_oncec              3   ó@   "  € T F  w  rV\        V4      3x € K  	  R # 5irO   rl   )rQ   r‚   rF   s   &  r%   rS   Ú(validate_quant_linear.<locals>.<genexpr>ü   s   é € Ð_ÑP^ÁÀ�dÔ4°UÓ;Õ<ÓP^ùs   ‚F)Úlast©TN© )r‡   r+   r4   rD   rw   rH   r,   r!   r   r[   Úvalidate_quant_linearr‹   rL   rx   ry   Ú_VALIDATION_CACHE_LOCKÚ_VALIDATION_CACHEÚmove_to_endr�   r’   r9   ÚBaseExceptionr-   r/   ru   ÚlenÚ_VALIDATION_CACHE_MAXSIZEÚpopitem)rˆ   ÚkwargsÚrequested_deviceÚtargetsÚlast_resultrb   Útarget_kwargsrs   ÚcachedÚokr�   Úerror_messagerZ   Úerrorr0   s   &,             r%   r™   r™   à   sD  € ð —z‘z (Ó+ÐÜÐ"¤S¬# J×/Ò/Ü�f“ˆÜ.Ð/?Ó@ˆˆxÑØ! (Õ+ÐØÒ#¬JÐ7GÌ#ÌsÔTY×T`ÑT`ÔbhÐIi×,jÒ,jÜ#Ð$4Ó5ˆØÒ"Ð"Ð"Ø"ˆÛˆFÜ  ›LˆMØ&,˜(Ñ#Ü/°ÑE°}ÑEˆKØ˜q—>–>Ø"Ò"ñ ð Ðð 	Ü# C¨Ó4Ü# CÐ)?Ó@ÜŒfÑ_ÐPV×P\ÑP\ÔP^Ó_Ó_Ó`ð	€C÷ 
 Ö	Ü"×&Ñ& sÓ+ˆØÒÜ×)Ñ)¨#Ô.Ø,2Ñ)ˆB˜MØÔ,¨ZÓGÐG÷ 
 Ò	à÷ 
 ðØ—’Ñ' Ñ'ˆØ‰	ˆô !+¨5´-× @Ò @”�e”ÐUZÒUfÅzÐlp€JØ"'Ò"3”C˜”J¸€MÜ�2‹h˜
Ð2€Fß	Ö	Ø!'Ô˜#ÑÜ×%Ñ% cÔ*ÜÔ#Ó$Ô'@Ô@Ü×%Ñ%¨5Ð%Ö1ð A÷ 
 ô
 �‹8Ô*¨:ÓEÐEÐE÷+ 
 ×	ûô ô Ø˜3�Eûðú÷ 
 ×	ús2   ÄA IÅ4I$ Ç#AI?ÉI!	É$I<É/I7É7I<É?J	c                ó   € V ^8„  d   QhRR/# ©r    r"   Nr˜   )r$   s   "r%   r&   r&     s   € ÷ "ñ " ñ "r'   c                  ó„   € \         ;_uu_ 4        \        P                  4        R R R 4       R #   + '       g   i     R # ; irO   )rš   r›   Úclearr˜   r'   r%   Úclear_validation_cacher®     s#   € ß	Ö	Ü×ÑÔ!÷ 
 ×	×	Ò	ús   �.®?	c                ó\   € V ^8„  d   QhR\         \        ,          R\         \        ,          /# r   )r   rK   r   )r$   s   "r%   r&   r&     s$   € ÷ &ñ &¤8¬OÕ#<ð &ÄÌ&ÕAQñ &r'   c                óf   € \        V 4      pV'       g   R# \        V4       \        V^ ,          4      # )z>Return the support family for placement-only loader decisions.N)r[   Ú"_validate_selector_device_familiesr1   )r!   r£   s   & r%   Úselector_device_familyr²     s)   € ä Ó'€GßÙÜ& wÔ/Ü˜' !�*Ó%Ð%r'   c                ó`   € V ^8„  d   QhR\         R\        \        \        R3,          ,          /# rJ   )rK   r#   rL   )r$   s   "r%   r&   r&   $  s+   € ÷  8ñ  8¬/ð  8¼nÌuÔUcÐehÐUhÕOiÕ>iñ  8r'   c                óŽ  a€ \        V 4      pVf   Q h\        V4      ^8w  d   \        V4      ^8X  d
   V^ ,          # T# V^ ,          p\        V\        4      '       d   TpMM\        V\        P
                  4      '       d,   VP                  f   VP                  R9   d   \        V4      pMV# V\        P                  \        P                  \        P                  \        P                  39  d   V# V\        P                  8X  d   RMVP                  o\        \        SR4      p\        VRR4      pVf   V#  V! 4       pT^8  d   T# \        ;QJ d     . T3R l\!        T4       4       F  NK  	  5M! T3R l\!        T4       4       4      p\#        T4       \        T4      ^8X  d
   T^ ,          # T#   \         d    Tu # i ; i)zGExpand one abstract accelerator family to all visible physical devices.Nr)   Údevice_countc              3   óZ   <"  € T F   p\         P                  ! S R V 24      x € K"  	  R# 5i)rB   N)r,   r!   )rQ   rh   Úruntime_types   & €r%   rS   Ú0expand_selector_device_family.<locals>.<genexpr>B  s(   øé € ÐVÉÀ”E—L’L L >°°5°'Ð!:×;Ð;Ëùs   ƒ(+>   ÚnpuÚxpur)   )r[   rž   r+   r   r,   r!   rh   r-   r1   r`   r.   ÚXPUÚNPUr8   r9   rL   Úranger±   )	r!   r£   rb   rg   ÚruntimeÚcount_getterÚcountÚdevicesr·   s	   &       @r%   Úexpand_selector_device_familyrÂ   $  sj  ø€ ä Ó'€GØÒÐÐÜ
ˆ7ƒ|�qÔÜ  ›\¨QÔ.ˆw�q�zÐ;°GÐ;à�Q�Z€FÜ�&œ&×!Ò!Ø‰Ü	�FœEŸL™L×	)Ò	)¨f¯l©lÒ.BÀvÇ{Á{ÐVlÔGlÜ Ó'‰àˆà”f—k‘k¤6§;¡;´·
±
¼F¿J¹JÐGÔGØˆà#¤v§{¡{Ô2‘6¸¿¹€LÜ”e˜\¨4Ó0€GÜ˜7 N°DÓ9€LØÒØˆðÙ“ˆð ˆq„yØˆçŒeÔVÌÈuÌÓV�e‰eÔVÌÈuÌÓVÓV€GÜ& wÔ/Ü˜W›¨Ô*ˆ7�1�:Ð7°Ð7øô ô ØŠðús   Ä:F4 Æ4GÇGc                óF   € V ^8„  d   QhR\         \        ,          R\        /# ©r    rˆ   r"   )r   r   ru   )r$   s   "r%   r&   r&   G  s   € ÷ ñ œD¤Õ1ð ´dñ r'   c                 óæ   € \        V \        4      ;'       g[    \        V R 4      ;'       d    \        \	        V R 4      4      ;'       g*    \        V R4      ;'       d    \        \	        V R4      4      # )ÚpackÚ
pack_block)Ú
issubclassr   ÚhasattrÚcallabler8   )rˆ   s   &r%   Ú_supports_pack_apirË   G  sf   € ä�3Ô+Ó,÷ 	Qð 	QÜ�C˜Ó ×CÐC¤X¬g°c¸6Ó.BÓ%C÷	Qð 	Qä�C˜Ó&×OÐO¬8´G¸CÀÓ4NÓ+Oðr'   c                ót   € V ^8„  d   QhR\         R\         R\        R\        R\        P                  R\        /# )r    ÚbitsÚ
group_sizeÚdesc_actÚsymÚ
pack_dtypeÚformat_value)rD   ru   r,   rv   r   )r$   s   "r%   r&   r&   O  sJ   € ÷ >ñ >ä
ð>ô ð>ô ð	>ô
 
ð>ô —‘ð>ô ñ>r'   c              #  ó¨  "  € RVRVRVRVRV/pV '       g   Vx € R# WW4V30pVx € V P                  4        EF  w  rš\        V
\        4      '       g   K  \        V	\        4      '       d   V	P	                  R4      '       d   KM  V
f   KS  V
P                  RV4      pVe   \        \        W¶R7      4      pMTpRVRV
P                  RV4      RV
P                  RV4      RV
P                  RV4      RV
P                  RV4      /pVR,          VR,          VR,          VR,          VR,          3pWØ9   d   Kÿ  VP                  V4       Vx € EK  	  R# 5i)	ap  Yield distinct effective quantization configs from base + optional dynamic overrides.

When `dynamic` is provided, auto-selection tests each kernel against the union of
effective (bits, group_size, desc_act, sym, pack_dtype) contracts. This lets a
mixed-bitwidth model use a kernel that only supports 4-bit weights for its 4-bit
layers even when the base `bits` is 3.
rÍ   rÎ   rÏ   rÐ   rÑ   NÚ-©rÒ   )	ry   r+   rw   r4   Ú
startswithr‡   r   r   Úadd)ÚdynamicrÍ   rÎ   rÏ   rÐ   rÑ   rÒ   Úbase_contractÚseenÚpatternÚ	overridesÚcontract_bitsÚcontractrs   s   &&&&&&&       r%   Ú_iter_dynamic_contractsrß   O  sY  é € ð$ 	�Ø�jØ�HØˆsØ�jð€M÷ ØÒÙà˜x¨jÐ9Ð:€DØ
Òà%Ÿm™mŸoÑˆÜ˜)¤T×*Ò*ÙÜ�gœs×#Ò#¨×(:Ñ(:¸3×(?Ò(?ÙØÒÙà!Ÿ™ f¨dÓ3ˆØÒ$Ü,Ô-BÀ=Ô-lÓm‰Mà ˆMð �MØ˜)Ÿ-™-¨°jÓAØ˜	Ÿ™ j°(Ó;Ø�9—=‘= ¨Ó,Ø˜)Ÿ-™-¨°jÓAð
ˆð �VÕØ�\Õ"Ø�ZÕ Ø�U�OØ�\Õ"ð
ˆð Œ;ÙØ�‰�ŒØ�ó? .ùs   ‚A?EÂCEc                óP   € V ^8„  d   QhR\         \        \        ,          ,          /# r3   )r   r   r   )r$   s   "r%   r&   r&   �  s   € ÷ ñ ¤4¬¬_Õ(=Õ#>ñ r'   c                  óL   a aa€ . o\        4       oV VV3R  lo S ! \        4       S# )c                 óì   <€ V P                  4        F^  pVS9   d   K  SP                  V4       S! V4       R VP                  9   g   K8  \        VRR4      '       g   KM  SP	                  V4       K`  	  R# )ÚSUPPORTS_FORMATSÚSUPPORTS_BACKEND_SELECTIONTN)Ú__subclasses__r×   r†   r8   rX   )rˆ   ÚsubclsÚ_walkÚkernelsrÚ   s   & €€€r%   rç   Ú(iter_quant_linear_kernels.<locals>._walk”  s[   ø€ Ø×(Ñ(Ö*ˆFØ˜Œ~ÙØ�H‰H�VÔÙ�&ŒMà" f§o¡oÖ5Ü˜FÐ$@À$×GÔGà—‘˜vÖ&ó +r'   )r{   r   )rç   rè   rÚ   s   @@@r%   Úiter_quant_linear_kernelsrê   �  s#   ú€ Ø€GÜ‹5€D÷
'ñ 
Œ/ÔØ€Nr'   c                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# rÄ   )r   r   r   r   )r$   s   "r%   r&   r&   ¤  s#   € ÷ ñ œT¤/Õ2ð ´t¼Fµ|ñ r'   c                 óÆ   € V P                    Uu. uFF  p\        V\        4      '       d   \        V4      M!\        \        V4      P	                  4       4      NKH  	  up# u upi rO   )ÚSUPPORTS_METHODSr+   r   r4   r;   )rˆ   Úmethods   & r%   Úinfer_quant_methodsrï   ¤  sV   € ð ×*Ò*óá*ˆFô % V¬V×4Ò4ŒˆvŒ¼&ÄÀVÃ×ARÑARÓATÓ:UÒUÙ*ñð ùò s   �AAc                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# rÄ   )r   r   r   r   )r$   s   "r%   r&   r&   «  s#   € ÷ ñ œT¤/Õ2ð ´t¼Gµ}ñ r'   c                 óä   € . pV P                    F]  p\        V\        4      '       d   VP                  V4       K,  VP                  \        \	        V4      P                  4       4      4       K_  	  V# rO   )ÚSUPPORTS_BACKENDSr+   r   rX   r4   r;   )rˆ   ÚbackendsÚbackends   &  r%   Úget_kernel_backendsrõ   «  sU   € Ø€HØ×(Ô(ˆÜ�gœw×'Ò'Ø�O‰O˜GÖ$à�O‰OœG¤C¨£L×$6Ñ$6Ó$8Ó9Ö:ñ	 )ð
 €Or'   c          	      ó^   € V ^8„  d   QhR\         R\        R\        R\        \        ,          /# )r    rô   Úquant_methodÚfmtr"   )r   r   r   r   r   )r$   s   "r%   r&   r&   µ  s/   € ÷ ñ ¤Gð ¼6ð Ìð ÔSWÔXgÕShñ r'   c                 ó”  € \        WR 7      p . p\        4        FJ  pV \        V4      9  d   K  WP                  9  d   K'  W$P                  9  d   K9  VP                  V4       KL  	  V'       g   \        RV  RV RV R24      h\        V4      ^8”  d.   \        RV  RV RV RRP                  R V 4       4       24      hV^ ,          # )	©r÷   zUnsupported backend: `z` for `ú` with format `r*   z"Multiple kernels matched backend `ú`: ú, c              3   ó8   "  € T F  qP                   x € K  	  R # 5irO   )Ú__name__)rQ   rˆ   s   & r%   rS   Ú)get_kernel_for_backend.<locals>.<genexpr>Æ  s   é € Ð9±¨#Ÿž³ùrU   )	r   rê   rõ   rí   rã   rX   r/   rž   Újoin)rô   r÷   rø   Úmatchesrˆ   s   &&&  r%   Úget_kernel_for_backendr  µ  sÙ   € Ü ÔC€GØ€GÜ(Ö*ˆØÔ-¨cÓ2Ô2ÙØ×3Ñ3Ô3ÙØ×*Ñ*Ô*ÙØ�‰�sÖñ +÷ ÜÐ1°'°¸'À,ÀÈÐ_bÐ^cÐcdÐeÓfÐfÜ
ˆ7ƒ|�aÔÜØ0°°	¸ÀÀÈoÐ^aÐ]bÐbeØ�y‰yÑ9±Ó9Ó9Ð:ð<ó
ð 	
ð �1�:Ðr'   c                ó   € V ^8„  d   QhRR/# r«   r˜   )r$   s   "r%   r&   r&   Ë  s   € ÷ 
Iñ 
I Tñ 
Ir'   c                  ój  € ^RI Hp  \        P                  ! V P                  4       FN  pVP
                  pVP                  R4      '       d   K(   \        P                  ! V P                   RV 24       KP  	  R#   \        \        3 d'   p\        P                  RT RT 24        Rp?K†  Rp?ii ; i)r    )ÚqlinearÚ_Ú.z Skipping qlinear module import `rü   N)Ú
nn_modulesr  ÚpkgutilÚiter_modulesÚ__path__r‚   rÖ   Ú	importlibÚimport_modulerÿ   ÚImportErrorÚOSErrorÚlogÚdebug)Úqlinear_pkgÚmodule_infor‚   r0   s       r%   Ú_import_all_qlinear_kernelsr  Ë  sš   € Ý3ä×+Ò+¨K×,@Ñ,@ÖAˆØ×ÑˆØ�?‰?˜3×ÒÙð	IÜ×#Ò# {×';Ñ';Ð&<¸A¸d¸VÐ$DÖEó Bøô œWÐ%ô 	IÜ�I‰IÐ8¸¸¸cÀ#ÀÐG×HÒHûð	Iús   Á%A;Á;B2ÂB-Â-B2c            
      ó  € \        4        / p / p\        4        EFT  pVP                  p\        V\        4      '       g   \        VP                   R 24      h\        V4       EF  p\        V4       Fó  pVP                  4        FÜ  w  rg\        V\        4      '       g#   \        \        V4      P                  4       4      p\        V\        4      '       g   \        VP                   RV R24      hVP                  V/ 4      P                  V. 4      P                  Wt34       V^ 8”  g   K©  V P                  V/ 4      P                  V. 4      P                  WtV34       KÞ  	  Kõ  	  EK	  	  EKW  	  / p/ p	VP                  4        F‚  w  rZ/ W…&   V
P                  4        Fe  w  rkVP!                  R RR7       \#        4       p. pV F/  w  räWL9   d   K  VP%                  V4       VP                  V4       K1  	  WØV,          V&   Kg  	  K„  	  V P                  4        Fc  w  rZ/ W•&   V
P                  4        FF  w  rkVP!                  R RR7       \'        4       pV F  w  räpWO9   d   K  W/V&   K  	  WùV,          V&   KH  	  Ke  	  W˜3# )z7.SUPPORTS_FORMATS must be a dict of FORMAT -> priority.z.SUPPORTS_FORMATS[z] priority must be an int.c                 ó:   € V ^ ,          V ^,          P                   3# ©r   ©rF   ©rR   s   &r%   Ú<lambda>Ú+build_kernel_support_maps.<locals>.<lambda>ö  ó   € ¨4°­7°D¸µG·M±MÑ*Br'   T)rs   Úreversec                 ó:   € V ^ ,          V ^,          P                   3# r  r  r  s   &r%   r  r    r  r'   )r  rê   rã   r+   rw   r/   rÿ   rõ   rï   ry   r   r4   r;   rD   Ú
setdefaultrX   Úsortr{   r×   r   )Úauto_entriesÚsupport_entriesrˆ   Úsupports_formatsrô   rî   rø   ÚpriorityÚsupports_backend_mapÚauto_select_backend_order_mapÚfmt_entriesÚentriesÚseen_backendsÚordered_backendsr  Úordereds                   r%   Úbuild_kernel_support_mapsr-  Ø  s[  € ÜÔ!à€LØ€Oä(×*ˆØ×/Ñ/ÐÜÐ*¬D×1Ò1Ü §¡˜~Ð-dÐeÓfÐfä*¨3×/ˆGÜ-¨cÖ2�Ø%5×%;Ñ%;Ö%=‘M�CÜ% c¬6×2Ò2Ü$¤S¨£X§^¡^Ó%5Ó6˜Ü% h´×4Ò4Ü(¨C¯L©L¨>Ð9KÈCÈ5ÐPjÐ)kÓlÐlà#×.Ñ.¨v°rÓ:×EÑEÀcÈ2ÓN×UÑUÐW_ÐViÔjà !–|Ø$×/Ñ/°¸Ó;×FÑFÀsÈBÓO×VÑVÐX`ÐknÐWoÖpó &>ô 3ô 0ñ +ð$ ÐØ$&Ð!à.×4Ñ4Ö6ÑˆØ')ÐÑ$Ø'×-Ñ-Ö/‰LˆCØ�L‰LÑBÈDˆLÔQÜ›EˆMØ!ÐÛ%‘
�ØÔ+ÙØ×!Ñ! 'Ô*Ø ×'Ñ'¨Ö0ñ	 &ð
 1A Õ(¨Ó-ó 0ñ  7ð  ,×1Ñ1Ö3ÑˆØ02Ð%Ñ-Ø'×-Ñ-Ö/‰LˆCØ�L‰LÑBÈDˆLÔQÜ!“mˆGÛ#*‘�˜CØÔ%ÙØ#&˜Ó ñ $+ð :A¨&Õ1°#Ó6ó 0ñ  4ð )Ð>Ð>r'   c            	      ó0  € R  p / p\         P                  4        Fi  w  r#/ W&   VP                  4        FL  w  rEVP                  4        UUu. uF   w  rgVP                   RVP                   2NK"  	  pppW�V,          V&   KN  	  Kk  	  / p	\        P                  4        FF  w  r#/ W’&   VP                  4        F)  w  rJV
 Uu. uF  qfP                  NK  	  upW’,          V&   K+  	  KH  	  \        V ! RV4      4       \        V ! RV	4      4       R# u uppi u upi )c           
      óv  € . ROpRpRpV .p\        VP                  4       R R7      p\        V4       EFr  w  rxV\        V4      ^,
          8H  p	V	'       d   RMRp
V^ ,           VP                   V 2pVP                  V V
 V V 24       V	'       d   RMRp\        W,          P                  4       R	 R7      p\        V4       FÜ  w  rïV\        V4      ^,
          8H  pV'       d   RMRpV^,           VP                   V 2pVP                  V V V V V 24       TV'       d   RMR,           pW,          V,          p\        V4       FQ  w  ppV\        V4      ^,
          8H  pV'       d   RMRpV^,           V V 2pVP                  V V V V V 24       KS  	  KÞ  	  EKu  	  R
P                  V4      # )ú[36mz[90mz[0mc                 ó   € V P                   # rO   r  )Úms   &r%   r  Ú>debug_print_kernel_maps.<locals>.render_tree.<locals>.<lambda>   s   € °A·G²Gr'   rr   u   â””â”€ u   â”œâ”€ z   u   â”‚  c                 ó   € V P                   # rO   r  )Úfs   &r%   r  r3  '  s   € ÀÇÂr'   Ú
)r0  z[33mz[35mz[32mz[34mz[31m)rx   ÚkeysÚ	enumeraterž   rF   rX   r  )ÚtitleÚtreeÚdepth_colorsÚtrunk_colorÚresetÚlinesÚmethodsÚmirî   Úmethod_lastÚmethod_prefixÚmethod_nameÚ
fmt_prefixÚformatsÚfirø   Úfmt_lastÚ	fmt_trunkÚfmt_nameÚchild_prefixr)  ÚbiÚentryÚ
entry_lastÚentry_trunkÚ
entry_names   &&                        r%   Úrender_treeÚ,debug_print_kernel_maps.<locals>.render_tree  s²  € ò
ˆð !ˆØˆà�ˆÜ˜Ÿ™›Ñ*;Ô<ˆÜ# G×,‰JˆBØ¤ G£¨qÕ 0Ñ0ˆKß)4™I¸)ˆMØ)¨!�_Ð-¨f¯l©l¨^¸E¸7ÐCˆKØ�L‰L˜K˜=¨¨¸°w¸{¸mÐLÔMß"-™°7ˆJÜ˜T�\×.Ñ.Ó0Ñ6GÔHˆGÜ$ WÖ-‘�Ø¤ W£°Õ!1Ñ1�ß)1™I°y�	Ø*¨1�oÐ.¨s¯y©y¨k¸%¸ÐA�Ø—‘ ˜}¨Z¨L¸¸ÀEÀ7È8È*ÐUÔVØ)·h©UÀGÕL�Ø�, sÕ+�Ü!*¨7Ö!3‘I�B˜Ø!#¤s¨7£|°aÕ'7Ñ!7�Jß/9¡)¸y�KØ$0°¥OÐ#4°U°G¸E¸7Ð!C�JØ—L‘L K =°°¸{¸mÈEÈ7ÐS]ÐR^Ð!_Ö`ó	 "4ô .ñ -ð& �y‰y˜ÓÐr'   z -> zAUTO KERNEL SELECTION MAPPINGz'KERNEL BACKEND to METHOD/FORMAT MAPPINGN)ÚAUTO_BACKEND_KERNEL_MAPPINGry   rF   rÿ   Ú BACKEND_TO_METHOD_FORMAT_MAPPINGÚprint)rP  Ú	auto_treerî   Úfmt_maprø   Úbackend_maprô   rˆ   r)  Úsupports_treeró   s              r%   Údebug_print_kernel_mapsrY    s  € ò" ðH €IÜ6×<Ñ<Ö>‰ˆØˆ	ÑØ '§¡¦ÑˆCØP[×PaÑPaÔPcÔdÑPcÁÀ˜'Ÿ-™-˜¨¨S¯\©\¨NÓ;ÑPcˆGÑdØ%,�fÕ˜cÓ"ó !0ñ ?ð €MÜ;×AÑAÖC‰ˆØ "ˆÑØ$Ÿ]™]ž_‰MˆCÙGOÓ)PÁx¸G¯-¬-ÁxÑ)PˆMÕ! #Ó&ó -ñ Dô
 
‰+Ð5°yÓ
AÔBÜ	‰+Ð?ÀÓ
OÖPùó eùò *Qs   Á&D
Â?DÚDEBUGc                ó0   € V ^8„  d   QhR\         R\        /# ©r    rF   r"   ©r4   ru   )r$   s   "r%   r&   r&   K  s   € ÷ Xñ X¬Sð X´Tñ Xr'   c                 óÞ   a€ V P                  4       P                  4       oS\        9   d   R # \        ;QJ d#    V3R l\         4       F  '       g   K   R # 	  R# ! V3R l\         4       4      # )Tc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irO   )rÖ   )rQ   ÚprefixÚlowereds   & €r%   rS   Ú4_is_accelerate_device_map_keyword.<locals>.<genexpr>O  s!   øé € ÐWÑ8V¨fˆw×!Ñ! &×)Ð)Ó8Vùs   ƒ!F)rE   r;   ÚACCELERATE_DEVICE_MAP_KEYWORDSÚanyÚACCELERATE_DEVICE_MAP_PREFIXES)rF   ra  s   &@r%   Ú!_is_accelerate_device_map_keywordrf  K  sN   ø€ Ø�k‰k‹m×!Ñ!Ó#€GØÔ0Ô0Ùß‹3ÔWÕ8VÓW�3Œ3ÐWŠ3ÐWˆ3ÔWÕ8VÓWÓWÐWr'   c                ó0   € V ^8„  d   QhR\         R\        /# r\  r]  )r$   s   "r%   r&   r&   R  s   € ÷ ?ñ ?¬ð ?´ñ ?r'   c                 óL   € V P                  4       P                  4       \        9   # rO   )rE   r;   ÚACCELERATE_OFFLOAD_TARGETSr  s   &r%   Ú_is_accelerate_offload_targetrj  R  s   € Ø�;‰;‹=×ÑÓ Ô$>Ñ>Ð>r'   c                ó>   € V ^8„  d   QhR\         \        ,          RR/# )r    rÁ   r"   N)r   r#   )r$   s   "r%   r&   r&   V  s   € ÷ 
ñ 
´¼Õ0Hð 
ÈTñ 
r'   c           	      ó>  € V  Uu0 uF$  q\         P                  8w  g   K  \        V4      kK&  	  pp\        V4      ^8”  d/   \	        RRP                  \        R V 4       4      4       R24      hV  Uu. uF@  p\        V4      \         P                  \         P                  39   g   K3  V\        V4      3NKB  	  ppV UUu0 uF  w  rEVf   K  VkK  	  ppp\        V4      ^8”  d(   RP                  R V 4       4      p\	        RV R24      hR# u upi u upi u uppi )é   zbQuantized kernel selection does not support a device map spanning different accelerator families: rý   c              3   ó8   "  € T F  qP                   x € K  	  R # 5irO   r  )rQ   r5  s   & r%   rS   Ú5_validate_selector_device_families.<locals>.<genexpr>[  s   é € Ð?ZÑQYÈAÇÆÓQYùrU   r  Nc              3   óv   "  € T F/  w  rVf   K  V R2RP                  R V 4       4      ,           x € K1  	  R # 5i)NÚ=r  c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irO   rƒ   )rQ   Úparts   & r%   rS   Ú?_validate_selector_device_families.<locals>.<genexpr>.<genexpr>f  s   é € Ð#E¹*°$¤C¨§I I»*ùrU   )r  )rQ   r!   Ú
capabilitys   &  r%   rS   ro  e  s=   é € ð 
á&9Ñ"�Øô Fˆvˆh�aˆL˜3Ÿ8™8Ñ#E¹*Ó#EÓE×EÒEÛ&9ùs   ‚9�*9zfQuantized kernel selection does not support a device map spanning different GPU compute capabilities: )
r   rC   r1   rž   r/   r  rx   r`   r.   rd   )rÁ   r!   ÚfamiliesÚdevice_capabilitiesr  ru  ÚcapabilitiesÚrendereds   &       r%   r±   r±   V  s/  € Ù5<ÓU±W¨6Ì&Ï*É*Ñ@TÔ&”˜vÖ&±W€HÐUÜ
ˆ8ƒ}�qÔÜð/Ø/3¯y©y¼Ñ?ZÑQYÓ?ZÓ9ZÓ/[Ð.\Ð\]ð_ó
ð 	
ñ óáˆFÜ˜&Ó!¤f§k¡k´6·;±;Ð%?Ñ?ô 	-ˆÔ# FÓ+Ó,Ùð ð ñ
 5HÔbÑ4G¡= 1È:—J�JÑ4G€LÑbÜ
ˆ<Ó˜1ÔØ—9‘9ñ 
á&9ó
ó 
ˆô
 ð3Ø3;°*¸Að?ó
ð 	
ñ ùò Vùòùó
 cs"   …D DÁ30DÂ(DÃ DÃDc                óT   € V ^8„  d   QhR\         \        \         R3,          ,          /# )r    r"   .)r#   rL   )r$   s   "r%   r&   r&   p  s#   € ÷ 1ñ 1¬~ÄÄnÐVYÐFYÕ@ZÕ/Zñ 1r'   c                 ó’   € V f   \         P                  # \        \        P                  ! V P
                  4      4      p\        V4      # rO   )r   ÚCPUr1   r,   r!   r-   rÂ   )r6   rg   s   & r%   Ú_accelerate_keyword_devicer}  p  s6   € ØÒÜ�z‰zÐäœEŸLšL¨×)9Ñ)9Ó:Ó;€FÜ(¨Ó0Ð0r'   c          	      óð   € V ^8„  d   QhR\         \        \        \        P                  3,          ,          R\         \        \        \
        3,          ,          R\        \        \        R3,          ,          /# )r    r!   Ú
device_mapr"   .)r   r	   r4   r,   r!   r   r#   rL   )r$   s   "r%   r&   r&   x  s[   € ÷ añ aÜ”Uœ3¤§¡Ð,Õ-Õ.ðaäœœs¤D˜yÕ)Õ*ðaô ”eœN¨CÐ/Õ0Õ0ñar'   c                 ó8   € \        W\        P                  R 7      # ))r!   r  Údefault)Únormalize_device_device_mapr   r|  )r!   r  s   &&r%   Úhf_normalize_device_device_maprƒ  x  s   € ô '¨fÔU[×U_ÑU_Ô`Ð`r'   c                ó&  € V ^8„  d   QhR\         \        \        \        \        P
                  \        3,          ,          R\         \        \        \        3,          ,          R\         \        ,          R\        \        \        R3,          ,          /# )r    r!   r  r�  r"   .)
r   r	   r4   rD   r,   r!   r   r   r#   rL   )r$   s   "r%   r&   r&     si   € ÷ :ñ :Ü”Uœ3¤¤U§\¡\´6Ð9Õ:Õ;ð:äœœs¤D˜yÕ)Õ*ð:ô ”nÕ%ð:ô ”eœN¨CÐ/Õ0Õ0ñ	:r'   c                 ó  € Tp\         P                  P                  4       pV EfM   VEeG   \        V\        4      '       d!   \        V4      '       d   \        V4      # V3pM\        VP                  4       4      p. pV F{  pVf   K	  \        V\        4      '       d9   \        V4      '       g   VR8X  d   \        V4      u # \        V4      '       d   KW  \        V4      pW†9  g   Kj  VP                  V4       K}  	  V Uu. uF%  p\        V4      \        P                  8w  g   K#  VNK'  	  p	pT	;'       g    Tp
V
'       d0   \        V
4       \!        V
4      ^8X  d
   V
^ ,          M
\        V
4      pMY\        V \"        4      '       d   \%        V 4      pM7\'        V 4      pVf   Q h\        V4       \!        V4      ^8X  d
   V^ ,          MTpV\        P(                  8X  d   \*        '       d   \        P,                  pV# u upi )NÚauto)r,   r6   r7   r+   r4   rf  r}  rL   rY   rj  rH   rX   r1   r   r|  r±   rž   rD   r   r[   r`   r   r.   )r!   r  r�  Únormalized_devicer6   rÁ   Únormalized_devicesÚ
map_deviceÚ	candidateÚaccelerator_devicesÚselected_devicesÚ
normalizeds   &&&         r%   r‚  r‚    sË  € ð
 3:ÐÜ×#Ñ#×7Ñ7Ó9€KØƒ~ØÓ!Ü˜*¤c×*Ò*Ü4°Z×@Ò@Ü5°kÓBÐBØ%˜-‘ô   
× 1Ñ 1Ó 3Ó4�Ø!#ÐÛ%�
ØÒ%ÙÜ˜j¬#×.Ò.Ü8¸×DÒDÈ
ÐV\ÔH\Ü9¸+ÓFÒFÜ4°Z×@Ò@Ù Ü/°
Ó;�	ØÖ6Ø&×-Ñ-¨iÖ8ñ &ñ ,>ó#Ù+=˜iÜ! )Ó,´·
±
Ñ:÷ �	Ñ+=ð  ð #ð  3×HÐHÐ6HÐßÜ2Ð3CÔDô Ð+Ó,°Ô1ð % QÖ'äÐ/Ó0ð "øô �fœc×"Ò"ô !1°Ó 8Ñä*¨6Ó2ˆJØÒ)Ð)Ð)Ü.¨zÔ:Ü14°Z³ÀAÔ1E 
¨1¦È:Ðð œFŸK™KÔ'¯G«GÜ"ŸK™KÐØÐùò5#s   Ä G>Ä&G>c          	      ó˜   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\        \        \        R3,          ,          /# )r    r!   rô   r"   .)r   rK   r   r#   rL   )r$   s   "r%   r&   r&   ¼  s?   € ÷ ñ Ü”_Õ%ðä”gÕðô ”eœN¨CÐ/Õ0Õ0ñr'   c           	      ó´  € V e=   \        V \        \        P                  \        \
        \        \        34      '       g   Q hVe   \        V\        4      '       g   Q hV fø   V\        P                  \        P                  \        P                  \        P                  39   d-   \        '       d   \        P                  # \        P                  # \         '       d   \        P"                  p V # \        '       d   \        P                  p V # \$        '       d   \        P&                  p V # \(        '       d   \        P*                  p V # \        P                  p V # rO   )r+   r   r,   r!   r4   rD   rL   rz   r   ÚGPTQ_TORCH_FUSEDÚAWQ_TORCH_FUSEDÚTORCH_FUSEDÚTORCH_FUSED_AWQr   r»   r|  r   r`   r   r¼   r   ÚMPS)r!   rô   s   &&r%   Úauto_select_devicer•  ¼  sõ   € ð Š>œZ¨´¼¿¹ÄsÌCÔQVÔX\Ð0]×^Ò^Ð^Ð^ØŠ?œj¨´'×:Ò:Ð:Ð:à‚~à”w×/Ñ/´×1HÑ1HÌ'×J]ÑJ]Ô_f×_vÑ_vÐwÔwß!(£”6—:‘:Ð8¬f¯j©jÐ8ß‹8Ü—[‘[ˆFð €M÷ ‹WÜ—Z‘ZˆFð €M÷ ‹WÜ—Z‘ZˆFð
 €M÷	 ‹WÜ—Z‘ZˆFð €Mô —Z‘ZˆFØ€Mr'   Tc                ód  € V ^8„  d   QhR\         R\         R\        R\        R\        R\        \        \        \
        3,          ,          R\        \        ,          R\        \        \        \        3,          ,          R	\        \        \        \        3,          ,          R
\        \        ,          /
# )r    rÍ   rÎ   rÏ   rÐ   Úcheckpoint_formatr   rÆ   r  rô   r"   )rD   ru   r4   r   r   rd  r	   rw   r   r   r   )r$   s   "r%   r&   r&   Õ  sž   € ÷ !ñ !Üð!äð!ô ð!ô ð	!ô
 ð!ô ”tœC¤˜H•~Õ&ð!ô ”t�nð!ô œU¤3¬ 9Õ-Õ.ð!ô œ%¤¤W Õ-Õ.ð!ô 
Œ/Õñ!r'   c	                 óþ   € \        V\        P                  R 7      pVe   \        RV4      p	M\        P
                  p	\        V VVVVV	\        P                  \        P                  VRR\        P                  RR7      # )rú   NT)rÍ   rÎ   rÏ   rÐ   rô   r!   r$   r÷   rÆ   Úallow_marlinrØ   rÑ   Úadapter)
r   r   ÚGPTQrƒ  r   r|  Úselect_quant_linearr   r,   Úint32)
rÍ   rÎ   rÏ   rÐ   r—  r   rÆ   r  rô   r!   s
   &&&&&&&&& r%   Úhf_select_quant_linearrž  Õ  so   € ô   ´f·k±kÔB€GàÒÜ/°°jÓA‰ä—‘ˆäØØØØØØÜ�{‰{Ü—[‘[ØØØÜ—;‘;Øôð r'   c                ó.  € V ^8„  d   QhR\         R\         R\        R\        R\        \        \        3,          R\        \        \
        3,          R\        \        ,          R\        \        \        \        P                  3,          ,          R	\        \        \        \        3,          ,          R
\        \        ,          R\        \        \        \        3,          ,          R\        \        \        \        3,          ,          R\        \        ,          /# )r    rÍ   rÎ   rÏ   rÐ   r$   r÷   Ú
zero_pointrv   r   rÆ   r  rô   r"   )rD   ru   r	   r4   r   r   r   r,   rv   r   rd  rw   r   r   r   )r$   s   "r%   r&   r&   ù  sô   € ÷ Nñ NÜðNäðNô ðNô ð	Nô
 ”cœ6�kÕ"ðNô œC¤˜KÕ(ðNô œT•NðNô œœc¤5§;¡;Ð.Õ/Õ0ðNô ”tœC¤˜H•~Õ&ðNô ”t�nðNô œU¤3¬ 9Õ-Õ.ðNô œ%¤¤W Õ-Õ.ðNô 
Œ/ÕñNr'   c                 óH  € \        WµR 7      pR R lpR R lpV! V\        R4      pV! V\        R4      pV! VR4      pRpVe   VP                  R	R4      pV\        P                  8X  d&   V\        P
                  8X  d   \        P                  M\        P                  pVe
   V! VR	4      MTpV
e   \        RV
4      pM\        P                  pV\        P                  8X  d   \        P                  pTpVe   \        V4      '       * p\        V VVVVVVVV	R
RVVRR7      # )rú   c                ó$   € V ^8„  d   QhR\         /# )r    Úfieldrƒ   )r$   s   "r%   r&   Ú/hf_select_quant_linear_v2.<locals>.__annotate__
  s   € ÷ dñ d´ñ dr'   c           	      ó  € \        W4      '       d   V # \        V \        4      '       d    V! V P                  4       4      # \        V RVP                   R\        V 4       R24      h  \         d   p\        R T RT  R24      ThRp?ii ; i)úUnsupported ú: `r*   Nz must be a string or `z`, got `)r+   r4   r;   r/   rÿ   r-   )rF   Úenum_clsr£  r0   s   &&& r%   Ú_normalize_enumÚ2hf_select_quant_linear_v2.<locals>._normalize_enum
  s—   € Ü�e×&Ò&ØˆLÜ�eœS×!Ò!ðMÙ §¡£Ó.Ð.ô ˜E˜7Ð"8¸×9JÑ9JÐ8KÈ8ÔTXÐY^ÓT_ÐS`Ð`aÐbÓcÐcøô ô MÜ  <°¨w°c¸%¸ÀÐ!BÓCÈÐLûðMús   «A( Á(BÁ3BÂBc                ó²   € V ^8„  d   QhR\         \        \        \        P                  3,          ,          R\        R\         \        P                  ,          /# )r    rF   r£  r"   )r   r	   r4   r,   rv   )r$   s   "r%   r&   r¤    sA   € ÷ 
<ñ 
<¤¬¬s´E·K±KÐ/?Õ)@Õ Að 
<Ì#ð 
<ÔRZÔ[`×[fÑ[fÕRgñ 
<r'   c                 óH  € V f   R # \        V \        P                  4      '       d   V # \        V \        4      '       dT   V P	                  RR4      P                  4       p\        \        VR 4      p\        V\        P                  4      '       d   V# \        RV RV  R24      h)Nztorch.Ú r¦  r§  r*   )r+   r,   rv   r4   Úreplacer;   r8   r/   )rF   r£  r�  rŠ  s   &&  r%   Ú_normalize_dtypeÚ3hf_select_quant_linear_v2.<locals>._normalize_dtype  s…   € ØŠ=ÙÜ�eœUŸ[™[×)Ò)ØˆLÜ�eœS×!Ò!ØŸ™ x°Ó4×:Ñ:Ó<ˆJÜ¤ z°4Ó8ˆIÜ˜)¤U§[¡[×1Ò1Ø Ð Ü˜<¨ w¨c°%°¸Ð:Ó;Ð;r'   r÷   r$   rv   NrÑ   T)rÍ   rÎ   rÏ   rÐ   rô   r!   r$   r÷   rÆ   r™  rØ   rÑ   rv   rš  )r   r   r   r‡   ÚAWQÚ	GEMV_FASTr,   Úint16r�  rƒ  r   r|  ÚLLM_AWQru   rœ  )rÍ   rÎ   rÏ   rÐ   r$   r÷   r   rv   r   rÆ   r  rô   r©  r¯  rî   rø   Únormalized_dtypeÚpack_dtype_overrideÚdefault_pack_dtyperÑ   r!   Úeffective_syms   &&&&&&&&&&&&          r%   Úhf_select_quant_linear_v2r¹  ù  s!  € ô   ÔC€Gõdõ
<ñ ˜\¬6°>ÓB€FÙ
˜&¤&¨(Ó
3€CÙ'¨¨wÓ7ÐàÐØÒØ"Ÿh™h |°TÓ:Ðà(.´&·*±*Ô(<ÀÌ×HXÑHXÔAXœŸšÔ^c×^iÑ^iÐØH[ÒHgÑ!Ð"5°|ÔDÐm€JàÒÜ/°°jÓA‰ä—‘ˆà”—‘Ôä—[‘[ˆ
à€MØÒÜ  Ó,Ô,ˆäØØØØØØØØØØØØØØôð r'   c          "      óš  € V ^8„  d   QhR\         R\        R\        R\        \        ,          R\        R\
        R\        R\        R	\        R
\        P                  R\        \        P                  ,          R\        R\        \        ,          R\        R\        \        \        ,          \        \        \        ,          ,          3,          /# )r    rÎ   rÏ   rÐ   r!   rô   r$   r÷   rÆ   r™  rÑ   rv   Úmulti_selectrš  Ú
is_shardedr"   )rD   ru   r   rK   r   r   r   r,   rv   r
   r	   r   r   r   )r$   s   "r%   r&   r&   K  sá   € ÷ Hñ HäðHô ðHô ð	Hô
 œÕ)ðHô ðHô ðHô ðHô ðHô ðHô —K‘KðHô œŸ™Õ$ðHô ðHô œ'Õ"ðHô  ð!Hô" Œ4”Õ ¤$¤t¬OÕ'<Õ"=Ð=Õ>ñ#Hr'   c                 ór  a$€ \        V\        4      '       d   \        VP                  4       4      p\        V\        4      '       d   \	        VP                  4       4      p\        WWR 7      pVeZ   \        V\        4      '       d   \        V4      pM7\        V4      pVf   Q h\        V4       \        V4      ^8X  d
   V^ ,          MTp\        \        WR7      4      p \        P                  V4      pVf   \        RV R24      hVV9  d   \        RV RV R24      hVf   \         P"                  MTpV\         P$                  8H  p\         P&                  \         P(                  0pV	'       g   VV9   d   \        R4      hVe   \        V4      MRo$S$e   S$ Uu0 uF  p\+        V4      kK  	  upM	\-        4       pV$3R lp. pV\         P"                  \         P$                  39   Edà   \/        \0        V,          P                  V/ 4      P3                  4       4      pV'       g   \        R	V R
V R24      hRpV'       d   \/        \5        W WW;V4      4      pV EFB  w  ppV	'       gv   TP7                  \9        VRR4      '       d   \;        V4      MR(4      '       dA   \<        P>                  P                  R4      '       d   \@        PC                  RV R24       K„  \D        PF                  VPH                  9  dw   V'       do   VP7                  \-        VPH                  4      4      '       gE   \<        P>                  P                  R4      '       d   \@        PC                  RV RV R24       EK  \9        VR\9        VRR4      4      pV'       dJ   V'       gB   \<        P>                  P                  R4      '       d   \@        PC                  RV R24       EK‚  RpRpV'       dM   X FE  p V! VV R,          V R,          V R,          V R,          V R,          VRVVR7
      w  ppV'       g   KE   M	  MV! VV VVVVVV
VVR7
      w  ppV'       gO   Tp\<        P>                  P                  R4      '       d%   \@        PC                  RV R\        V4       24       EKE  V'       d‡   \K        V4      '       ds   \@        PC                  V'       d   RMR RVPL                   R24       VPO                  V4       V'       g(   \@        PC                  R VPL                   R24       Vu # EKÐ  EKÓ  \@        PC                  V'       d   RMR RVPL                   R24       VPO                  V4       V'       d   EK  \@        PC                  R VPL                   R24       Vu # 	  \        V4      ^ 8X  d   V'       d   Vh\        R!4      hV# \Q        WWV4      p!\9        V!R\9        V!RR4      4      pV'       d%   V'       g   \        R"V R#V!PL                   R$24      hV! V!V VVVVVV
VR%7	      w  p"p#\@        PC                  V'       d   RMR R&V!PL                   R24       V"'       g   \        V#4      hV'       d1   \K        V!4      '       g    \        R"V R#V!PL                   R'V R24      hV'       d   V!.# V!# u upi ))rú   NrÕ   z"Unsupported quantization method: `r*   zUnsupported format: `z` for quantization method `z;Marlin kernel selection was disabled by allow_marlin=False.c                 óŒ   <€ Sf   \        V 3/ VBRR /B # RpS F&  p\        V 3/ VBRV/B pV^ ,          '       d   K$  Vu # 	  V# )Nr!   r—   )r™   )rˆ   r¡   r¤   rb   Úselector_targetss   &,  €r%   Úvalidate_candidateÚ/select_quant_linear.<locals>.validate_candidate„  sZ   ø€ ð Ò#Ü(¨ÑD°ÑD¸tÒDÐDØ"ˆÛ&ˆFÜ/°ÑM°vÑMÀfÒMˆKØ˜q—>–>Ø"Ò"ñ 'ð Ðr'   z"No auto-select kernels found for `rû   z`.rò   rZ  zskip z% because Marlin selection is disabledz for unsupported device `ÚSUPPORTS_SHARDED_LOADÚSUPPORTS_SHARDSTz. because sharded checkpoints are not supportedFrÍ   rÎ   rÏ   rÐ   rÑ   )	rÍ   rÎ   rÏ   rÐ   rÑ   rv   rØ   Ú	trainablerš  z for zPacking r­  z*Kernel: Auto-selection: adding candidate `zKernel: selected -> `zNo valid quant linearzSelected backend `z` with kernel `z'` does not support sharded checkpoints.)rÍ   rÎ   rÏ   rÐ   rÑ   rv   rØ   rÄ  zKernel: selected: `z,` cannot pack quantized weights for format `r˜   ))r+   r4   r   r;   r   r   rD   r   r[   r±   rž   r   r   rS  r‡   r/   r   ÚAUTOÚAUTO_TRAINABLEÚGPTQ_MARLINÚ
AWQ_MARLINr1   r{   rz   rR  ry   rß   Úintersectionr8   rõ   ÚosÚenvironr  Úinfor   rC   ÚSUPPORTS_DEVICESrË   rÿ   rX   r  )%rÍ   rÎ   rÏ   rÐ   r!   rô   r$   r÷   rÆ   r™  rØ   rÑ   rv   r»  rš  r¼  r£   Úsupported_formatsrÄ  Úmarlin_backendsrb   Úselector_familiesrÀ  Úvalidated_qlinearsÚallow_quant_linearsÚlast_errÚ	contractsrn   rˆ   Úsupports_sharded_loadÚ	validatedÚcontract_errrÞ   r  r’   Úerrr¿  s%   &&&&&&&&&&&&&&&&                    @r%   rœ  rœ  K  s+  ø€ ô$ �&œ#×ÒÜ˜Ÿ™›Ó'ˆÜ�,¤×$Ò$Ü˜l×0Ñ0Ó2Ó3ˆÜ ÔC€GØÒÜ�fœc×"Ò"Ü% fÓ-‰Fä'¨Ó/ˆGØÒ&Ð&Ð&Ü.¨wÔ7Ü#& w£<°1Ô#4�W˜Q–Z¸'ˆFäÔ1°$ÔLÓM€Dä8×<Ñ<¸\ÓJÐØÒ ÜÐ=¸l¸^È1ÐMÓNÐNØÐ&Ô&ÜÐ0°°Ð8SÐT`ÐSaÐabÐcÓdÐdà%šoŒg�lŠl°7€Gàœ7×1Ñ1Ñ1€Iä×ÑÜ×Ñð€O÷ ˜G Ô6ÜÐVÓWÐWà4:Ò4FÔ(¨Ô0ÈDÐð Ò'ñ /?Ó?Ñ.> FŒ˜Ö	Ñ.>Ò?ä‹Uð õð Ðà”7—<‘<¤×!7Ñ!7Ð8Õ8Ü"Ô#>¸|Õ#L×#PÑ#PÐQWÐY[Ó#\×#bÑ#bÓ#dÓeÐß"ÜÐAÀ,ÀÈÐ_eÐ^fÐfhÐiÓjÐjàˆ÷ ÜÔ4°WÀJÐZ]ÐkqÓrÓsˆIÜ)‰FˆAˆsß O×$@Ñ$@Ü,3°CÐ9LÈd×,SÒ,SÔ# CÔ(ÐY[÷%ò %ô —:‘:—>‘> '×*Ò*Ü—H‘H˜u Q CÐ'LÐMÔNÙä—
‘
 #×"6Ñ"6Ô6ß%Ø)×6Ñ6´s¸3×;OÑ;OÓ7P×QÒQä—:‘:—>‘> '×*Ò*Ü—H‘H˜u Q CÐ'@ÀÀÈÐJÔKÚÜ$+ØÐ,¬g°cÐ;LÈdÓ.Só%Ð!÷ ×"7Ü—:‘:—>‘> '×*Ò*Ü—H‘H˜u Q CÐ'UÐVÔWÚàˆIØˆLßÛ )�HÙ.@ÀØ% fÕ-Ø#+¨LÕ#9Ø!)¨*Õ!5Ø$ U�OØ#+¨LÕ#9Ø#Ø $Ø"+Ø 'ô
/Ñ+�I˜|÷ !‘yÙò !*ñ +=¸SØØ)Ø%ØØ)ØØ#Ø'Ø#ô
+Ñ'�	˜<÷ Ø'�Ü—:‘:—>‘> '×*Ò*Ü—H‘H˜u Q C u¬S°Ó->Ð,?Ð@ÔAÚçÜ% c×*Ò*Ü—H‘H¯d¡
¸Ð;Ð;eÐfi×frÑfrÐesÐstÐuÔvØ&×-Ñ-¨cÔ2ß'ÜŸ™Ð#8¸¿¹¸ÀbÐ!IÔJØ"š
ò (ò +ô —‘¯$™J°BÐ7Ð7aÐbe×bnÑbnÐaoÐopÐqÔrØ"×)Ñ)¨#Ô.ß#’|Ü—H‘HÐ4°S·\±\°NÀ"ÐEÔFØ’JñM *ôP Ð!Ó" aÔ'ßØ�ÜÐ4Ó5Ð5à!Ð!ô
 % W¸FÓC€Gä#ØÐ(¬'°'Ð;LÈdÓ*SóÐ÷ ×/ÜÐ-¨g¨Y°oÀg×FVÑFVÐEWÐW~Ðó  Að  	Aá& wØØØØØØØØô	�M€Hˆcô ‡H�HŸd‘
¨Ð+Ð+>¸w×?OÑ?OÐ>PÐPQÐRÔSßÜ˜‹oÐçÜ! '×*Ò*ÜØ$ W I¨_¸W×=MÑ=MÐ<NÐNzð  |Bð  {Cð  CEð  Fóð ÷ ØˆyÐØ€Nùòi 	@s   ÆZ4>   r†  ÚbalancedÚ
sequential)Úbalanced_low_rO   )NTNN)NNNTNN)Zr  rÊ  r
  Ú	threadingÚcollectionsr   Útypingr   r   r   r   r   r	   r,   Úgptqmodel.adapter.adapterr
   Úmodels._constr   r   Únn_modules.qlinearr   r   Úquantizationr   r   Úquantization.configr   r   Ú	utils.envr   Úutils.loggerr   r­  r   rô   r   Úrocmr   r   r   r   r   rc  re  ri  Úmessage_loggedr  r!   r#   rK   rŸ   r›   ÚRLockrš   r1   r>   rH   r[   rd   ri   rm   r‹   r�   r™   r®   r²   rÂ   rË   rß   rê   rï   rõ   r  r  r-  rR  rS  rY  rf  rj  r±   r}  rƒ  r‚  r•  rž  r¹  rÅ  r›  rœ  r˜   r'   r%   Ú<module>ré     s¼  ðó Û 	Û Û Ý #ß >× >ã å -ç 4ß Eß )ß IÝ  Ý 'Ý Ý &Ý ß 6Ó 6ò "DÐ Ø!3Ð Ø$ fÐ-Ð ð €Ùƒn€ð �v˜uŸ|™|Ð+Õ,€Ø˜¨°Õ(@Ð@ÕA€Ø Ð Ù“MÐ Ø"ŸšÓ*Ð õ	Yõ)õ.bõBõ*õ,ò4õ*ò#õ3Fõl"õ
&õ 8õFõ>õBõ(õõõ,
Iò3?ñl AZÓ@[Ñ =Ð Ð=ò3Qñl ˆG×ÒÙÔõXõ?õ
õ41õa÷:õz÷2!÷HNðp #Ÿ<™<ØŸ™Ø%Ÿ{™{ØØ!ØØ"&Ø'+Ø"Ø%)Ø ÷!Hñ Hr'   