Ë
    Q/æjS  ã                   óT  — d dl Z d dlZg d¢Ze j                  d„ «       Zd„ Zddej                  fd„Zddej                  fd„Zddej                  fd„Z	ddej                  fd	„Z
dej                  fd
„Zddej                  fd„Zddej                  fd„Zddej                  fd„Zy)é    N)	Úfallback_dispatcherÚsemi_sparse_valuesÚsemi_sparse_indicesÚsemi_sparse_tÚsemi_sparse_viewÚsemi_sparse_detachÚsemi_sparse_mmÚsemi_sparse_addmmÚsemi_sparse_linearc               #   ó`   K  — t         j                  j                  «       } 	 d –— ~ y # ~ w xY w­w©N)ÚtorchÚ_CÚ_DisableTorchDispatch)Úguards    úd/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/sparse/_semi_structured_ops.pyÚno_dispatchr      s&   è ø€ ä�H‰H×*Ñ*Ó,€EðÛáø‰Eüs   ‚.¢( ¦.¨+«.c                 óL   — t        «       5   | |Ž cd d d «       S # 1 sw Y   y xY wr   )r   )ÚfuncÚtypesÚargsÚkwargss       r   r   r      s#   € Ü	‹ñ Ù�Tˆ{÷÷ ò ús   ‹š#Úreturnc                 óL  — t        |«      dk(  sJ ‚|d   }t        |t        j                  j                  «      sJ ‚|j
                  €J ‚|j                  €6|j                  \  }}||z  dz  }|j
                  d | j                  |d«      S |j
                  j                  «       S ©Né   r   é   éÿÿÿÿ)
ÚlenÚ
isinstancer   ÚsparseÚSparseSemiStructuredTensorÚpackedÚmetaÚshapeÚviewÚdetach)r   r   r   r   ÚAÚmÚkÚnum_kept_elementss           r   r   r   "   sš   € Üˆt‹9˜Š>Ðˆ>ØˆQ‰€AÜ�aœŸ™×@Ñ@ÔAÐAÐAØ�8‰8ÐÐÐØ‡v�v€~Ø�w‰w‰ˆˆ1Ø ™E Q™JÐØ�x‰xÐ+Ð*Ð,×1Ñ1°!°RÓ8Ð8à�x‰x�‰Ó Ð ó    c                 óÐ  — t        |«      dk(  sJ ‚|d   }t        |t        j                  j                  «      sJ ‚|j
                  €J ‚|j                  €†|j                  \  }}||z  dz  }|j
                  |d  j                  |d«      }|j                  |j                  t        j                  k(  rt        j                  «      S t        j                  «      S |j                  S r   )r   r    r   r!   r"   r#   r$   r%   r&   ÚdtypeÚint32Úint16)	r   r   r   r   r(   r)   r*   r+   Úmetadatas	            r   r   r   /   s¿   € Üˆt‹9˜Š>Ðˆ>ØˆQ‰€AÜ�aœŸ™×@Ñ@ÔAÐAÐAØ�8‰8ÐÐÐØ‡v�v€~Ø�w‰w‰ˆˆ1Ø ™E Q™JÐØ—8‘8Ð-Ð.Ð/×4Ñ4°Q¸Ó;ˆØ�}‰}¨A¯G©G´u·{±{Ò,BœUŸ[™[ÓTÐTÌÏÉÓTÐTà�v‰vˆr,   c                 ó  — t        |«      dk(  sJ ‚|d   }t        |t        j                  j                  «      sJ ‚t        |j
                  «      dk(  sJ ‚|j                  t        j                  |j
                  d   |j
                  d   g«      |j                  |j                  |j                  |j                  |j                  �|j                  j                  dd«      nd |d   j                  |d   j                  ¬«      S )Nr   r   r   r   )r#   r$   Úpacked_tÚmeta_tÚcompressed_swizzled_bitmaskÚfuse_transpose_cusparseltÚalg_id_cusparselt)r   r    r   r!   r"   r%   Ú	__class__ÚSizer3   r4   r#   r$   r5   Ú	transposer6   r7   ©r   r   r   r   Úselfs        r   r   r   =   sâ   € Üˆt‹9˜Š>Ðˆ>Ø�‰7€DÜ�dœEŸL™L×CÑCÔDÐDÐDÜˆt�z‰z‹?˜aÒÐÐð �>‰>Ü�
‰
�D—J‘J˜r‘N D§J¡J¨q¡MÐ2Ó3Ø�}‰}Ø�[‰[Ø—‘Ø�y‰yà×+Ñ+Ð7ð %)×$DÑ$D×$NÑ$NÈqÐRSÔ$TàØ"& q¡'×"CÑ"CØ˜q™'×3Ñ3ð ó ð r,   c                 ó~   — t        |«      dk(  sJ ‚|\  }}t        |«      |j                  k7  rt        d|› d�«      ‚|S )Nr   z[`view` is not implemented for SparseSemiStructuredTensor, except for the dummy case (shape=ú))r   Útupler%   ÚNotImplementedError)r   r   r   r   r<   r%   s         r   r   r   S   sN   € Üˆt‹9˜Š>Ðˆ>Ø�K€Dˆ%ÜˆUƒ|�t—z‘zÒ!Ü!ØiÐjoÐipÐpqÐró
ð 	
ð €Kr,   c           	      óÔ   — t        |«      dk(  sJ ‚|d   }|j                  |j                  |j                  |j                  |j
                  |j                  |j                  d¬«      S )Nr   r   F)r%   r#   r$   r3   r4   r5   Úrequires_grad)r   r8   r%   r#   r$   r3   r4   r5   r;   s        r   r   r   ]   s`   € Üˆt‹9˜Š>Ðˆ>Ø�‰7€DØ�>‰>Ø�j‰jØ�{‰{Ø�Y‰YØ—‘Ø�{‰{Ø$(×$DÑ$DØð ó ð r,   c                 óZ  — t        |«      dk(  sJ ‚|\  }}|j                  dk7  s|j                  dk7  rt        d«      ‚t        |t        j
                  j                  «      r<|j                  \  }}|j                  |«      }|j                  |«      }	|	d d …d |…f   S |j                  «       }
t        |
t        j
                  j                  «      sJ ‚|j                  \  }}|j                  |«      }|
j                  |j                  «       «      j                  «       }	|	d |…d d …f   S )Nr   úD`SparseSemiStructuredTensor` matmul: Broadcasting is not implemented)r   Úndimr@   r    r   r!   r"   r%   Ú_pad_dense_inputÚ_mmÚt)r   r   r   r   r(   ÚBÚrowÚcolÚB_paddedÚresÚB_tÚA_paddeds               r   r	   r	   k   s  € Üˆt‹9˜Š>Ðˆ>Ø�D€A€qØ‡v�v�‚{�a—f‘f ’kÜ!ØRó
ð 	
ô �!”U—\‘\×<Ñ<Ô=Ø—7‘7‰ˆˆSØ×%Ñ% aÓ(ˆØ�e‰e�H‹oˆØ’1�d�s�d�7‰|Ðà�c‰c‹eˆÜ˜#œuŸ|™|×FÑFÔGÐGÐGØ—7‘7‰ˆˆSØ×%Ñ% aÓ(ˆØ�g‰g�h—j‘j“lÓ#×%Ñ%Ó'ˆØ�4�C�4š�7‰|Ðr,   c                 óL  — t        |«      dk(  sJ ‚|\  }}}|j                  dk7  s|j                  dk7  rt        d«      ‚|j                  dk7  rt        d|j                  › �«      ‚t	        |t
        j                  j                  «      rt        d«      ‚|j                  «       }t	        |t
        j                  j                  «      sJ ‚|j                  \  }}	|j                  |«      }
|j                  |
j                  «       |¬«      j                  «       }|d |…d d …f   S )Né   r   rD   r   zF`SparseSemiStructuredTensor` matmul: only bias dim=1 supported. Shape=zL`SparseSemiStructuredTensor` matmul: only operand B of `addmm` can be sparse)Úbias)r   rE   r@   r%   r    r   r!   r"   rH   rF   rG   )r   r   r   r   rR   r(   rI   rN   rJ   rK   rO   Úresults               r   r
   r
   €   s  € Üˆt‹9˜Š>Ðˆ>Ø�J€Dˆ!ˆQØ‡v�v�‚{�a—f‘f ’kÜ!ØRó
ð 	
ð ‡y�y�A‚~Ü!ØTÐUY×U_ÑU_ÐT`Ðaó
ð 	
ô �!”U—\‘\×<Ñ<Ô=Ü!ØZó
ð 	
ð �#‰#‹%€CÜ�cœ5Ÿ<™<×BÑBÔCÐCÐCØ�w‰w�H€CˆØ×#Ñ# AÓ&€HØ�W‰W�X—Z‘Z“\¨ˆWÓ-×/Ñ/Ó1€FØ�$�3�$š�'‰?Ðr,   c                 ó4  — t        |«      dv sJ ‚|d d \  }}t        |«      dk(  r|d   nd }|j                  }|j                  d|d   «      }|€||j                  «       z  }	nt	        d d |||j                  «       g¬«      }	 |	j                  g |d d ¢d‘­Ž S )N)r   rQ   r   rQ   r   )r   r   r   )r   r%   r&   rH   r
   )
r   r   r   r   r(   rI   rR   r%   ÚA_2drM   s
             r   r   r   —   sª   € Üˆt‹9˜ÑÐÐØ��ˆ8�D€A€qÜ˜$“i 1’nˆ4�Š7¨$€Dà�G‰G€EØ�6‰6�"�e˜B‘iÓ €Dà€|Ø�Q—S‘S“U‰l‰äØØØ˜˜aŸc™c›eÐ$ô
ˆð ˆ3�8‰8Ð$�U˜3˜B�ZÐ$ Ò$Ð$r,   )© N)Ú
contextlibr   Ú__all__Úcontextmanagerr   r   ÚTensorr   r   r   r   r   r	   r
   r   rV   r,   r   ú<module>r[      s±   ðã ã ò
€ð ×Ññó ðòñ

!¸U¿\¹\ó 
!ñ¸e¿l¹ló ñ¸¿¹ó ñ,¸5¿<¹<ó ð°U·\±\ó ñ¸¿¹ó ñ*¸E¿L¹Ló ñ.%¸U¿\¹\ô %r,   