+
    "Ý³jRu  ã                  óº  a € 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHtHtHt ^ RI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$ ]$! 4       t%Rt&. R<Ot'R](R&   . R=Ot)R](R&   . R>Ot*R](R&   RR.t+R](R&   ],! 0 R?m4      t-Rt.Rt/^Zt0R]0 2t1Rs2Rs3R R lt4R R lt5]5! 4       t6]Pn                  ! R4      t8]Pn                  ! R4      t9R]& R 2t:R! t;R" R# lt<R$ R% lt=R& R' lt>R( R) lt?R* t@R@R+ R, lltAR- R. ltBR/ R0 ltCR1 R2 ltDR3 R4 ltE] ! R5 R64      4       tF ! R7 R8]4      tG ! R9 R:]G4      tH]HtIR:R;.tJR# )Aé    )ÚannotationsN)Ú	dataclass©ÚPath)ÚListÚOptionalÚTupleÚUnion)Úversion)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚBaseQuantLinearÚGroupedQuantLinear)ÚFORMATÚMETHOD)ÚBACKEND)Úenv_flag)Úsetup_loggerz0.1.0.post1z	List[int]ÚBITBLAS_OPTIMIZE_FEATURESÚBITBLAS_SUPPORTED_GROUP_SIZESÚBITBLAS_SUPPORTED_BITSFTz
List[bool]ÚBITBLAS_SUPPORTED_SYMÚ	quantizedúcuda -arch=sm_c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚbool© )Úformats   "Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/bitblas.pyÚ__annotate__r%   0   s   € ÷ 9ñ 9˜dñ 9ó    c                 ó8  € R p . p. pR FT  p\         P                  P                  VR4      pV'       g   K-  VP                  R VP	                  R4       4       4       KV  	  VP                  V4       VP                  \        R4      \        R4      \        R4      .4        ^ RIp\        VR. 4       Uu. uF  p\        V4      NK  	  ppV FY  pVP                  VR	,          R
,          VR,          R
,          .4       VP                  R VP                  R4       4       4       K[  	  \        \        P                  4      R
,          R\        P                  P                   R\        P                  P                   2,          R,          p	VP                  V	4       \!        4       p
V FÀ  pV'       d   VP#                  4       '       g   K#  VP%                  4       pWÊ9   d   K;  V
P'                  V4       R Fn  p\)        VP                  V4      4       FM  pVP+                  4       '       g   K   \,        P.                  ! \1        V4      \,        P2                  R7       Rp KO  	  Kp  	  KÂ  	  V # u upi   \         d    . p EL»i ; i  \4         d     K‚  i ; i)FÚ c              3  óJ   "  € T F  q'       g   K  \        V4      x € K  	  R # 5i©Nr   )Ú.0Úps   & r$   Ú	<genexpr>Ú'_load_cuda_libraries.<locals>.<genexpr>8   s   é € ÐCÑ-=¨ÃœGœD ŸG˜GÓ-=ùs   ‚	#�#Ú:z/usr/local/cuda/lib64z/usr/local/cuda/libz/usr/lib/x86_64-linux-gnuNÚ__path__Úcuda_runtimeÚlibÚ
cuda_nvrtcc              3  ó$   "  € T F  qx € K  	  R # 5ir*   r"   )r+   Úpaths   & r$   r-   r.   Q   s   é € ÐDÑ/C tœdÓ/Cùs   ‚zcu*/libÚpythonÚ.zsite-packages)ÚmodeT)ÚLD_LIBRARY_PATHÚLIBRARY_PATH)zlibcudart.so*zlibnvrtc.so*)ÚosÚenvironÚgetÚextendÚsplitr   ÚnvidiaÚgetattrÚ	ExceptionÚglobÚsysÚprefixÚversion_infoÚmajorÚminorÚappendÚsetÚis_dirÚresolveÚaddÚsortedÚis_fileÚctypesÚCDLLÚstrÚRTLD_GLOBALÚOSError)Ú
loaded_anyÚcandidate_dirsÚenv_dirsÚvarÚpathsr@   r,   Únvidia_pathsÚbaseÚsite_packagesÚ	seen_dirsÚ	directoryÚresolvedÚpatternÚ	candidates                  r$   Ú_load_cuda_librariesrb   0   s>  € Ø€JØ€Nà€HÛ2ˆÜ—
‘
—‘˜s BÓ'ˆß‰5Ø�O‰OÑC¨U¯[©[¸Ô-=ÓCÖCñ 3ð ×Ñ˜(Ô#à×ÑäÐ(Ó)ÜÐ&Ó'ÜÐ,Ó-ð	
ôðJÛô *1°¸ÀRÔ)HÓIÑ)H Aœ˜QžÑ)HˆÐIãˆØ×Ñà�~Õ%¨Õ-Ø�|Õ# eÕ+ðô	
ð 	×ÑÑD¨t¯y©y¸Ô/CÓDÖDñ ô œŸ™Ó$ uÕ,°¼×8HÑ8H×8NÑ8NÐ7OÈqÔQT×QaÑQa×QgÑQgÐPhÐ/iÕiÐl{Õ{€MØ×Ñ˜-Ô(ä“€IÛ#ˆ	ß 	× 0Ñ 0× 2Ò 2ÙØ×$Ñ$Ó&ˆØÔ ÙØ�‰�hÔã8ˆGÜ# I§N¡N°7Ó$;Ö<�	Ø ×(Ñ(×*Ò*ÙðÜ—K’K¤ I£´V×5GÑ5GÕHØ!%’Jó =ó 9ñ $ð$ ÐùòC Jøô ô Ø‹ðûôB ô Úðús*   Â"I6 Â5I1È21J
É6JÊJÊ
J	ÊJ	c               ó   € V ^8„  d   QhRR/# r   r"   )r#   s   "r$   r%   r%   l   s   € ÷ ñ ˜tñ r&   c                 ó\  € \        R RR7      '       d   R#  ^ RIp \        P                  ! T P                  4      p\        P                  ! \        4      pYE8  d(   \        P                  R	T P                  \        4       R# R
#   \         d�   p\        T4      pRT9  d   \        P                  RT4        Rp?R# \        4       '       g   \        P                  RT4        Rp?R#  ^ RIp  Rp?LØ  \         d&   p\        P                  RT4        Rp? Rp?R# Rp?ii ; iRp?ii ; i)ÚGPTQMODEL_DISABLE_BITBLASÚ0)ÚdefaultFNÚlibcuzBitBLAS import failed: %sz1CUDA libraries missing, BitBLAS import failed: %szBitBLAS import retry failed: %sz,BitBLAS version %s below minimum required %sT)r   ÚbitblasrB   rR   ÚlogÚdebugrb   r   ÚparseÚ__version__ÚMINIMUM_BITBLAS_VERSION)ri   ÚexcÚ
error_textÚ	retry_excÚparsed_versionÚminimum_versions         r$   Ú_is_bitblas_availablert   l   sæ   € äÐ+°S×9Ó9ÙðÛô —]’] 7×#6Ñ#6Ó7€NÜ—m’mÔ$;Ó<€OØÔ'Ü�	‰	Ø:Ø×ÑÜ#ô	
ñ
 Ùøô- ô Ü˜“Xˆ
Ø˜*Ô$Ü�I‰IÐ1°3Ô7ÝÜ#×%Ò%Ü�I‰IÐIÈ3ÔOÝð	ßˆNøÜô 	Ü�I‰IÐ7¸ÔCß‘5ûð	þðúsA   —B ÂD+Â(D&Â=&D&Ã*C3Ã3D#Ã>DÄD&ÄD#Ä#D&Ä&D+z\bsm_(\d+)[a-z]*\bzsm_(\d+)zbbitblas is not installed or the version is incompatible. Please install via `pip install bitblas>=z`.c                 óz  € ^ RI p \        P                  ! V P                  4      p\        P                  ! \        4      pW8  d   \        \        4      hV P                  R4       \        f�   ^RI	H
p W0n        \        \        P                  P                  RR4      P!                  R4      ^ ,          4      p\#        V! V4      4      s\         \        P                  R&   \$        P'                  R\        4       \(        f9   ^ R	IHp V! 4        R
V P                   2s\$        P'                  R\(        4       R# R# )r   NÚINFO)Ú!patched_auto_detect_nvidia_targetÚCUDA_VISIBLE_DEVICESrf   Ú,Ú
TVM_TARGETzBITBLAS_TARGET %s)Úget_database_pathÚ_zBITBLAS_DATABASE_PATH %s)ri   r   rl   rm   rn   ÚImportErrorÚBITBLAS_INSTALL_HINTÚset_log_levelÚBITBLAS_TARGETÚbitblas_target_detectorrw   Úauto_detect_nvidia_targetÚintr;   r<   r=   r?   Ú_normalize_bitblas_targetrj   rk   ÚBITBLAS_DATABASE_PATHÚbitblas.cacher{   )ri   rr   rs   rw   Úvisibler{   s         r$   Úimport_bitblasrˆ   —   sî   € ó ä—]’] 7×#6Ñ#6Ó7€NÜ—m’mÔ$;Ó<€OØÔ'ÜÔ.Ó/Ð/à×Ñ˜&Ô!äÒÝNà,MÔ)Ü”b—j‘j—n‘nÐ%;¸SÓA×GÑGÈÓLÈQÕOÓPˆÜ2Ñ3TÐU\Ó3]Ó^ˆÜ&4Ð%5Œ�
‰
�<Ñ Ü�	‰	Ð%¤~Ô6äÒ$Ý3á#4Ó#6Ð"7°q¸×9LÑ9LÐ8MÐ NÐÜ�	‰	Ð,Ô.CÖDñ	 %r&   c               ó   € V ^8„  d   QhRR/# )r   r    úOptional[str]r"   )r#   s   "r$   r%   r%   ³   s   € ÷ ñ  Mñ r&   c                ó  € V f   R # \        V 4      p ^ RIHp \        VP                  P	                  V4      P
                  4      #   \         d8    \        P                  T4      pT'       d   RTP                  ^4       2u #  R # i ; i)N)ÚtvmÚsm_)
rR   ri   rŒ   ÚtargetÚTargetÚarchrB   Ú_BITBLAS_TARGET_ARCH_REÚsearchÚgroup)rŽ   Útarget_textrŒ   Úmatchs   &   r$   Ú_bitblas_target_archr–   ³   sv   € Ø‚~Ùä�f“+€KðÝä�3—:‘:×$Ñ$ [Ó1×6Ñ6Ó7Ð7øÜô Ü'×.Ñ.¨{Ó;ˆßØ˜Ÿ™ Q›Ð(Ð)Ò)Úð	ús   “3A Á'B	Á/B	ÂB	c               ó   € V ^8„  d   QhRR/# ©r   r    zOptional[int]r"   )r#   s   "r$   r%   r%   Ä   s   € ÷ ñ  -ñ r&   c                ó–   € \        V 4      pVf   R # \        P                  V4      pV'       d   \        VP	                  ^4      4      # R # r*   )r–   Ú_BITBLAS_TARGET_SM_REr’   rƒ   r“   )rŽ   r�   r•   s   &  r$   Ú_bitblas_target_smr›   Ä   s=   € Ü Ó'€DØ‚|Ùä!×(Ñ(¨Ó.€EßÜ�5—;‘;˜q“>Ó"Ð"Ùr&   c               ó   € V ^8„  d   QhRR/# r˜   r"   )r#   s   "r$   r%   r%   Ï   s   € ÷ *ñ *˜-ñ *r&   c                 ó  € \         P                  P                  4       '       g   R # \         P                  P                  \         P                  P	                  4       4      p V P
                  ^
,          V P                  ,           # r*   )ÚtorchÚcudaÚis_availableÚget_device_propertiesÚcurrent_devicerG   rH   )Úpropss    r$   Ú_current_cuda_smr¤   Ï   sQ   € Ü�:‰:×"Ñ"×$Ò$Ùä�J‰J×,Ñ,¬U¯Z©Z×-FÑ-FÓ-HÓI€EØ�;‰;˜Õ˜eŸk™kÕ)Ð)r&   c               ó   € V ^8„  d   QhRR/# )r   r    rR   r"   )r#   s   "r$   r%   r%   ×   s   € ÷ *ñ * #ñ *r&   c                 óT   € \        4       p V f   \        # \        V \        4      pRV 2# )Nr   )r¤   ÚBITBLAS_FALLBACK_TARGETÚminÚBITBLAS_MAX_SUPPORTED_SM)Ú
current_smÚfallback_sms     r$   Ú_bitblas_fallback_targetr¬   ×   s0   € Ü!Ó#€JØÒÜ&Ð&ä�jÔ":Ó;€KØ˜K˜=Ð)Ð)r&   c                óú   € V f   R # \        V 4      p\        V 4      pVf   V # RV 2pV\        8”  d%   \        4       p\        P                  RV VV4       V# VRV 28w  d   \        P                  RV VV4       V# V # )Nr   zKBitBLAS target %s resolves to unsupported CUDA arch %s; falling back to %s.r�   z,Canonicalizing BitBLAS target %s (%s) to %s.)r–   r›   r©   r¬   rj   ÚwarningÚinfo)rŽ   r�   Ú
sm_versionÚcanonical_targetÚfallback_targets   &    r$   r„   r„   à   s›   € Ø‚~Ùä Ó'€DÜ# FÓ+€JØÒØˆà'¨
 |Ð4ÐàÔ,Ô,Ü2Ó4ˆÜ�‰ØYØØØô		
ð Ðà��Z�LÐ!Ô!Ü�‰Ø:ØØØô		
ð  Ðà€Mr&   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úqzerosútorch.TensorÚbitsrƒ   Ú
is_gptq_v2r!   r    r"   )r#   s   "r$   r%   r%     s)   € ÷ ñ ˜|ð °3ð ÀDð ÐUañ r&   c                óÜ  € V P                  \        P                  4      p ^ V,          p\        P                  ! V P                  ^ ,          V P                  ^,          V,          3\        P
                  V P                  RR7      p\        VP                  ^,          4       F5  pWS,          pV RWS,          3,          W,          ,	          ^,          VRV3&   K7  	  V'       g
   V^,           # V# )é    F©ÚdtypeÚdeviceÚrequires_gradºNNN)Úviewrž   Úint32ÚzerosÚshapeÚint8r¼   Úrange)r´   r¶   r·   Úelems_per_int32Úunpacked_zerosÚcolÚis   &&&    r$   Úunpack_gptq_qzerosrÉ     s»   € Ø�[‰[œŸ™Ó%€FØ˜D•j€OÜ—[’[Ø	�‰�a�˜&Ÿ,™, q�/¨OÕ;Ð<Ü�j‰jØ�}‰}Øô	€Nô �^×)Ñ)¨!Õ,Ö-ˆØÕ!ˆØ"(¨¨CÕ,BÐ)BÕ"CÈÍÕ"QÐUXÕ!Xˆ�q˜#�vÓñ .÷ Ø Õ!Ð!ØÐr&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úqweightrµ   r¶   rƒ   r    r"   )r#   s   "r$   r%   r%     s!   € ÷ ;ñ ; ð ;°Sð ;¸\ñ ;r&   c                óò  € V P                  \        P                  4      p ^V,          p\        P                  ! V P                  ^ ,          V P                  ^,          V,          3\        P                  V P
                  RR7      p\        VP                  ^,          4       F.  pWB,          pV RWB,          3,          W,          ,	          VRV3&   K0  	  \        P                  ! V^V,          ^,
          4      # )é   Frº   r¾   )r¿   rž   rÃ   rÁ   rÂ   r¼   rÄ   Úbitwise_and)rË   r¶   Úelems_per_int8Úunpacked_weightrÇ   rÈ   s   &&    r$   Úunpack_gptq_qweightrÑ     s¾   € Ø�l‰lœ5Ÿ:™:Ó&€GØ˜$•Y€NÜ—k’kØ	�‰�qÕ	˜7Ÿ=™=¨Õ+¨nÕ<Ð=Ü�j‰jØ�~‰~Øô	€Oô �_×*Ñ*¨1Õ-Ö.ˆØÕ ˆØ#*¨1¨cÕ.CÐ+CÕ#DÈÍÕ#Rˆ˜˜3˜Óñ /ô ×Ò˜_¨a°­g¸­kÓ:Ð:r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úqweight_codesrµ   r¶   rƒ   r    r"   )r#   s   "r$   r%   r%   %  s"   € ÷ 0ñ 0¸ð 0ÈSð 0ÐUañ 0r&   c                óä   € ^V^,
          ,          p\         P                  ! V P                  \         P                  4      V4      pVP                  \         P                  4      P                  4       # )é   )rž   Úbitwise_xorÚtoÚint16rÃ   Ú
contiguous)rÓ   r¶   Úsign_bitÚremappeds   &&  r$   Ú%remap_gptq_symmetric_codes_to_bitblasrÜ   %  sN   € ð
 �T˜A•X�€HÜ× Ò  ×!1Ñ!1´%·+±+Ó!>ÀÓI€HØ�;‰;”u—z‘zÓ"×-Ñ-Ó/Ð/r&   c               ó    € V ^8„  d   QhRRRR/# )r   Úgptq_moduler   r    r!   r"   )r#   s   "r$   r%   r%   /  s   € ÷ .ñ .°Oð .Èñ .r&   c                ó  € \        V R R4      pVe   VP                  4       ^ 8X  d   R# \        V RR4      p\        V4      '       d   V! 4       pV^8X  d   R# V^8w  d   R# VP                  4       P	                  4       ^ 8H  # )r´   NFÚqzero_format)rA   ÚnumelÚcallableÚcount_nonzeroÚitem)rÞ   r´   rà   Ú	format_ids   &   r$   Ú"_should_remap_symmetric_gptq_codesræ   /  sx   € Ü�[ (¨DÓ1€FØ‚~˜Ÿ™›¨1Ô,Ùä˜;¨¸Ó=€LÜ�×ÒÙ “Nˆ	Ø˜Œ>ÙØ˜Œ>Ùð ×ÑÓ!×&Ñ&Ó(¨AÑ-Ð-r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú
group_sizerƒ   Úin_featuresr    r"   )r#   s   "r$   r%   r%   C  s!   € ÷ %ñ %˜Cð %¨cð %°cñ %r&   c                ó(   € V RV39   d   ^# W,          # )rÕ   éÿÿÿÿr"   )rè   ré   s   &&r$   Ú_num_groupsrì   C  s   € Ø�b˜+Ð&Ô&ÙØÕ$Ð$r&   c                  ó®   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   ]P                  tR]R	&   ]t	R
]R&   Rt
R
]R&   RtR
]R&   R R lt]R R l4       tRtR# )ÚBitblasQuantizationConfigiI  rƒ   Úweight_bitsrè   r!   Údesc_actÚis_symútorch.dtypeÚtorch_dtyperR   Ú
zeros_moderÃ   Ústorage_dtypeÚgptqÚquant_methodc               ó   € V ^8„  d   QhRR/# ©r   r    ÚNoner"   )r#   s   "r$   r%   Ú&BitblasQuantizationConfig.__annotate__T  s   € ÷ Fñ F˜tñ Fr&   c                	óV  € V P                   '       d   V P                  R	8X  d   RV n         V P                  \        9  d!   \	        RV P                   R\         R24      hV P
                  \        9  d!   \	        RV P
                   R\         R24      h^ V P                  ,          ^ 8w  d   \	        R4      hV P                  \        P                  \        P                  39  d   \	        R4      h^ V P                  ,          V n        \        \        V P                  4      V n        R# )
rÕ   Fz'BitBLAS does not support weight_bits = z. Supported values: r7   zBitBLAS does not support sym = z+weight_bits must divide 32 for GPTQ packingzEBitBLAS only supports torch.float16 and torch.bfloat16 compute dtypesNrë   )rð   rè   rï   r   Ú
ValueErrorrñ   r   ró   rž   Úfloat16Úbfloat16Úpack_factorrA   rõ   Útorch_storage_dtype©Úselfs   &r$   Ú__post_init__Ú'BitblasQuantizationConfig.__post_init__T  s  € Ø�=�=ˆ=˜TŸ_™_°Ô2Ø!ˆDŒMØ×ÑÔ#9Ô9ÜØ9¸$×:JÑ:JÐ9Kð L%Ü%;Ð$<¸Að?óð ð �;‰;Ô3Ô3ÜØ1°$·+±+°ð ?%Ü%:Ð$;¸1ð>óð ð �× Ñ Õ  AÔ%ÜÐJÓKÐKØ×Ñ¤E§M¡M´5·>±>Ð#BÔBÜÐdÓeÐeØ ×!1Ñ!1Õ1ˆÔÜ#*¬5°$×2DÑ2DÓ#EˆÖ r&   c               ó   € V ^8„  d   QhRR/# r   r"   )r#   s   "r$   r%   rû   i  s   € ÷ Bñ B˜Dñ Br&   c                	óR   € V P                   '       * ;'       d    V P                  R 8H  # )r   )rñ   rô   r  s   &r$   Ú
with_zerosÚ$BitblasQuantizationConfig.with_zerosh  s   € à—;‘;Œ×AÐA 4§?¡?°kÑ#AÐAr&   )rð   r   r  N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__rž   rþ   ró   ÚBITBLAS_DEFAULT_ZEROS_MODErô   rõ   r÷   r  Úpropertyr  Ú__static_attributes__r"   r&   r$   rî   rî   I  s_   ‡ àÓØƒOØƒNØƒLØ$Ÿ}™}€K�Ó,Ø0€J�Ó0Ø€M�3ÓØ€L�#ÓõFð( ôBó ôBr&   rî   c            
      ó�  a € ] tR tRt]t]P                  tR R lt	]
RR/R R ll4       tR]P                  ]P                  RRR	]]R
R3
R V 3R lllt]
R R l4       t]
R+R V 3R lll4       tR R ltR R ltR R ltR V 3R lltR R ltR R ltR tR R ltR  V 3R! lltR" R# ltR$ R% ltR,R& R' lltR( R) ltR*tV ;t# )-ÚBitblasBaseQuantLinearim  c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r   r¶   rƒ   rè   rð   r!   Úsymr»   rò   r    rî   r"   )r#   s   "r$   r%   Ú#BitblasBaseQuantLinear.__annotate__q  sH   € ÷ 
ñ 
ð ð
ð ð	
ð
 ð
ð ð
ð ð
ð 
#ñ
r&   c               	ó"   € \        VVVVVR 7      # ))rï   rè   rð   rñ   ró   )rî   )r  r¶   rè   rð   r  r»   s   &$$$$$r$   Ú_build_quant_configÚ*BitblasBaseQuantLinear._build_quant_configq  s    € ô )ØØ!ØØØô
ð 	
r&   ÚdynamicNc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# ©r   r¶   rƒ   r  r!   r»   úOptional[torch.dtype]r  úOptional[dict]r    ú Tuple[bool, Optional[Exception]]r"   )r#   s   "r$   r%   r  ƒ  s>   € ÷ 	ñ 	ð ð	ð ð		ð
 %ð	ð  ð	ð 
*ñ	r&   c               	ó   € ????R# )T©TNr"   )Úclsr¶   r  r»   r  s   &$$$$r$   Ú_validate_kernel_comboÚ-BitblasBaseQuantLinear._validate_kernel_combo‚  s   € ð �#�u˜gØÐr&   FTÚntc          "     ó\   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRRRRRRRRRRRRRRRR/# )r   r¶   rƒ   rè   rð   r!   r  ré   Úout_featuresÚbiasÚ
pack_dtyperò   r»   Úadapterr   Úenable_tuningÚfast_decodingÚpropagate_bÚopt_featureszUnion[int, List[int]]ÚlayoutrR   Úregister_buffersr    rú   r"   )r#   s   "r$   r%   r  Ž  sÚ   € ÷ HBñ HBàðHBð ðHBð ð	HBð
 ðHBð ðHBð ðHBð ðHBð  ðHBð ðHBð ðHBð ðHBð ðHBð ðHBð ,ðHBð  ð!HBð" ð#HBð& 
ñ'HBr&   c                	óò  <€ W�P                   9  d2   \        V P                  P                   R V P                    RV	 24      hV P                  P	                  WV	R7      w  ppV'       g   Vh\
        SV `  ! RRVRVRVRVRVRVR	VR
VRVP                  R\        P                  4      RV
RR/VB  ?\        '       g   \        \        4      hW�n        V P                  VVVVV	R7      V n        W°n        Wðn        \%        V\&        4      '       d   \'        V4      MV.V n        WÐn        \-        4        V P/                  WV4       V P1                  VVV P                  VRVV4       V P3                  WVV4       R# )z only supports dtypes z: actual dtype = )r¶   r  r»   r¶   rè   r  rð   ré   r'  r(  r)  Úbackendr*  r0  F)r¶   rè   rð   r  r»   Nr"   )ÚSUPPORTS_DTYPESrý   Ú	__class__r
  r#  ÚsuperÚ__init__Úpopr   ÚGPTQ_BITBLASÚBITBLAS_AVAILABLEr}   r~   ÚTORCH_DTYPEr  Úquant_configr+  r/  Ú
isinstanceÚlistr.  r-  rˆ   Ú_validate_parametersÚ_configure_bitblas_matmulÚ_initialize_buffers)r  r¶   rè   rð   r  ré   r'  r(  r)  r»   r*  r+  r,  r-  r.  r/  r0  ÚkwargsÚokÚerrr4  s   &&&&&&&&&&&&&&&&&,  €r$   r6  ÚBitblasBaseQuantLinear.__init__Ž  sÀ  ø€ ð( ×,Ñ,Ô,Ü §¡× 7Ñ 7Ð8Ð8NÈt×OcÑOcÐNdÐduÐv{Ðu|Ð}Ó~Ð~à—.‘.×7Ñ7¸TÐRWÐ7ÓX‰ˆˆCßØˆIä‰Òñ 	
Øð	
à!ð	
ð ð	
ð ð		
ð
 $ð	
ð &ð	
ð ð	
ð "ð	
ð —J‘J˜y¬'×*>Ñ*>Ó?ð	
ð ð	
ð #ð	
ð ò	
ð ç Ó ÜÔ2Ó3Ð3à ÔØ ×4Ñ4ØØ!ØØØð 5ó 
ˆÔð +ÔØŒÜ2<¸\Ì4×2PÒ2PœD Ô.ÐWcÐVdˆÔØ&ÔäÔà×!Ñ! +Ô<Ø×&Ñ&ØØØ×ÑØØØØô	
ð 	× Ñ  ¸DÖAr&   c               ó   € V ^8„  d   QhRR/# )r   r    r  r"   )r#   s   "r$   r%   r  Ù  s   € ÷ ñ Ð>ñ r&   c                	óŽ   € \         '       g   R \        \        4      3#  \        4        R#   \         d   pR T3u Rp?# Rp?ii ; i)FNr!  )r9  rý   r~   rˆ   rB   )r"  ro   s   & r$   Úvalidate_onceÚ$BitblasBaseQuantLinear.validate_onceØ  sH   € ç Ó Øœ*Ô%9Ó:Ð:Ð:ð	ÜÔð Ðøô ô 	Ø˜#�:Õûð	ús   Ÿ
+ «A¶?¹A¿Ac               óL   € V ^8„  d   QhRRRRRRRRRRRRR	R
RRRRRRRRRRRR/# )r   r¶   rƒ   rè   rð   r!   r  ré   r'  r)  rò   r»   r  r  r  r¼   zOptional[DEVICE]Ú	trainablezOptional[bool]r*  zOptional[Adapter]r    r  r"   )r#   s   "r$   r%   r  ä  sŒ   € ÷  
ñ  
àð 
ð ð 
ð ð	 
ð
 ð 
ð ð 
ð ð 
ð  ð 
ð %ð 
ð  ð 
ð !ð 
ð "ð 
ð #ð 
ð 
*ñ 
r&   c                	ó|   <€ V P                  WW‰R 7      w  rÞV'       g   RV3# \        SV `	  VVVVVVVVV	V
VVR7      # ))r¶   r  r»   r  F)r¶   rè   rð   r  ré   r'  r)  r»   r  r¼   rJ  r*  )r#  r5  Úvalidate)r"  r¶   rè   rð   r  ré   r'  r)  r»   r  r¼   rJ  r*  rB  rC  r4  s   &&&&&&&&&&&&&  €r$   rL  ÚBitblasBaseQuantLinear.validateã  sd   ø€ ð  ×,Ñ,°$ÀuÐ,Ó^‰ˆßØ˜#�:Ðä‰wÑØØ!ØØØ#Ø%Ø!ØØØØØð  ó 
ð 	
r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ré   rƒ   r'  r    rú   r"   )r#   s   "r$   r%   r    s&   € ÷ Qñ Q°ð QÀ3ð QÈ4ñ Qr&   c                	ó.  aa€ \         ;QJ d)    V3R  lV P                   4       F  '       g   K   RM	  RM! V3R  lV P                   4       4      '       d   \        RV P                   R24      h\         ;QJ d)    V3R lV P                   4       F  '       g   K   RM	  RM! V3R lV P                   4       4      '       d   \        RV P                   R24      hV P                  R	S39  d&   SV P                  ,          ^ 8w  d   \        R4      hR# R# )
c              3  ó<   <"  € T F  pSV,          ^ 8g  x € K  	  R# 5i©r   Nr"   )r+   Údivisorré   s   & €r$   r-   Ú>BitblasBaseQuantLinear._validate_parameters.<locals>.<genexpr>  s   øé € Ð`Ñ9_¨gˆ{˜WÕ$¨Ö)Ó9_ùó   ƒTFz#`in_features` must be divisible by z for BitBLASc              3  ó<   <"  € T F  pSV,          ^ 8g  x € K  	  R# 5irQ  r"   )r+   rR  r'  s   & €r$   r-   rS    s   øé € ÐbÑ:a¨wˆ|˜gÕ%¨Ö*Ó:aùrT  z$`out_features` must be divisible by z0`in_features` must be divisible by `group_size`.Nrë   )ÚanyÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYrý   Ú"SUPPORTS_OUT_FEATURES_DIVISIBLE_BYrè   )r  ré   r'  s   &ffr$   r>  Ú+BitblasBaseQuantLinear._validate_parameters  sÜ   ù€ ÷ ‹3Ô`¸×9_Ò9_Ó`�3�3Š3Ô`¸×9_Ò9_Ó`×`Ò`ÜØ5°d×6\Ñ6\Ð5]Ð]iÐjóð ÷ ‹3Ôb¸$×:aÒ:aÓb�3�3Š3Ôb¸$×:aÒ:aÓb×bÒbÜØ6°t×7^Ñ7^Ð6_Ð_kÐlóð ð �?‰? 2 {Ð"3Ô3¸ÀdÇoÁoÕ8UÐYZÔ8ZÜÐOÓPÐPñ 9[Ñ3r&   c               ó   € V ^8„  d   QhRR/# )r   r    útorch.devicer"   )r#   s   "r$   r%   r    s   € ÷ #ñ # ñ #r&   c                	óŽ  € V P                  4        FE  p\        V\        P                  4      '       g   K%  VP                  '       d   K9  VP
                  u # 	  \        P                  P                  4       '       d4   \        P
                  ! R \        P                  P                  4       4      # \        P
                  ! R4      # )rŸ   Úcpu)	Úlist_buffersr<  rž   ÚTensorÚis_metar¼   rŸ   r    r¢   )r  Útensors   & r$   Ú_buffer_deviceÚ%BitblasBaseQuantLinear._buffer_device  sz   € Ø×'Ñ'Ö)ˆFÜ˜&¤%§,¡,×/Ô/¸¿¿ºØ—}‘}Ò$ñ *ô �:‰:×"Ñ"×$Ò$Ü—<’< ¬¯
©
×(AÑ(AÓ(CÓDÐDÜ�|Š|˜EÓ"Ð"r&   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ré   rƒ   r'  r(  r!   r    rú   r"   )r#   s   "r$   r%   r     s)   € ÷  !ñ  !¨sð  !À#ð  !ÈTð  !ÐVZñ  !r&   c                	ó<  € \        V P                  V4      pV P                  P                  pV P                  P                  4       pV P                  R \        P                  ! WeR7      4       V P                  R\        P                  ! W$3V P                  R7      4       V P                  P                  '       dd   \        P                  ! V4      P                  pWBV P                  ,          V,          3pV P                  R\        P                  ! W…R7      4       M(V P                  R\        P                  ! ^ VR7      4       V'       d5   V P                  R\        P                  ! V3V P                  R7      4       MRV n        V P                  V n        R# )rË   ©r»   Úscalesr´   r(  N)rì   rè   r;  r  Úbitblas_matmulÚretrieve_weight_shapeÚregister_bufferrž   Úemptyr:  r  Úiinfor¶   rÁ   r(  r´   )	r  ré   r'  r(  Ú
num_groupsrõ   Úweight_shapeÚstorage_bitsÚzeros_shapes	   &&&&     r$   r@  Ú*BitblasBaseQuantLinear._initialize_buffers   s2  € Ü  §¡°+Ó>ˆ
Ø×)Ñ)×=Ñ=ˆà×*Ñ*×@Ñ@ÓBˆØ×ÑØÜ�KŠK˜Ô:ô	
ð 	×ÑØÜ�KŠK˜Ð2¸$×:JÑ:JÔKô	
ð
 ×Ñ×'×'Ð'ô !Ÿ;š; }Ó5×:Ñ:ˆLØ%°d·i±iÕ'?À<Õ'OÐPˆKØ× Ñ ØÜ—’˜KÔ=õð
 × Ñ  ¬5¯;ª;°qÀÔ+NÔOçØ× Ñ  ¬¯ª°l°_ÈD×L\ÑL\Ô)]Õ^àˆDŒIð —[‘[ˆŽ
r&   c               ó   € V ^8„  d   QhRR/# )r   r    r   r"   )r#   s   "r$   r%   r  B  s   € ÷ ñ ˜dñ r&   c                	óš   <€ \         SV `  4       p\        V R 4      '       d*   V P                  e   VP	                  V P                  4       V# )r´   )r5  r^  Úhasattrr´   rI   )r  Úbufr4  s   & €r$   r^  Ú#BitblasBaseQuantLinear.list_buffersB  s;   ø€ Ü‰gÑ"Ó$ˆÜ�4˜×"Ò" t§{¡{Ò'>Ø�J‰J�t—{‘{Ô#Øˆ
r&   c               ó8   € V ^8„  d   QhRRRRRRRRRRR	R
RRRR/# )r   Ú
infeaturesrƒ   ÚoutfeaturesÚparams_dtyperò   r+  r!   r(  r/  rR   r¶   r    rú   r"   )r#   s   "r$   r%   r  H  sd   € ÷ #Sñ #Sàð#Sð ð#Sð "ð	#Sð
 ð#Sð ð#Sð ð#Sð ð#Sð 
ñ#Sr&   c                	óÒ  € ^ RI Hp V\        P                  8X  d   RMRp	Rp
V P                  P
                  RJ d   RV 2MRV 2pT! V P                  TTT	TT	V	R8X  d   R	MT
V P                  P                  R
V P                  P                  V P                  VVV P                  P                  R7      pV P                  WÄ4      V n        V P                  V P                  V4       R# )r   )ÚMatmulConfigrþ   rÿ   Úfloat32FÚuintrƒ   rÃ   rÀ   T)ÚMÚNÚKÚA_dtypeÚW_dtypeÚ	out_dtypeÚaccum_dtyperõ   Úwith_scalingr  rè   Ú	with_biasr/  rô   N)ri   r|  rž   rþ   r;  rñ   r.  rõ   r  rè   rô   Ú_get_or_create_bitblas_operatorrh  Ú!_ensure_runnable_bitblas_operator)r  rx  ry  rz  r+  r(  r/  r¶   r|  Úbitblas_dtyper…  rƒ  Úmatmul_configs   &&&&&&&&     r$   r?  Ú0BitblasBaseQuantLinear._configure_bitblas_matmulH  sà   € õ 	)à%1´U·]±]Ô%B™	È
ˆàˆØ#'×#4Ñ#4×#;Ñ#;¸uÓ#D�D˜˜‘-ÈCÐPTÈvÈ,ˆÙ$Ø×ÑØØØ!ØØ#Ø#0°FÔ#:™ÀØ×+Ñ+×9Ñ9ØØ×(Ñ(×3Ñ3Ø—‘ØØØ×(Ñ(×3Ñ3ô
ˆð  #×BÑBØó
ˆÔð 	×.Ñ.¨t×/BÑ/BÀMÖRr&   c               ó   € V ^8„  d   QhRR/# rù   r"   )r#   s   "r$   r%   r  m  s   € ÷ 	
ñ 	
È4ñ 	
r&   c                	óú   € \        VR R4      e   R# \        \        VRR4      4      '       d   R# \        RVP                   RVP                   RVP
                   RVP                   RVP                   R24      h)	r2   NÚ
torch_funcz6BitBLAS could not build a runnable matmul for A_dtype=z
, W_dtype=z, out_dtype=z, accum_dtype=z, group_size=r7   )rA   râ   ÚNotImplementedErrorr‚  rƒ  r„  r…  rè   )r  rh  Úconfigs   &&&r$   r‰  Ú8BitblasBaseQuantLinear._ensure_runnable_bitblas_operatorm  s†   € Ü�> 5¨$Ó/Ò;ÙÜ”G˜N¨L¸$Ó?×@Ò@ÙÜ!ðØ—~‘~Ð& j°·±Ð0@ÀÈV×M]ÑM]ÐL^ð _Ø!×-Ñ-Ð.¨m¸F×<MÑ<MÐ;NÈaðQó
ð 	
r&   c                	ó®  € ^ RI Hp ^ RIHp \	        \
        4      pVP                  4       ^ 8X  d   VP                  \        V4       VP                  V4      pVfd   V! WVR7      pV'       dP   VP                  ^R7       VP                  W4       VP                  \        V4       \        P                  RV4       V# \        P                  RV4       V# )r   )ÚMatmul)Úglobal_operator_cache)rŽ   r+  )Útopkz0BitBLAS operator tuned and added to cache for %sz!BitBLAS operator cache hit for %s)ri   r”  r†   r•  r„   r€   ÚsizeÚload_from_databaser…   r=   Úhardware_aware_finetunerM   Úsave_into_databaserj   r¯   rk   )r  r‘  r+  r”  r•  rŽ   rh  s   &&&    r$   rˆ  Ú6BitblasBaseQuantLinear._get_or_create_bitblas_operatorx  sÁ   € Ý"Ý7Ü*¬>Ó:ˆà ×%Ñ%Ó'¨1Ô,Ø!×4Ñ4Ü% vôð /×2Ñ2°6Ó:ˆØÒ!Ù# FÈÔWˆNßØ×6Ñ6¸BÐ6Ô?Ø%×)Ñ)¨&ÔAØ%×8Ñ8Ü)¨6ôô —‘ØFÈôð
 Ðô �I‰IÐ9¸6ÔBØÐr&   c               ó   € V ^8„  d   QhRR/# rù   r"   )r#   s   "r$   r%   r  ’  s   € ÷ ñ  $ñ r&   c                	óB  € \        V R 4      '       da   \        V P                  \        P                  4      '       d7   V P                  P
                  '       g   V P                  P                  4        \        V R4      '       da   \        V P                  \        P                  4      '       d7   V P                  P
                  '       g   V P                  P                  4        \        V R4      '       da   \        V P                  \        P                  4      '       d7   V P                  P
                  '       g   V P                  P                  4        V P                  e;   V P                  P
                  '       g   V P                  P                  4        R# R# R# )rË   rg  r´   N)
rt  r<  rË   rž   r_  r`  Úzero_rg  r´   r(  r  s   &r$   Úreset_parametersÚ'BitblasBaseQuantLinear.reset_parameters’  sú   € Ü�4˜×#Ò#¬
°4·<±<ÄÇÁ×(NÒ(NÐW[×WcÑWc×Wk×WkÐWkØ�L‰L×ÑÔ Ü�4˜×"Ò"¤z°$·+±+¼u¿|¹|×'LÒ'LÐUY×U`ÑU`×Uh×UhÐUhØ�K‰K×ÑÔÜ�4˜×"Ò"¤z°$·+±+¼u¿|¹|×'LÒ'LÐUY×U`ÑU`×Uh×UhÐUhØ�K‰K×ÑÔØ�9‰9Ò ¨¯©×):×):Ð):Ø�I‰I�O‰OÖñ *;Ñ r&   c               ó   € V ^8„  d   QhRR/# rù   r"   )r#   s   "r$   r%   r  œ  s   € ÷ ñ ˜4ñ r&   c                	ó$   <€ \         SV `  4        R # r*   )r5  Ú	post_init)r  r4  s   &€r$   r£  Ú BitblasBaseQuantLinear.post_initœ  s   ø€ Ü‰ÑÖr&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úintweight_out_inrµ   r¼   r[  r    r"   )r#   s   "r$   r%   r  Ÿ  s#   € ÷ $ñ $¸,ð $ÐP\ð $Ðamñ $r&   c                	óÂ  € ^ RI Hp V P                  P                  eI   V P                  P                  VP	                  4       4      P                  V4      pVP                  4       # V! VP	                  4       P                  4       V P                  4      p\        P                  ! V4      P                  VV P                  P                  R7      pVP                  4       # )r   ©Úgeneral_compress©r¼   r»   )Úbitblas.quantization.utilsr©  rh  Úweight_transformr]  r×   Únumpyr¶   rž   Ú
from_numpyr;  r  rÙ   )r  r¦  r¼   r©  rË   Ú
compresseds   &&&   r$   Ú_transform_bitblas_weightÚ0BitblasBaseQuantLinear._transform_bitblas_weightŸ  s¼   € Ý?à×Ñ×/Ñ/Ò;Ø×)Ñ)×:Ñ:Ð;K×;OÑ;OÓ;QÓR×UÑUÐV\Ó]ˆGð ×!Ñ!Ó#Ð#ñ *Ð*:×*>Ñ*>Ó*@×*FÑ*FÓ*HÈ$Ï)É)ÓTˆJÜ×&Ò& zÓ2×5Ñ5ØØ×'Ñ'×;Ñ;ð 6ó ˆGð ×!Ñ!Ó#Ð#r&   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úintzeros_group_outúOptional[torch.Tensor]r¼   r[  r    rµ   r"   )r#   s   "r$   r%   r  ¬  s(   € ÷ ñ à2ðð ðð 
ñ	r&   c                	ó´  € ^ RI Hp V P                  P                  '       d   Vf.   \        P
                  ! ^ V P                  P                  VR7      # V! VP                  4       P                  4       P                  4       V P                  4      p\        P                  ! V4      P                  VV P                  P                  R7      P                  4       # )r   r¨  )r»   r¼   rª  )r«  r©  r;  r  rž   rk  r  rÙ   r]  r­  r¶   r®  r×   )r  r³  r¼   r©  r¯  s   &&&  r$   Ú_compress_bitblas_zerosÚ.BitblasBaseQuantLinear._compress_bitblas_zeros¬  s­   € õ
 	@à× Ñ ×+×+Ð+Ð/AÒ/IÜ—;’;˜q¨×(9Ñ(9×(MÑ(MÐV\Ô]Ð]á%Ð&8×&CÑ&CÓ&E×&IÑ&IÓ&K×&QÑ&QÓ&SÐUY×U^ÑU^Ó_ˆ
Ü×Ò 
Ó+×.Ñ.ØØ×#Ñ#×7Ñ7ð /ó 
÷ ‰*‹,ð	r&   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   r¦  rµ   Úscales_out_groupr³  r´  r(  r    rú   r"   )r#   s   "r$   r%   r  ¼  s<   € ÷ !ñ !à&ð!ð 'ð!ð 3ð	!ð
 %ð!ð 
ñ!r&   c                	óÀ  € V P                  4       pV P                  W4      V P                  R &   VP                  WPP                  R7      P                  4       V P                  R&   V P                  W54      V P                  R&   V P                  e<   Ve8   VP                  4       P                  WPP                  R7      V P                  R&   V P                  V n
        R# )rË   rª  rg  r´   Nr(  )rb  r°  Ú_buffersr×   r:  rÙ   r¶  r(  Údetachr´   rÁ   )r  r¦  r¹  r³  r(  r¼   s   &&&&& r$   Ú_load_bitblas_quant_stateÚ0BitblasBaseQuantLinear._load_bitblas_quant_state¼  s³   € ð ×$Ñ$Ó&ˆà#'×#AÑ#AÐBRÓ#[ˆ�‰�iÑ Ø"2×"5Ñ"5¸V×K[ÑK[Ð"5Ó"\×"gÑ"gÓ"iˆ�‰�hÑØ"&×">Ñ">Ð?QÓ"Zˆ�‰�hÑà�9‰9Ò  TÒ%5Ø$(§K¡K£M×$4Ñ$4¸F×JZÑJZÐ$4Ó$[ˆD�M‰M˜&Ñ!à—[‘[ˆŽ
r&   c               ó    € V ^8„  d   QhRRRR/# )r   Úxrµ   r    r"   )r#   s   "r$   r%   r  Î  s   € ÷ ñ ˜ð ¨,ñ r&   c                	óÖ  € VP                   pW P                  8w  d   VP                  V P                  4      pVP                  R R pVP	                  RVP                  R,          4      pW@P
                  V P                  .pV P                  P                  '       d   VP                  V P                  4       V P                  ! V!  pV P                  e   W`P                  ,           pVP                  ! . VOV P                  N5!  pV P                  '       d   V P                  P!                  WR7      pW P"                  9   d$   VP                   V8w  d   VP                  VR7      pV# )N)rÀ  Úoutrf  rë   )r»   r:  r×   rÂ   ÚreshaperË   rg  r;  r  rI   r´   rh  r(  r¿   r'  r*  Úapplyr3  )r  rÀ  Úinput_dtypeÚ
orig_shapeÚx_2dÚargsÚout_2drÂ  s   &&      r$   ÚforwardÚBitblasBaseQuantLinear.forwardÎ  s  € Ø—g‘gˆØ×*Ñ*Ô*Ø—‘�T×%Ñ%Ó&ˆAà—W‘W˜S˜b�\ˆ
Ø�y‰y˜˜QŸW™W R�[Ó)ˆà—l‘l D§K¡KÐ0ˆØ×Ñ×'×'Ð'Ø�K‰K˜Ÿ™Ô$Ø×$Ò$ dÑ+ˆà�9‰9Ò ØŸi™iÕ'ˆFà�kŠkÐ9˜:Ð9 t×'8Ñ'8Ó9ˆà�<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCà×.Ñ.Ô.°3·9±9ÀÔ3KØ—&‘&˜{�&Ó+ˆCàˆ
r&   )	r:  r(  rh  r+  r/  r.  r-  r;  rÁ   )NNNNNNNN)NN) r
  r  r  r  r   ÚOPT_FEATURESrž   rþ   r:  r  Úclassmethodr#  rÀ   ÚBITBLAS_PROPAGATE_WEIGHTSr6  rG  rL  r>  rb  r@  r^  r?  r‰  rˆ  rŸ  r£  r°  r¶  r½  rÊ  r  Ú__classcell__)r4  s   @r$   r  r  m  sí   ø† Ø,€LØ—-‘-€Kõ
ð" ð	ð #'ö	ó ð	ð& Ø"'§+¡+Ø"Ÿ]™]ØØ#Ø"Ø5Ø.:ØØ!&÷#HBò HBðT ôó ðð ÷ 
ñ  
ó ð 
õDQõ$#õ !÷Dð õ#SõJ	
òõ4÷ð õ$õ÷ !÷$ó r&   r  c                  ó¢  € ] tR tRt]P
                  .t]P                  ^]P                  ^]P                  ^/t]t]tR.t]tRtRtRt^.t^.t]P2                  .t]P8                  ]P:                  .t]P@                  .t!]".t#]PH                  ]PJ                  .t&Rt'](P                  .t)]*RR R ll4       t+]*RR/R	 R
 ll4       t,R R lt-Rt.R# )ÚBitblasLinearië  FTÚgptq_bitblasNc               ó$   € V ^8„  d   QhRRRRRR/# )r   r¶   rƒ   ÚlayerrŠ   r    r�  r"   )r#   s   "r$   r%   ÚBitblasLinear.__annotate__  s"   € ÷ 
ñ 
¨Sð 
¸ð 
ÐReñ 
r&   c                	óV   € Ve   RV R2MRp\        V P                   RV RV R24      # )Nz for layer pattern `Ú`r(   z3 does not support `torch.bfloat16` with symmetric `z`-bit GPTQ weightsz¯. This is blocked by an upstream BitBLAS CUDA codegen failure for signed low-bit dequantization. Use `torch.float16`, asymmetric GPTQ/unsigned weights, or a different backend.)r�  r
  )r"  r¶   rÔ  Úlocations   &&& r$   Ú_bf16_signed_weight_errorÚ'BitblasLinear._bf16_signed_weight_error  sL   € à6;Ò6GÐ)¨%¨°Ñ2ÈRˆÜ"Ø�|‰|ˆnÐOÐPTÈvÐUgÐhpÐgqð r]ð ]ó
ð 	
r&   r  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# r  r"   )r#   s   "r$   r%   rÕ    s>   € ÷ ñ ð ðð ð	ð
 %ðð  ðð 
*ñr&   c               	ó\  € V\         P                  8w  d   R# V'       d   V\        9   d   RV P                  V4      3# Vf   R# VP	                  4        FT  w  rVVP                  RV4      pVP                  RV4      pV'       g   K3  V\        9   g   K@  RV P                  WuR7      3u # 	  R# )TFr¶   r  )rÔ  r!  )rž   rÿ   Ú$BITBLAS_BF16_UNSUPPORTED_SIGNED_BITSrÙ  Úitemsr=   )	r"  r¶   r  r»   r  rÔ  Ú	overridesÚ
layer_bitsÚ	layer_syms	   &$$$$    r$   r#  Ú$BitblasLinear._validate_kernel_combo  s£   € ð ”E—N‘NÔ"ØÐç�4Ô?Ô?Ø˜#×7Ñ7¸Ó=Ð=Ð=àŠ?ØÐà '§¡¦ÑˆEØ"Ÿ™ v¨tÓ4ˆJØ!Ÿ™ e¨SÓ1ˆIß‰y˜ZÔ+OÖOØ˜c×;Ñ;¸JÐ;ÓTÐTÒTñ	 !0ð Ðr&   c               ó    € V ^8„  d   QhRRRR/# )r   rÞ   r   r    rú   r"   )r#   s   "r$   r%   rÕ  '  s   € ÷ 
ñ 
¨Oð 
Àñ 
r&   c                	óX  € V P                   pVP                  P                  4       P                  P	                  4       P                  V P                  P                  4      p\        W24      P	                  4       pV P                  P                  '       d   \        V4      '       d   \        WB4      pR pV P                  P                  '       d\   \        VR4      '       dJ   VP                  e<   \        VP                  P                  4       V4      P	                  4       pV^,
          pV P                   e*   \#        VRR 4      e   VP                   P                  4       MR pV P%                  VVP&                  P                  4       P                  P	                  4       VVR7       R # )Nr´   r(  )r¦  r¹  r³  r(  )r¶   rË   r¼  ÚTrÙ   r¿   r;  r  rÑ   rñ   ræ   rÜ   r  rt  r´   rÉ   r(  rA   r½  rg  )r  rÞ   r¶   Úpacked_weightÚ	intweightÚintzerosr(  s   &&     r$   Úrepack_from_gptqÚBitblasLinear.repack_from_gptq'  sL  € Ø�y‰yˆà×Ñ×&Ñ&Ó(×*Ñ*×5Ñ5Ó7×<Ñ<¸T×=NÑ=N×=bÑ=bÓcð 	ô (¨Ó<×GÑGÓIˆ	Ø×Ñ×#×#Ð#Ô(JÈ;×(WÒ(WÜ=¸iÓNˆIàˆØ×Ñ×'×'Ð'¬G°KÀ×,JÒ,JÈ{×OaÑOaÒOmÜ)¨+×*<Ñ*<×*CÑ*CÓ*EÀtÓL×WÑWÓYˆHØ !•|ˆHà,0¯I©IÒ,AÄgÈkÐ[aÐcgÓFhÒFtˆ{×Ñ×&Ñ&Ô(Ðz~ˆØ×&Ñ&Ø&Ø(×/Ñ/×6Ñ6Ó8×:Ñ:×EÑEÓGØ'Øð	 	'ö 	
r&   r"   r*   )/r
  r  r  r  r   r8  ÚSUPPORTS_BACKENDSr   ÚBITBLASÚGPTQÚGPTQ_V2ÚSUPPORTS_FORMATSr   ÚSUPPORTS_BITSr   ÚSUPPORTS_GROUP_SIZEÚSUPPORTS_DESC_ACTr   ÚSUPPORTS_SYMÚSUPPORTS_SHARDSÚSUPPORTS_TRAININGÚSUPPORTS_AUTO_PADDINGrW  rX  r   ÚCUDAÚSUPPORTS_DEVICESr   ÚLINUXÚWIN32ÚSUPPORTS_PLATFORMrž   rÀ   ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSrþ   rÿ   r3  Ú
QUANT_TYPEr   ÚSUPPORTS_METHODSrÍ  rÙ  r#  ré  r  r"   r&   r$   rÑ  rÑ  ë  sû   † Ø ×-Ñ-Ð.ÐØŸ™¨¨F¯K©K¸¸V¿^¹^ÈRÐPÐØ*€MØ7Ðð ˜ÐØ(€LØ€OØÐØ!ÐØ)+¨Ð%Ø*,¨Ð&àŸ™�}ÐØ!Ÿ™¨¯©Ð8ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€Oà€JØŸ™�}Ðàö
ó ð
ð ðð #'öó ð÷2
ñ 
r&   rÑ  ÚBitBLASLinear)rÕ   é   r¹   é@   é€   é   i   i   )rë   r¹   r  r  )rÕ   r   é   rÍ   >   r   r  rÍ   )F)KÚ__conditional_annotations__Ú
__future__r   rP   r;   rD   Údataclassesr   Úpathlibr   Útypingr   r   r	   r
   Úpcrerž   Ú	packagingr   Úadapter.adapterr   r   Úmodels._constr   r   Únn_modules.qlinearr   r   Úquantizationr   r   Úutilsr   Ú	utils.envr   Úutils.loggerr   rj   rn   r   r  r   r   r   Ú	frozensetrÝ  r  rÎ  r©   r§   r€   r…   rb   rt   r9  Úcompiler‘   rš   r~   rˆ   r–   r›   r¤   r¬   r„   rÉ   rÑ   rÜ   ræ   rì   rî   r  rÑ  r   Ú__all__)r  s   @r$   Ú<module>r     sŽ  øð÷
 #Ð "ã Û 	Û 
Ý !Ý ß /Ó /ã Û Ý ç ,ß -ß Eß *Ý Ý !Ý (ñ ƒn€à'Ð Ú'KÐ ˜9Ó KÚ+<Ð ˜yÓ <Ú$0Ð ˜	Ó 0Ø%*¨D MÐ �zÓ 1ñ
 (1²Ó';Ð $Ø(Ð Ø!Ð ØÐ Ø*Ð+CÐ*DÐEÐ à€ØÐ õ9õxñ@ *Ó+Ð ØŸ,š,Ð'<Ó=Ð ØŸš [Ó1Ð ð0Ø0GÐ/HÈðLð òEõ8õ"õ*õ*ò÷Bõ&;õ"0õ.õ(%ð ÷ Bð  Bó ð BôFyÐ/ô yô|P
Ð*ô P
ðf €à˜OÐ
,‚r&   