+
    "Ý³jfL  ã                   óB  € ^ RI HtHt ^ RIt^ RIt^RIHtHt ^RI	H
t
Ht ^RIHt ^RIHtHt ^RIHt ^RIHt ^R	IHt ^R
IHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t- ^RI.H/t/ ^RI0H1t1 ]! 4       t2Rt3]3t4 ! R R]4      t5R t6R t7R t8R.t9R# )é    )ÚOptionalÚTupleN)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚGPTQQuantLinear)ÚFORMATÚMETHOD)ÚBACKEND)Úenv_flag)Úsetup_logger)Ú%_marlin_all_visible_devices_supportedÚ_transform_paramÚapply_gptq_marlin_linearÚapply_gptq_marlin_linear_paddedÚgptq_marlin_repackÚmarlin_import_exceptionÚmarlin_is_tile_alignedÚmarlin_is_k_fullÚmarlin_make_empty_g_idxÚmarlin_make_workspace_newÚmarlin_pad_dimÚmarlin_pad_qweightÚmarlin_pad_scalesÚmarlin_padded_nkÚmarlin_permute_biasÚmarlin_permute_scalesÚ!marlin_repeat_scales_on_all_ranksÚmarlin_runtime_availableÚmarlin_runtime_errorÚmarlin_sort_g_idxÚmarlin_validate_runtime_deviceÚreplace_parameter)Úscalar_types)ÚIS_ROCMc                   óR  a a€ ] tR t^Bt o]P
                  .t]P                  .t	]
P                  ^Z]
P                  ^Z]
P                  ^Z/t^^.t. ROtRR.tR.tRtRtRt^.t^.t]P0                  .t]P6                  .t]P<                  .t] .t!]PD                  ]PF                  .t$Rt%Rt&R]'PP                  R]'PR                  /t*R]P<                  RR3V3R lV 3R lllt+],V3R lR l4       t-],V3R	 lV 3R
 ll4       t.],V3R lV 3R ll4       t/V 3R lt0V3R lR lt1Rt2Vt3V ;t4# )ÚMarlinLinearTFÚmarlinNc                ój   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[RS[P                  R	S[R
S[/
# )é   ÚbitsÚ
group_sizeÚdesc_actÚsymÚin_featuresÚout_featuresÚbiasÚ
pack_dtypeÚregister_buffersÚadapter)ÚintÚboolÚtorchÚdtyper   )ÚformatÚ__classdict__s   "€Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/marlin.pyÚ__annotate__ÚMarlinLinear.__annotate__c   s}   ø€ ÷ M;ñ M;ÙðM;áðM;ñ ðM;ñ ð	M;ñ
 ðM;ñ ðM;ñ ðM;ñ Ÿ™ðM;ñ #ðM;ñ ñM;ó    c                ó	  <€ \         e   \        R\          24      hV'       d   VR#V39   d   RpVP                  R\        P                  4      pV\        P
                  \        P                  39   d   \        We4      '       g   \        R4      hVP                  R4      ;'       g    \        P                  V n        \        RRR7      V n        \        SV `@  ! R$R	VR
VRVRVRVRVRVRVRVRV
RR/VB  V P                  '       g    \"        P$                  P'                  R4       \)        VV P*                  RR7      '       d   V P,                  V P*                  ,          pMV P,                  V P*                  ,          pV P/                  R\        P0                  P3                  \        P4                  ! V P,                  V P6                  ,          V P8                  \        P:                  R7      RR7      4       V P/                  R\        P0                  P3                  \        P4                  ! V P,                  \        P:                  R7      RR7      4       V P/                  R\        P0                  P3                  \        P4                  ! VV P8                  V P                  R7      RR7      4       V P/                  R\        P0                  P3                  \        P4                  ! VV P8                  V P6                  ,          \        P:                  R7      RR7      4       V P=                  R\        P4                  ! ^ \        P:                  R7      RR7       V P=                  R\        P4                  ! ^ \        P:                  R7      RR7       V'       d>   V P=                  R\        P>                  ! V P8                  V P                  R7      4       MR V n         RV n!        VP                  R4      e,   VP                  R 4      e   VR,          VR ,          8H  V n!        V PD                  V3V PF                  9  d   \        R!V PD                   R"V 24      hV PF                  V PD                  V3,          V n$        R # )%NzMTrying to use the marlin backend, but the runtime requirements were not met: FÚbackendz–Automatic Marlin selection keeps tile-misaligned shapes on the next compatible backend; request GPTQ_MARLIN explicitly to enable runtime tile padding.r9   ÚGPTQMODEL_MARLIN_USE_FP32T)Údefaultr,   r-   r/   r.   r0   r1   r2   r3   r5   r4   z[Kernel: GPTQMODEL_MARLIN_USE_FP32 is disabled. Marlin will use reduced-precision reduction.©Úis_row_parallelÚqweight©r9   )Úrequires_gradÚg_idx)ÚdatarH   ÚscalesÚqzerosÚ	workspace)Ú
persistentÚg_idx_sort_indicesÚnameÚlm_head_namez&Unsupported quantization config: bits=z, sym=éÿÿÿÿ© )%r   Ú
ValueErrorÚpopr   ÚGPTQ_MARLINÚAUTOÚAUTO_TRAINABLEr   ÚNotImplementedErrorÚgetr8   Úfloat16Úcompute_dtyper   Úfp32ÚsuperÚ__init__ÚlogÚwarnÚoncer   r-   r0   Úregister_parameterÚnnÚ	ParameterÚemptyÚpack_factorr1   Úint32Úregister_bufferÚzerosr2   Ú
is_lm_headr,   ÚTYPE_MAPÚweight_type)Úselfr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   ÚkwargsÚselected_backendÚscales_and_zp_sizeÚ	__class__s   &&&&&&&&&&&,  €r<   r_   ÚMarlinLinear.__init__c   s  ø€ ô #Ò.ÜØ_Ü*Ð+ð-óð ÷ ˜
 r¨;Ð&7Ô7ð ˆHà!Ÿ:™: i´×1DÑ1DÓEÐà¤§¡¬g×.DÑ.DÐEÔEÔNdØ÷O
ò O
ô &ð2óð ð $ŸZ™Z¨Ó0×AÐA´E·M±MˆÔÜÐ8À$ÔGˆŒ	ä‰Òñ 	Øð	à!ð	ð ð	ð ð		ð
 $ð	ð &ð	ð ð	ð "ð	ð %ð	ð ð	ð #ð	ð ò	ð �y�yˆyÜ�H‰H�M‰MØmôoô -¨XØ-1¯_©_Ø=B÷Dó Dð
 "&×!1Ñ!1°T·_±_Õ!DÑð "&×!1Ñ!1°T·_±_Õ!DÐð 	×ÑØÜ�H‰H×ÑÜ—’Ø×$Ñ$¨×(8Ñ(8Õ8Ø×%Ñ%ÜŸ+™+ôð
 $ð ó ô
	
ð 	×ÑØÜ�H‰H×Ñ¤E§K¢KØ× Ñ Ü—k‘kô%ð #ð ó $ô	
ð 	×ÑØÜ�H‰H×ÑÜ—’Ø&Ø×%Ñ%Ø×,Ñ,ôð
 $ð ó ô
	
ð 	×ÑØÜ�H‰H×ÑÜ—’Ø&Ø×%Ñ%¨×)9Ñ)9Õ9ÜŸ+™+ôð
 $ð ó ô
	
ð 	×ÑØœŸš Q¬e¯k©kÔ:Àuð 	ô 	
ð 	×ÑØ Ü�KŠK˜¤§¡Ô-Øð 	ô 	
÷ Ø× Ñ  ¬¯ª°d×6GÑ6GÐPT×PbÑPbÔ)cÕdàˆDŒIàˆŒØ�:‰:�fÓÒ)¨f¯j©j¸Ó.HÒ.TØ$ V�n°°~Õ0FÑFˆDŒOà�I‰I�sÐ 4§=¡=Ô0Üð %Ø%)§Y¡Y K¨v°c°Uð<ó =ð =ð  Ÿ=™=¨$¯)©)°SÐ)9Õ:ˆÖr?   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ©r+   Úreturn©r   r7   r   Ú	Exception)r:   r;   s   "€r<   r=   r>      s#   ø€ ÷ ñ ™e¡D©(±9Õ*=Ð$=Õ>ñ r?   c                ó8   € \         e   R\        \         4      3# R# )NF©TN)r   ÚImportError)Úclss   &r<   Úvalidate_onceÚMarlinLinear.validate_onceÿ   s   € ä"Ò.Øœ+Ô&=Ó>Ð>Ð>ØÐr?   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ru   rw   )r:   r;   s   "€r<   r=   r>     s#   ø€ ÷ 0ñ 0¡%©©h±yÕ.AÐ(AÕ"Bñ 0r?   c           
     ón  <€ \         SV `  ! R/ VB w  r#V'       g   W#3# VP                  R ^4      pVP                  R4      pVP                  R4      pVP                  RR4      pVP                  RR4      pVP                  R4      p	VP                  R4      p
V
\        P                  8X  Ed   \
        '       gù   \        V	\        P                  4      '       d3   V	P                  R8X  d"   \        P                  P                  V	4      3pMŽV	\        P                  8X  dx   \        ;QJ d9    . R	 \        \        P                  P                  4       4       4       F  NK  	  5M2! R	 \        \        P                  P                  4       4       4       4      pMRp\         V9   d   R\#        R
4      3# Ve   Vf   R# ^ V,          pW\,          ^ 8w  g   Wl,          ^ 8w  d   R\#        RV RV RV R24      3# T;'       d    VRV39  pV'       d&   \%        We4      '       g   R\#        RV RV R24      3# R# )r,   r0   r1   r.   Fr-   Údevicer9   Úcudac              3   ó`   "  € T F$  p\         P                  P                  V4      x € K&  	  R # 5i©N)r8   r‚   Úget_device_capability)Ú.0Úindexs   & r<   Ú	<genexpr>Ú)MarlinLinear._validate.<locals>.<genexpr>  s)   é € ð %á!A˜ô —J‘J×4Ñ4°U×;Ð;Û!Aùs   ‚,.úCGPTQ Marlin on compute capability 7.5 requires dtype=torch.float16.z:Marlin packed dimensions must be divisible by pack_factor=z; got K=z, N=Ú.zFMarlin activation-order weights require an aligned thread tile; got K=rS   rR   rz   )r^   Ú	_validaterZ   r8   Úbfloat16r&   Ú
isinstancer�   Útyper‚   r…   r   ÚCUDAÚtupleÚrangeÚdevice_countÚ_MARLIN_SM75_CAPABILITYrY   r   )r|   ÚargsÚokÚerrr,   r0   r1   r.   r-   r�   r9   Úcapabilitiesrg   Úeffective_desc_actrr   s   &,            €r<   rŒ   ÚMarlinLinear._validate  s  ø€ ä‘'Ò#Ñ+ dÑ+‰ˆßØ�7ˆNà�x‰x˜ Ó"ˆØ—h‘h˜}Ó-ˆØ—x‘x Ó/ˆØ—8‘8˜J¨Ó.ˆØ—X‘X˜l¨BÓ/ˆ
Ø—‘˜(Ó#ˆØ—‘˜Ó!ˆØ”E—N‘NÕ"¯7«7Ü˜&¤%§,¡,×/Ò/°F·K±KÀ6Ô4IÜ %§
¡
× @Ñ @ÀÓ HÐJ‘Øœ6Ÿ;™;Ô&ß$œuñ %ä!&¤u§z¡z×'>Ñ'>Ó'@Ô!Aó%Ÿu™uñ %ä!&¤u§z¡z×'>Ñ'>Ó'@Ô!Aó%ó  ‘ð
  "�Ü&¨,Ô6ØÔ1ØYóð ð ð Ò ,Ò"6ØÐà˜D•jˆàÕ$¨Ô)¨\Õ-GÈ1Ô-LØÔ-ðØ*˜m¨8°K°=ð AØ!�N !ð%óð ð ð &×MÐM¨*¸RÀÐ<MÑ*MÐçÔ&<Ø÷'
ò '
ð Ô-ðØ*˜m¨4°¨~¸Qð@óð ð ð
 Ðr?   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# )r+   r�   )r   r8   r�   )r:   r;   s   "€r<   r=   r>   9  s   ø€ ÷ =ñ =¡V©e¯l©lÕ%:ñ =r?   c                ó(  <€ \         SV `  V4       \        V\        P                  4      '       d   VP
                  MTR \        P                  39   d—   \        '       d   \        R4      h\        V\        4      '       d#   \        \        4      '       g   \        R4      hR# \        V\        P                  4      '       d   TMVP                  4       p \        V\        RR7       R# R#   \         d   p\        \        T4      4      ThRp?ii ; i)r‚   z'Marlin kernel is not supported on ROCm.z6Marlin kernel only supports compute capability >= 7.5.NúGPTQ Marlin©Úmin_capabilityÚbackend_name)r^   Úvalidate_devicerŽ   r8   r�   r�   r   r�   r&   rY   r   Ú_MARLIN_MIN_CAPABILITYÚto_torch_devicer#   rT   Ústr)r|   r�   ÚtargetÚexcrr   s   &&  €r<   r¡   ÚMarlinLinear.validate_device8  sÒ   ø€ ä‰Ñ Ô'Ü% f¬e¯l©l×;Ò;ˆF�KŠKÀÈVÔU[×U`ÑU`ÐLaÔaß‹wÜ)Ð*SÓTÐTÜ˜&¤&×)Ò)Ü<Ô=S×TÒTÜ-Ð.fÓgÐgÙÜ)¨&´%·,±,×?Ò?‘VÀV×E[ÑE[ÓE]ˆFð=Ü.ØÜ#9Ø!.÷ñ bøô ô =Ü)¬#¨c«(Ó3¸Ð<ûð=ús   ÃC, Ã,DÃ7DÄDc                óD  <a aaaa	€ S P                   P                  p\        V\        R R7      pV\        8X  d+   S P
                  \        P                  8w  d   \        R4      h\        S P
                  4      '       g&   \        R\        S P
                  4      ,           4      h\        S P                  RR7      S n        \        V4      S n        S P"                  S P$                  8X  d   RMS P"                  oS P                  '       d   S P&                  S P$                  uo	oM$\)        S P&                  S P$                  S4      w  o	oS	S3S P&                  S P$                  38X  d   RMS	S3S n        VV	V 3R lpVVV	V 3R lpS P                  '       d2   \-        \/        S R	4      4      w  op\1        S R	V3R
 l4       VS n        MB\5        S R	\7        V4      4       \        P8                  ! ^ \        P:                  VR7      S n        \5        S R\7        V4      4       \1        S RV4       \1        S RV4       \=        S R4      '       dH   S P>                  e:   \A        \C        S P>                  S P&                  S	4      4      S P>                  n"        \F        S
S `‘  4        R# )r�   rž   rŠ   z<Marlin torch.ops kernels are not properly installed. Error: FrD   Nc           	      óæ   <€ \        V P                  P                  4       SP                  SP                  SS4      p\        VSP                  SSSP                  SP                  R 7      V n        V # ))ÚpermÚsize_kÚsize_nÚnum_bitsr9   )	r   rJ   Ú
contiguousr1   r0   r   rO   r,   r\   )ÚxÚpaddedÚpadded_kÚpadded_nrn   s   & €€€r<   Útransform_w_qÚ-MarlinLinear.post_init.<locals>.transform_w_qx  sl   ø€ ä'Ø—‘×!Ñ!Ó#Ø×!Ñ!Ø× Ñ ØØóˆFô (¨Ø-1×-DÑ-DØ/7Ø/7Ø15·±Ø.2×.@Ñ.@ôBˆAŒFð ˆHr?   c                 ó¨   <€ \        V P                  P                  4       SP                  SP                  SSS4      p\        VSSSR 7      V n        V # ))r«   r¬   r-   )r   rJ   r®   r1   r0   r   )r¯   r°   Úmarlin_group_sizer±   r²   rn   s   & €€€€r<   Útransform_w_sÚ-MarlinLinear.post_init.<locals>.transform_w_s‰  sY   ø€ Ü&Ø—‘×!Ñ!Ó#Ø×!Ñ!Ø× Ñ ØØØ!óˆFô +ØØØØ,ô	ˆAŒFð ˆHr?   rI   c                 ó   <€ S# r„   rS   )Ú_rI   s   &€r<   Ú<lambda>Ú(MarlinLinear.post_init.<locals>.<lambda>�  s   ø€ ±er?   )r9   r�   rL   rF   rK   r2   rR   )%rF   r�   r#   r¢   r”   r\   r8   r[   rT   r    ÚModuleNotFoundErrorr!   r   r.   Ú	is_k_fullr   rM   Úrequested_group_sizer0   r1   r   Ú_marlin_tile_paddingr"   Úgetattrr   rO   Úsetattrr   rf   r6   Úhasattrr2   r   r   rJ   r^   Ú	post_init)rn   r�   Ú
capabilityr³   r·   rO   rI   r¶   r±   r²   rr   s   f     @@@@€r<   rÄ   ÚMarlinLinear.post_initL  s1  ý€ Ø—‘×$Ñ$ˆÜ3ØÜ1Ø&ô
ˆ
ð
 Ô0Ô0°T×5GÑ5GÌ5Ï=É=Ô5XÜØUóð ô (¨×(:Ñ(:×;Ò;Ü%ØNÜ& t×'9Ñ'9Ó:õ;óð ô
 *¨$¯-©-ÈÔOˆŒô 3°6Ó:ˆŒð
 ×(Ñ(¨D×,<Ñ,<Ô<ñ à×*Ñ*ð 	ð �=�=ˆ=Ø!%×!2Ñ!2°D×4DÑ4DÐˆH‘hä!1Ø×!Ñ!Ø× Ñ Ø!ó"ÑˆH�hð ˜(Ð#¨×(9Ñ(9¸4×;KÑ;KÐ'LÔLñ à˜HÐ%ð 	Ô!÷	÷"	ð 	ð$ �=�=ˆ=Ü(9¼'À$ÈÓ:PÓ(QÑ%ˆEÐ%Ü˜T 7¬OÔ<Ø&8ˆDÕ#ä�D˜'Ô#:¸6Ó#BÔCÜ&+§k¢k°!¼5¿9¹9ÈVÔ&TˆDÔ#ä��hÔ 7¸Ó ?Ô@ä˜˜y¨-Ô8Ü˜˜x¨Ô7ä�4˜× Ò  T§Y¡YÒ%:Ü0Ü˜tŸy™y¨$×*;Ñ*;¸XÓFóˆD�I‰IŒNô 	‰ÑÖr?   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r+   r¯   )r8   ÚTensor)r:   r;   s   "€r<   r=   r>   ¯  s   ø€ ÷ 4ñ 4™Ÿ™ñ 4r?   c                ó@  € V P                  V4      ^ 8X  d   V P                  V4      # VP                  V P                  P                  8w  d2   \	        V RV P                  P                  VP                  R7      4       V P                  ee   V P                  P                  VP                  8w  d@   V P                  P                  P                  VP                  R7      V P                  n        V P                  fµ   \        V P                  '       d   VP                  4       MTV P                  V P                  V P                  V P                  V P                  V P                   V P"                  V P$                  V P&                  V P(                  V P                  V P*                  RR7      pM¾\-        V P                  V P                  '       d   VP                  4       MTV P                  V P                  V P                  V P                  V P                  V P                   V P"                  V P$                  V P&                  V P(                  V P                  V P*                  RR7      pV P.                  '       d   V P.                  P1                  WR7      pV# )r   rK   rG   F)ÚinputÚweightÚweight_scaleÚ	weight_zprI   rO   rM   ÚwtypeÚoutput_size_per_partitionÚinput_size_per_partitionr¾   r2   Úuse_fp32_reduceÚuse_atomics)Útile_paddingrÊ   rË   rÌ   rÍ   rI   rO   rM   rÎ   rÏ   rÐ   r¾   r2   rÑ   rÒ   )r¯   Úout)Ú
input_rowsÚempty_linear_outputr9   rK   r$   Útor2   rJ   rÀ   r   rk   r®   rF   rL   rI   rO   rM   rm   r1   r0   r¾   r]   r   r5   Úapply)rn   r¯   rÔ   s   && r<   ÚforwardÚMarlinLinear.forward¯  s×  € ð �?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.ð �7‰7�d—k‘k×'Ñ'Ô'Ü˜d H¨d¯k©k¯n©nÀ1Ç7Á7¨nÓ.KÔLØ�9‰9Ò  T§Y¡Y§_¡_¸¿¹Ô%?Ø!ŸY™YŸ^™^×.Ñ.°Q·W±WÐ.Ó=ˆD�I‰IŒNð ×$Ñ$Ò,Ü*Ø(,¯¯¨�a—l‘l”n¸QØ—|‘|Ø!Ÿ[™[ØŸ+™+Ø—j‘jØ#'×#:Ñ#:ØŸ.™.Ø×&Ñ&Ø*.×*;Ñ*;Ø)-×)9Ñ)9ØŸ.™.Ø—Y‘YØ $§	¡	Ø!ô‰Cô" 2Ø!×6Ñ6Ø(,¯¯¨�a—l‘l”n¸QØ—|‘|Ø!Ÿ[™[ØŸ+™+Ø—j‘jØ#'×#:Ñ#:ØŸ.™.Ø×&Ñ&Ø*.×*;Ñ*;Ø)-×)9Ñ)9ØŸ.™.Ø—Y‘YØ $§	¡	Ø!ôˆCð$ �<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCàˆ
r?   )	rÀ   r2   r\   r]   rO   r¾   rk   rm   rM   )rR   é    é@   é€   )é   T)é   T)5Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rV   ÚSUPPORTS_BACKENDSr   ÚGPTQÚSUPPORTS_METHODSr
   ÚGPTQ_V2ÚMARLINÚSUPPORTS_FORMATSÚSUPPORTS_BITSÚSUPPORTS_GROUP_SIZEÚSUPPORTS_DESC_ACTÚSUPPORTS_SYMÚSUPPORTS_SHARDSÚSUPPORTS_TRAININGÚSUPPORTS_AUTO_PADDINGÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYÚ"SUPPORTS_OUT_FEATURES_DIVISIBLE_BYr   r�   ÚSUPPORTS_DEVICESr   ÚLINUXÚSUPPORTS_PLATFORMr8   rh   ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSr[   r�   ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEr%   Úuint4b8Ú	uint8b128rl   r_   Úclassmethodr}   rŒ   r¡   rÄ   rÙ   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rr   r;   s   @@r<   r(   r(   B   sg  ù‡ € Ø ×,Ñ,Ð-ÐØŸ™�}ÐØŸ™ R¨¯©¸¸V¿]¹]ÈBÐOÐØ˜�F€MÚ+ÐØ˜u˜ÐØ�6€LØ€OØÐà!ÐØ)*¨Ð%Ø*+¨Ð&àŸ™�}ÐØ!Ÿ™Ð(ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€OàÐð €Jð 	�<×'Ñ'Ø�<×)Ñ)ð€Hð Ø&+§k¡kØ%*Ø#÷M;õ M;ðx ÷ó ðð
 ÷0ò 0ó ð0ðd ÷=ò =ó ð=õ&a÷F4÷ 4ð 4r?   r(   c            
      ó  € . p \        ^ 4       Få  p. pV^,          pR F‘  p^V^,          ,          ^V^,          ,          ^,           ^V^,          ^,           ,          ^V^,          ^,           ,          ^,           3 F0  pVP                  ^V,          V,           ^V,          ,           4       K2  	  K“  	  \        ^4       F1  pT P                  V Uu. uF  qwRV,          ,           NK  	  up4       K3  	  Kç  	  \        P                  ! V 4      p \        P                  ! . RO4      pV P                  R4      RV3,          P                  4       p \        P                  ! V 4      p . p	\        ^4       F:  pT	P                  \        ^4       Uu. uF  qa^V,          ,           NK  	  up4       K<  	  . p
\        ^4       F2  pT
P                  R Uu. uF  p^V,          V,           NK  	  up4       K4  	  W	V
3# u upi u upi u upi )rÛ   é   ºNNN)r   é   )r   r+   rÞ   é   r  é   é   é   )rR   rß   )r   r  rß   é	   é   é   é   é   )	r’   ÚappendÚextendÚnpÚarrayÚreshapeÚravelr8   Ú
from_numpy)rª   ÚiÚperm1ÚcolÚblockÚrowÚjÚpÚ
interleaveÚ
scale_permÚscale_perm_singles              r<   Ú
_get_permsr  ç  s¬  € Ø€DÜ�2ŽYˆØˆØ�1�fˆÛˆEà�Q˜•U•Ø�Q˜•U•˜a•Ø�Q˜•U˜Q•Y•Ø�Q˜•U˜Q•Y• !Õ#ó	�ð —‘˜R #�X¨�^¨a°%­iÕ7Ö8óñ ô �q–ˆAØ�K‰K©eÓ4©e¨˜S 1�WŸ˜©eÑ4Ö5ó ñ ô �8Š8�D‹>€DÜ—’Ò2Ó3€JØ�<‰<˜Ó   J Õ/×5Ñ5Ó7€DÜ×Ò˜DÓ!€DØ€JÜ�1ŽXˆØ×Ñ¬e°A¬hÓ7©h¨˜q 1�uŸ9˜9©hÑ7Ö8ñ àÐÜ�1ŽXˆØ× Ñ Ñ5QÓ!RÑ5Q° ! a¥%¨!§) )Ñ5QÑ!RÖSñ àÐ.Ð.Ð.ùò 5ùò 8ùò "Ss   ÃG5ÆG:
ÇG?
c                 óp  € \         P                  ! V P                  ^ ,          V P                  ^,          ^,          3\         P                  V P                  RR7      p\        VP                  ^,          4       F8  pV^,          pV RV^,          3,          ^V,          ,	          ^,          VRV3&   K:  	  V# )r   F)r9   r�   rH   r  )r8   rj   ÚshapeÚint8r�   r’   )rL   Úunpacked_zerosr  r  s   &   r<   Úunpack_qzerosr$    s”   € Ü—[’[Ø	�‰�a�˜&Ÿ,™, q�/¨AÕ-Ð.Ü�j‰jØ�}‰}Øô	€Nô �^×)Ñ)¨!Õ,Ö-ˆØ�!�GˆØ"(¨¨C°1­H¨Õ"5¸!¸a½%Õ"@ÀCÕ!Gˆ�q˜#�vÓñ .ð Ðr?   c                 ór   € V P                   p\        V4      pV P                  pVP                  V^ R7      pV# )r   )Údim)rL   r$  r-   Úrepeat_interleave)ÚlayerrL   Úunpacked_qzerosr-   s   &   r<   Údequantize_qzerosr*    s;   € Ø�\‰\€FÜ# FÓ+€OØ×!Ñ!€JØ%×7Ñ7¸
ÈÐ7ÓJ€OàÐr?   )r  r  ):Útypingr   r   Únumpyr  r8   Úadapter.adapterr   r   Úmodels._constr   r   Únn_modules.qlinearr	   Úquantizationr
   r   Úutils.backendr   Ú	utils.envr   Úutils.loggerr   Úutils.marlinr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Úutils.marlin_scalar_typer%   Ú
utils.rocmr&   r`   r”   r¢   r(   r  r$  r*  Ú__all__rS   r?   r<   Ú<module>r8     sŠ   ð÷& #ã Û ç ,ß -Ý 1ß *Ý $Ý !Ý (÷÷ ÷ ÷ ÷ ÷ õ0 5Ý !ñ ƒn€ð !Ð Ø0Ð ôa�?ô aòJ/ò:òð Ð
‚r?   