+
    "Ý³jF&  ã                   ó   € ^ RI HtHtHt ^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht ]P                  P                  t]	! R4      R R l4       t]! R4      R	 R
 l4       t]	! R4      R R l4       t]! R4      R R l4       t]	! R4      R R l4       t]! R4      R R l4       t ! R R]4      t]P*                  t]P,                  t]! ]P.                  P0                  4      R 4       t]! ]P4                  P0                  4      R 4       t]! ]P8                  P:                  4      R 4       t]! ]P>                  P@                  4      R 4       t!]! ]PD                  P0                  4      R 4       t#]! ]PH                  P0                  4      R 4       t%]! ]PL                  P0                  4      R 4       t']! ]PP                  P0                  4      R 4       t)]! ]PT                  PV                  PX                  4      R 4       t-R# ) é    )ÚListÚOptionalÚTupleN)Úreturn_and_correct_aliasing)Úregister_custom_opÚregister_custom_op_impl)ÚTorchAOBaseTensorzblocksparse::bsr_to_densec                ó°   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\        R\         P                  /# ©é   Úcrow_indicesÚcol_indicesÚvaluesÚMÚKÚreturn©ÚtorchÚTensorÚint)Úformats   "Ú]/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/sparsity/blocksparse.pyÚ__annotate__r      sT   € ÷ 	ñ 	Ü—,‘,ð	ä—‘ð	ô �L‰Lð	ô ð		ô
 ð	ô ‡\�\ñ	ó    c                 óR   € \         P                  ! WW#V3R 7      P                  4       # ))r   r   r   Úsize)r   Úsparse_bsr_tensorÚto_dense©r   r   r   r   r   s   &&&&&r   Úbsr_to_denser       s)   € ô ×"Ò"Ø!À6ÐTUÐPVôç�hƒjðr   c                ó°   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\        R\         P                  /# r   r   )r   s   "r   r   r       s\   € ÷ Iñ IÜ—,‘,ðIä—‘ðIô �L‰LðIô ð	Iô
 ðIô ‡\�\ñIr   c                 ó^   € \         P                  ! W43VP                  VP                  R 7      # )©ÚdtypeÚdevice)r   Úemptyr$   r%   r   s   &&&&&r   Úbsr_to_dense_abstractr'      s!   € ô �;Š;˜�v V§\¡\¸&¿-¹-ÔHÐHr   zblocksparse::int_addmmc                óø   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  /# ©r   r   r   r   ÚAÚ
left_alphaÚright_alphar   ©r   r   )r   s   "r   r   r   +   sj   € ÷ 
ñ 
Ü—,‘,ð
ä—‘ð
ô �L‰Lð
ô ‡|�|ð	
ô
 —‘ð
ô —‘ð
ô ‡\�\ñ
r   c                 óª  € ^ RI Hp ^ RIHp VP                  \
        P                  8X  g   Q hVP                  R,          pVP                  R,          p	VP                  R,          p
\
        P                  ! WW(V	3R7      pV! \        W³4      pVP                  WÈV
3,           \
        P                  R7      pV! VVV^^ VVVR7      P                  4       # )r   )Úbroadcast_batch_dims©Úbsr_dense_addmm©r   )r$   )ÚalphaÚbetaÚoutr+   r,   éÿÿÿÿéþÿÿÿ)Útorch.sparse._triton_opsr/   Útorchao.kernel.bsr_triton_opsr1   r$   r   Úint8Úshaper   Úblocksparse_int_addmmÚ	new_emptyÚbfloat16Út)r   r   r   r*   r+   r,   r/   r1   r   r   ÚNÚ
weight_bsrÚoriginal_batch_dims_broadcastedr5   s   &&&&&&        r   r<   r<   *   sÀ   € õ >å=à�<‰<œ5Ÿ:™:Ô%Ð%Ð%Ø×Ñ˜Õ€AØ	�‰��€AØ	�‰��€AÜ×(Ò(¨ÀFÐUVÐQWÔX€JÙ&:Ü˜zó'Ð#ð �+‰+Ð5¸A¸Õ>ÄeÇnÁnˆ+Ó
U€CÙØØØ	ØØØØØô	÷ �aƒcð	
r   c                óø   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  /# r)   r-   )r   s   "r   r   r   M   ss   € ÷ Jñ JÜ—,‘,ðJä—‘ðJô �L‰LðJô ‡|�|ð	Jô
 —‘ðJô —‘ðJô ‡\�\ñJr   c                 óÎ   € VP                   R,          pVP                   R,          p\        P                  ! Wv3\        P                  VP                  R7      P                  4       # )é   r#   r6   )r;   r   r&   r>   r%   r?   )r   r   r   r*   r+   r,   r@   r   s   &&&&&&  r   Úblocksparse_int_addmm_abstractrF   L   sG   € ð 	
�‰��€AØ×Ñ˜Õ€Aä�;Š;˜�v¤U§^¡^¸A¿H¹HÔE×GÑGÓIÐIr   zblocksparse::addmmc                óð   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\        R\        R\         P                  R\         P                  /# ©	r   Úx_paddedr   r   r   r   r   Úbiasr   r   )r   s   "r   r   r   \   sp   € ÷ ñ Ü�l‰lðä—,‘,ðô —‘ðô �L‰Lð	ô
 ðô ðô �,‰,ðô ‡\�\ñr   c           	      ó¸   € ^ RI Hp Ve   Q h\        P                  ! WW4V3R7      pV P                  ^,          p	V P                  WI34      p
V! V
VV ^^ V
R7       V
# )r   r0   r2   )r3   r4   r5   )r9   r1   r   r   r;   r=   )rI   r   r   r   r   r   rJ   r1   ÚbsrÚN_paddedr5   s   &&&&&&&    r   Úblocksparse_addmmrN   [   sh   € õ >àŠ<Ðˆ<Ü
×
!Ò
! ,¸VÈaÈ&Ô
Q€CØ�~‰~˜aÕ €HØ
×
Ñ
˜a˜]Ó
+€CÙØØØØØØõð €Jr   c                óð   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\        R\        R\         P                  R\         P                  /# rH   r   )r   s   "r   r   r   w   sp   € ÷ 
-ñ 
-Ü�l‰lð
-ä—,‘,ð
-ô —‘ð
-ô �L‰Lð	
-ô
 ð
-ô ð
-ô �,‰,ð
-ô ‡\�\ñ
-r   c                 óL   € V P                   ^,          pV P                  WG34      # ©rE   )r;   r=   )rI   r   r   r   r   r   rJ   rM   s   &&&&&&& r   Úblocksparse_addmm_abstractrR   v   s%   € ð �~‰~˜aÕ €HØ×Ñ˜q˜mÓ,Ð,r   c                   óª   a € ] tR t^…t o . ROt]RV 3R lR ll4       tV 3R lR ltV 3R lR lt]	V 3R lR l4       t
]	R	 4       tR
 tV 3R ltRtV tR# )ÚBlockSparseTensorc                ó¾   <€ V ^8„  d   QhRS[ P                  RS[RS[S[ P                  ,          RS[S[ P                  ,          RS[S[ P                  ,          RS[/# )r   r;   Ú	blocksizeÚbsr_crow_indicesÚbsr_col_indicesÚ
bsr_valuesÚrequires_grad)r   ÚSizer   r   r   Úbool)r   Ú__classdict__s   "€r   r   ÚBlockSparseTensor.__annotate__Ž   sf   ø€ ÷ ñ á�z‰zðñ ðñ #¡5§<¡<Õ0ð	ñ
 "¡%§,¡,Õ/ðñ ™UŸ\™\Õ*ðñ ñr   c                óê   € Vf   \        R4      hTpRVP                  RVP                  RVP                  RV/p\        P
                  P                  ! W3/ VB p	W)n        W9n        WYn	        WIn
        V	# )NzCNo values passed to BlockSparseTensor: bsr_values must be provided!r%   r$   ÚlayoutrZ   )Ú
ValueErrorr%   r$   r`   r   r   Ú_make_wrapper_subclassrV   rW   rY   rX   )
Úclsr;   rV   rW   rX   rY   rZ   Úprevious_tensorÚkwargsÚtensors
   &&&&&&&   r   Ú__new__ÚBlockSparseTensor.__new__�   sˆ   € ð ÒÜØUóð ð )ˆOð �o×,Ñ,Ø�_×*Ñ*Ø�o×,Ñ,Ø˜]ð	
ˆô —‘×4Ò4°SÑJÀ6ÑJˆØ$ÔØ"2ÔØ&ÔØ!0ÔØˆr   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   )Ústr)r   r]   s   "€r   r   r^   «   s   ø€ ÷ @ñ @™#ñ @r   c                óv   € \        V R 4      '       g   Q hV P                  P                   RV P                   R2# )r;   z(shape=Ú))ÚhasattrÚ	__class__Ú__name__r;   )Úselfs   &r   Ú__repr__ÚBlockSparseTensor.__repr__«   s7   € Ü�t˜W×%Ò%Ð%Ð%Ø—.‘.×)Ñ)Ð*¨'°$·*±*°¸QÐ?Ð?r   c                ót   <€ V ^8„  d   QhRS[ S[S[,          S[ S[P                  S[S[3,          3,          /# rj   )r   r   rk   r   r[   r\   r   )r   r]   s   "€r   r   r^   ¯   s2   ø€ ÷ *ñ *¡E©$©s­)±U¹5¿:¹:ÁtÉSÐ;PÕ5QÐ*QÕ$Rñ *r   c                ó–   a € \        \        V 3R  lS P                  4      4      pS P                  S P                  S P
                  3pW3# )c                 ó    <€ \        SV 4      R J# )N)Úgetattr)Úxrq   s   &€r   Ú<lambda>Ú6BlockSparseTensor.__tensor_flatten__.<locals>.<lambda>±   s   ø€ œW T¨1Ó-°TÑ9r   )ÚlistÚfilterÚ	__slots__r;   rZ   rV   )rq   Úinner_tensorsÚtensor_metas   f  r   Ú__tensor_flatten__Ú$BlockSparseTensor.__tensor_flatten__¯   sA   ø€ ÜÜÔ9¸4¿>¹>ÓJó
ˆð —z‘z 4×#5Ñ#5°t·~±~ÐFˆØÐ)Ð)r   c                óh   <€ V ^8„  d   QhRS[ S[P                  S[S[3,          RS[P
                  /# )r   r   r   )r   r   r[   r\   r   r   )r   r]   s   "€r   r   r^   ·   s5   ø€ ÷ 
ñ 
ñ ™5Ÿ:™:¡t©SÐ0Õ1ð
ñ 
�‰ñ
r   c           
     óˆ   € Vw  rVpV ! VVVP                  R R4      VP                  RR4      VP                  RR4      VR7      # )rW   NrX   rY   ©r;   rV   rW   rX   rY   rZ   )Úget)rc   r~   r   Ú
outer_sizeÚouter_strider;   rZ   rV   s   &&&&&   r   Ú__tensor_unflatten__Ú&BlockSparseTensor.__tensor_unflatten__¶   sV   € ð +6Ñ'ˆ˜iáØØØ*×.Ñ.Ð/AÀ4ÓHØ)×-Ñ-Ð.?ÀÓFØ$×(Ñ(¨°tÓ<Ø'ô
ð 	
r   c           	     ó¨   € VP                  V4      pV ! VP                  VVP                  4       VP                  4       VP	                  4       R R7      # )Fr„   )Úto_sparse_bsrr;   r   r   r   )rc   Údense_tensorrV   Ú
bsr_tensors   &&& r   Ú
from_denseÚBlockSparseTensor.from_denseÉ   sR   € à!×/Ñ/°	Ó:ˆ
áØ×$Ñ$ØØ'×4Ñ4Ó6Ø&×2Ñ2Ó4Ø!×(Ñ(Ó*Øô
ð 	
r   c           	     óÀ   € \        V P                  V P                  V! V P                  4      V! V P                  4      V! V P
                  4      V P                  R 7      # )r„   )rT   r;   rV   rW   rX   rY   rZ   )rq   Úfuncs   &&r   Úapply_fn_to_shardÚ#BlockSparseTensor.apply_fn_to_shardÖ   sN   € Ü Ø—*‘*Ø—n‘nÙ! $×"7Ñ"7Ó8Ù  ×!5Ñ!5Ó6Ù˜DŸO™OÓ,Ø×,Ñ,ô
ð 	
r   c                ó¶   <€ V ^8„  d   Qh/ S[ S[P                  ,          ;R&   S[ S[P                  ,          ;R&   S[ S[P                  ,          ;R&   S[;R&   # )r   rW   rX   rY   rV   )r   r   r   r   )r   r]   s   "€r   r   r^   …   sO   ø‡ ‚ Ù™uŸ|™|Õ,Ñ,ñ á™eŸl™lÕ+Ñ+ñ ñ ™Ÿ™Õ&Ñ&ñ ñ �Nò	 r   © N)rW   rX   rY   )F)rp   Ú
__module__Ú__qualname__Ú__firstlineno__r}   Ústaticmethodrg   rr   r€   Úclassmethodrˆ   rŽ   r’   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r]   s   @r   rT   rT   …   so   ø‡ € ò F€Ià÷ñ ó ð÷:@ð @÷*ð *ð ÷
ó ð
ð$ ñ

ó ð

ò
÷c ƒ r   rT   c                 ób   € \        WW2^ ,          P                  \        P                  4      4      # ©r   )r   r’   r   Údetach©r‘   ÚtypesÚargsre   s   &&&&r   Úblock_sparse_detachr¤   æ   s'   € ä&Ø�F �G×5Ñ5´e·l±lÓCóð r   c           	      óœ  € \        V4      ^8X  g   Q h\        V4      ^ 8X  g   Q hVR,          ^8X  g   Q hV^ ,          pVP                  4       ^8X  g   Q hVP                  '       d   Q h\        VP                  R,           VP
                  VP                  4       VP                  4       VP                  4       P                  R4      RR7      # )r   F)rZ   r6   rQ   )
ÚlenÚdimrZ   rT   r;   rV   r   r   r   Ú	unsqueeze)r‘   r¢   r£   re   rL   s   &&&& r   Úblock_sparse_unsqueezer©   í   s®   € äˆt‹9˜Œ>Ðˆ>Üˆv‹;˜!ÔÐÐØ��8�qŒ=Ðˆ=Ø
ˆq�'€CØ�7‰7‹9˜Œ>Ðˆ>Ø× × Ð Ð Ð ÜØ�	‰	�DÕØ�‰Ø×ÑÓØ�‰ÓØ�
‰
‹×Ñ˜rÓ"Øôð r   c                 óä   € \        V4      ^8X  g   Q h\        V4      ^ 8X  g   Q hVw  rER p\        V\        P                  4      '       d   \        V\        4      '       d	   V! WT4      # V! WE4      # )r   c                 óÐ  € \        V \        4      '       g   Q h\        V\        P                  4      '       g   Q hV P	                  4       ^8X  g   Q hVP	                  4       ^8X  g   Q hV P
                  '       d   Q hVP                  ^ 4      ^8X  g   Q hVP                  VP                  ^ 4      VP                  ^4      V P                  ,          V P                  ^4      pVP                  ^ ^4      P                  ^ V P                  4       4      pV P                  4       V,          p\        V P                  V P                  V P                  4       V P                  4       V4      # )é   )Ú
isinstancerT   r   r   r§   rZ   r   ÚviewrV   Ú	transposeÚindex_selectr   r   r;   r   )rL   r?   Ú	t_blockedÚmasked_tÚ
new_valuess   &&   r   Úmy_mulÚ block_sparse_mul.<locals>.my_mul  s  € Ü˜#Ô0×1Ò1Ð1Ð1Ü˜!œUŸ\™\×*Ò*Ð*Ð*Ø�w‰w‹y˜AŒ~Ðˆ~Ø�u‰u‹w˜!Œ|Ðˆ|Ø×$×$Ð$Ð$Ð$Ø�v‰v�a‹y˜AŒ~Ðˆ~Ø—F‘F˜1Ÿ6™6 !›9 a§f¡f¨Q£i°3·=±=Õ&@À#Ç-Á-ÐQRÓSˆ	Ø×&Ñ& q¨!Ó,×9Ñ9¸!¸S¿_¹_Ó=NÓOˆØ—Z‘Z“\ HÕ,ˆ
Ü Ø�I‰I�s—}‘} c×&6Ñ&6Ó&8¸#¿/¹/Ó:KÈZó
ð 	
r   )r¦   r­   r   r   rT   )r‘   r¢   r£   re   rL   r?   r´   s   &&&&   r   Úblock_sparse_mulr¶   ÿ   sd   € äˆt‹9˜Œ>Ðˆ>Üˆv‹;˜!ÔÐÐØ�F€Cò
ô �#”u—|‘|×$Ò$¬°AÔ7H×)IÒ)IÙ�a‹~ÐÙ�#‹>Ðr   c                 ó.  € Vw  rE\        V4      \        8X  g   Q h\        V4      ^8X  g   Q hV^ ,          pV^8X  g   Q h\        P                  P
                  P                  VP                  4       VP                  4       VP                  ^ ,          4      # rQ   )
Útyper{   r¦   r   ÚopsÚblocksparseÚsumr   r   r;   )r‘   r¢   r£   re   rL   r§   s   &&&&  r   Úblock_sparse_sumr¼     sv   € à�H€CÜ�‹9œÔÐÐÜˆs‹8�qŒ=Ðˆ=Ø
ˆa�&€CØ�!Œ8€Oˆ8Ü�9‰9× Ñ ×$Ñ$ S§Z¡Z£\°3×3CÑ3CÓ3EÀsÇyÁyÐQRÅ|ÓTÐTr   c                 óD   € V^ ,          P                   P                  4       # rŸ   )rY   r    r¡   s   &&&&r   Úblock_sparse_valuesr¾   "  s   € à��7×Ñ×$Ñ$Ó&Ð&r   c                 óD   € V^ ,          P                   P                  4       # rŸ   )rW   r    r¡   s   &&&&r   Úblock_sparse_crow_indicesrÀ   '  s   € à��7×#Ñ#×*Ñ*Ó,Ð,r   c                 óD   € V^ ,          P                   P                  4       # rŸ   )rX   r    r¡   s   &&&&r   Úblock_sparse_col_indicesrÂ   ,  s   € à��7×"Ñ"×)Ñ)Ó+Ð+r   c                 óJ   € V^ ,          P                   P                  ^ ,          # rŸ   )rY   r;   r¡   s   &&&&r   Úblock_sparse__nnzrÄ   1  s   € à��7×Ñ×#Ñ# AÕ&Ð&r   c           	      ó¤  € Vw  rEpVP                  RVP                  R4      4      P                  4       pVP                  ^ ,          pVP                  ^,          p	\        P
                  P                  P                  VVP                  4       VP                  4       VP                  4       VV	R4      p
V
P                  4       pVf   V# W¶,           # )rE   Nr6   )Úreshaper   r?   r;   r   r¹   rº   Úaddmmr   r   r   )r‘   r¢   r£   re   Úx_origÚwrJ   rx   r   r   r5   Úout_origs   &&&&        r   Úblock_sparse_linearrË   6  s§   € à�O€FˆtØ�‰�r˜6Ÿ;™; r›?Ó+×-Ñ-Ó/€AØ	�‰��
€AØ	�‰��
€Aä
�)‰)×
Ñ
×
%Ñ
%Ø	Ø	�‰ÓØ	�‰‹Ø	�‰‹
Ø	Ø	Øó€Cð �u‰u‹w€HØ‚|Øˆà�?Ðr   ).Útypingr   r   r   r   Útorch.utils._python_dispatchr   Útorchao.opsr   r   Útorchao.utilsr	   r¹   Úatenr    r'   r<   rF   rN   rR   rT   Ú
implementsÚimplements_torch_functionr    Údefaultr¤   r¨   r©   Úmulr   r¶   r»   Údim_IntListr¼   r   r¾   r   rÀ   r   rÂ   Ú_nnzrÄ   ÚnnÚ
functionalÚlinearrË   r•   r   r   Ú<module>rÚ      s5  ð÷ )Ñ (ã Ý Dç CÝ +à‡y�y‡~�~€ñ Ð4Ó5ô	ó 6ð	ñ Ð/Ó0ôIó 1ðIñ Ð1Ó2ô
ó 3ð
ñB Ð,Ó-ôJó .ðJñ Ð-Ó.ôó /ðñ4 Ð(Ó)ô
-ó *ð
-ôY
Ð)ô Y
ðz ×)Ñ)€
Ø-×GÑGÐ ñ ˆD�K‰K×ÑÓ ñó !ðñ ˆD�N‰N×"Ñ"Ó#ñó $ðñ" ˆD�H‰H�O‰OÓñó ðñ0 ˆD�H‰H× Ñ Ó!ñUó "ðUñ ˆD�K‰K×ÑÓ ñ'ó !ð'ñ ˆD×Ñ×%Ñ%Ó&ñ-ó 'ð-ñ ˆD×Ñ×$Ñ$Ó%ñ,ó &ð,ñ ˆD�I‰I×ÑÓñ'ó ð'ñ ˜5Ÿ8™8×.Ñ.×5Ñ5Ó6ñó 7òr   