+
    "Ý³j(  ã                   ó
  € ^ RI t ^ RIHt ^ RIt^RIHt ^RIHt ^RIH	t	H
t
Ht ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ]! 4       tR R ltR R ltR R lt]P2                  ! 4       ]P4                  3R R ll4       tR# )é    N©Únullcontext)ÚBitBLASLinear)ÚAWQBitBlasKernel)ÚFORMATÚMETHODÚQuantizeConfig)Úresolve_quant_format)Úsetup_logger)Ú)load_checkpoint_in_model_then_tie_weights)ÚTHREADPOOLCTL)Útorch_empty_cachec                ó$   € V ^8„  d   QhR\         /# )é   Úqcfg)r	   )Úformats   "ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/bitblas.pyÚ__annotate__r      s   € ÷ ñ ¤~ñ ó    c                 óX   € V P                   \        P                  8X  d   \        # \        # ©N)Úquant_methodr   ÚAWQr   r   )r   s   &r   Ú_select_bitblas_kernel_classr      s    € Ø×ÑœFŸJ™JÔ&ÜÐÜÐr   c                ó0   € V ^8„  d   QhR\         R\         /# )r   ÚrepackÚreturn)Úbool)r   s   "r   r   r      s   € ÷ ñ ¬$ð ´4ñ r   c                ó†   € \         P                  ! R4      pVe"   VP                  4       P                  4       R9  # V '       * # )zCKeep GPTQ repacks responsive unless tuning is explicitly requested.ÚBITBLAS_ENABLE_TUNING>   Ú0ÚnoÚoffÚfalse)ÚosÚgetenvÚstripÚlower)r   Úraws   & r   Ú_should_enable_bitblas_tuningr*      s9   € ä
�)Š)Ð+Ó
,€CØ
‚Ø�y‰y‹{× Ñ Ó"Ð*EÑEÐEØŒ:Ðr   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   r   ÚsymÚdesc_actÚload_checkpoint_in_model)r	   r   )r   s   "r   r   r   &   s2   € ÷ (ñ (äð(ô ð(ô ð(ô #'ñ(r   c	           
      ól  € \        VP                  VP                  4      \        P                  8X  dX   \
        P                  R VP                  P                  4        RV R24       \        WWVRVR7      p \        V VVVRRR7       V # V'       d   \        V VVVRRR7       \        WWVRVR7      p V # )z
Loading a z. model, detected BitBLAS serialized format at Ú.F)r   ÚdtypeT)r1   Ú
checkpointÚ
device_mapÚoffload_state_dictÚoffload_buffers)r
   r   Úmethodr   ÚBITBLASÚlogÚinfor   ÚupperÚconvert_to_bitblasr   )	Úmodelr   Úquant_linear_classr1   Úmodel_save_namer3   r,   r-   r.   s	   &&&&&&&&&r   Úprepare_model_for_bitblas_loadr?   &   s½   € ô ˜DŸK™K¨¯©Ó5¼¿¹ÔGä�‰�:˜d×/Ñ/×5Ñ5Ó7Ð8Ð8fÐgvÐfwÐwxÐyÔzÜ" 5¸dÈÐZ_ÐglÔmˆÜ1ØØØ&Ø!Ø#Ø õ	
ð0 €L÷ $Ü5ØØØ*Ø%Ø#'Ø $õô # 5¸dÈÐZ^ÐfkÔlˆØ€Lr   c          
      óh   € V ^8„  d   QhR\         R\        R\        R\        R\        P                  /# )r   r   r,   r-   r   r1   )r	   r   Útorchr1   )r   s   "r   r   r   R   sI   € ÷ Pñ Pô ðPô 
ð	Pô
 ðPô ðPô �;‰;ñPr   c                ó*  € V'       d   RpMRp\        V4      p\        e   \        P                  MR p	\        V4      p
V	! ^R7      ;_uu_ 4        R\        P
                  R&   \        P                  \        V P                  4       4      4      P                  V4       EF,  w  r¼\        WÁ4      '       g   K  VP                  R4      w  rÞp\        P                  ! R	4      ;_uu_ 4        V! VP                  VP                   VVVP"                  VP$                  VP&                  VP(                  RJVV
VP*                  VR
7      pRRR4       V'       dC   VP,                  \.        P0                  8X  d   XP3                  V4       MXP5                  V4       VR8X  d   T MV P7                  V4      p\9        VVX4       ?\;        4        EK/  	  RRR4       \<        P>                  Vn         V #   + '       g   i     L°; i  + '       g   i     L:; i)z±
Converts GPTQ-packed weights to the Bitblas format.

Arguments:
    repack (`bool`):
        Whether to repack the qweights from `model` into the BitBLAS's QuantLinear layers.
z9Repacking weights to be compatible with BitBLAS kernel...z=Overriding QuantLinear layers to use BitBLAS's QuantLinear...Nc                  ó   € \        4       # r   r   )ÚargsÚkwargss   *,r   Ú<lambda>Ú$convert_to_bitblas.<locals>.<lambda>n   s   € ¤k¤mr   )ÚlimitsÚ1ÚNUMEXPR_MAX_THREADSr0   Úmeta)ÚbitsÚ
group_sizer,   r-   Úin_featuresÚout_featuresÚ
pack_dtypeÚbiasr1   Úenable_tuningÚadapterÚnameÚ )!r   r   Úthreadpool_limitsr*   r%   Úenvironr8   ÚpbÚlistÚnamed_modulesÚtitleÚ
isinstanceÚ
rpartitionrA   ÚdeviceÚruntime_bitsrM   rN   rO   rP   rQ   rS   r   r   r   Úrepack_from_awqÚrepack_from_gptqÚget_submoduleÚsetattrr   r   r7   Úruntime_format)r<   Úmodel_quantlinearr   r,   r-   r   r1   ÚmessageÚbitblas_quantlinearrV   rR   rT   ÚmoduleÚparent_nameÚ_Ú
layer_nameÚbitblas_moduleÚparent_modules   &&&&&&&           r   r;   r;   Q   s°  € ÷" ØM‰ð Rˆä6°tÓ<Ðô
 Ò$ô 	×'Ò'á3ð ô 2°&Ó9€Má	 !×	$Ö	$Ø,/Œ�
‰
Ð(Ñ)ô  ŸF™F¤4¨×(;Ñ(;Ó(=Ó#>Ó?×EÑEÀg×N‰LˆDÜ˜f×8Ò8Ùà)-¯©¸Ó)=Ñ&ˆK˜Jô —’˜f×%Õ%Ù!4Ø×*Ñ*Ø#Ÿ™ØØ%Ø &× 2Ñ 2Ø!'×!4Ñ!4Ø#Ÿ™ØŸ™¨DÐ0ØØ"/Ø ŸL™LØô"�÷ &÷" Ø×$Ñ$¬¯
©
Ô2Ø"×2Ñ2°6Õ:à"×3Ñ3°FÔ;ð &1°BÔ%6™E¸E×<OÑ<OÐP[Ó<\ˆMÜ�M :¨~Ô>ð Ü×ñK O÷ 
%ôZ !Ÿ.™.€DÔà€L÷E &×%ú÷ 
%×	$ús-   ÁBHÃ*AG/ÅHÅA9HÇ/G?Ç:HÈH	)r%   Ú
contextlibr   rA   Únn_modules.qlinear.bitblasr   Únn_modules.qlinear.bitblas_awqr   Úquantizationr   r   r	   Úquantization.configr
   Úutils.loggerr   r<   r   Úsafer   r   r8   r   r*   r?   Úinference_modeÚfloat16r;   © r   r   Ú<module>rx      sl   ðó 
Ý "ã å 6Ý =ß 9Ñ 9Ý 6Ý 'Ý <Ý Ý $ñ ƒn€õõõ(ðV ×ÒÓð Ÿ™öPó òPr   