Ë
    ÌÓ^jl)  ã                   óÜ  — 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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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_linearÚsemi_sparse_scaled_mmÚsemi_sparse_cloneÚsemi_sparse_toÚsemi_sparse_to_copyc               #   ó`   K  — t         j                  j                  «       } 	 d –— ~ y # ~ w xY w­w©N)ÚtorchÚ_CÚ_DisableTorchDispatch)Úguards    úl/var/www/ramen.bs-engineer-server.com/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                 óâ  — t        |«      dk7  rt        dt        |«      › �«      ‚|d   }t        |t        j                  j
                  «      s!t        dt        |«      j                  › �«      ‚|j                  €t        d«      ‚|j                  €D|j                  \  }}||z  dz  }|j                  j                  «       d | j                  |d«      S |j                  j                  «       S ©Né   úexpected 1 arg, got r   ú)expected SparseSemiStructuredTensor, got úA.packed must not be Noneé   éÿÿÿÿ)ÚlenÚAssertionErrorÚ
isinstancer   ÚsparseÚSparseSemiStructuredTensorÚtypeÚ__name__ÚpackedÚmetaÚshapeÚravelÚviewÚdetach)r   r   r   r   ÚAÚmÚkÚnum_kept_elementss           r   r   r   &   s×   € Ü
ˆ4ƒy�A‚~ÜÐ3´C¸³I°;Ð?Ó@Ð@ØˆQ‰€AÜ�aœŸ™×@Ñ@ÔAÜØ7¼¸Q»×8HÑ8HÐ7IÐJó
ð 	
ð 	‡x�xÐÜÐ8Ó9Ð9Ø‡v�v€~Ø�w‰w‰ˆˆ1Ø ™E Q™JÐØ�x‰x�~‰~ÓÐ 3Ð!2Ð4×9Ñ9¸!¸RÓ@Ð@à�x‰x�‰Ó Ð ó    c                 óf  — t        |«      dk7  rt        dt        |«      › �«      ‚|d   }t        |t        j                  j
                  «      s!t        dt        |«      j                  › �«      ‚|j                  €t        d«      ‚|j                  €”|j                  \  }}||z  dz  }|j                  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-   r.   r/   r0   r1   ÚdtypeÚint32Úint16)	r   r   r   r   r3   r4   r5   r6   Úmetadatas	            r   r   r   8   sü   € Ü
ˆ4ƒy�A‚~ÜÐ3´C¸³I°;Ð?Ó@Ð@ØˆQ‰€AÜ�aœŸ™×@Ñ@ÔAÜØ7¼¸Q»×8HÑ8HÐ7IÐJó
ð 	
ð 	‡x�xÐÜÐ8Ó9Ð9Ø‡v�v€~Ø�w‰w‰ˆˆ1Ø ™E Q™JÐØ—8‘8—>‘>Ó#Ð$5Ð$6Ð7×<Ñ<¸QÀÓCˆØ�}‰}¨A¯G©G´u·{±{Ò,BœUŸ[™[ÓTÐTÌÏÉÓTÐTà�v‰vˆr7   c                 ó¸  — t        |«      dk7  rt        dt        |«      › �«      ‚|d   }t        |t        j                  j
                  «      s!t        dt        |«      j                  › �«      ‚t        |j                  «      dk7  r"t        dt        |j                  «      › d�«      ‚|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$   zexpected 2D tensor, got ÚDr%   )r-   r.   Úpacked_tÚmeta_tÚcompressed_swizzled_bitmaskÚfuse_transpose_cusparseltÚalg_id_cusparselt)r&   r'   r(   r   r)   r*   r+   r,   r/   Ú	__class__ÚSizer?   r@   r-   r.   rA   Ú	transposerB   rC   ©r   r   r   r   Úselfs        r   r   r   K   s+  € Ü
ˆ4ƒy�A‚~ÜÐ3´C¸³I°;Ð?Ó@Ð@Ø�‰7€DÜ�dœEŸL™L×CÑCÔDÜØ7¼¸T»
×8KÑ8KÐ7LÐMó
ð 	
ô ˆ4�:‰:ƒ˜!ÒÜÐ7¼¸D¿J¹J»Ð7HÈÐJÓKÐKð
 �>‰>Ü�
‰
�D—J‘J˜r‘N D§J¡J¨q¡MÐ2Ó3Ø�}‰}Ø�[‰[Ø—‘Ø�y‰yð ×/Ñ/Ð;ð ×,Ñ,×6Ñ6°q¸!Ô<àà"& q¡'×"CÑ"CØ˜q™'×3Ñ3ð ó ð r7   c                 ó¨   — t        |«      dk7  rt        dt        |«      › �«      ‚|\  }}t        |«      |j                  k7  rt	        d|› d�«      ‚|S )Nr$   úexpected 2 args, got z[`view` is not implemented for SparseSemiStructuredTensor, except for the dummy case (shape=ú))r&   r'   Útupler/   ÚNotImplementedError)r   r   r   r   rH   r/   s         r   r   r   i   s`   € Ü
ˆ4ƒy�A‚~ÜÐ4´S¸³Y°KÐ@ÓAÐAØ�K€Dˆ%ÜˆUƒ|�t—z‘zÒ!Ü!ØiÐjoÐipÐpqÐró
ð 	
ð €Kr7   c                 ó*  — t        |«      dk7  rt        dt        |«      › �«      ‚|d   }|j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  d¬«	      S )Nr    r!   r   F©	r/   r-   r.   r?   r@   rA   rB   rC   Úrequires_grad)r&   r'   rD   r/   r-   r.   r?   r@   rA   rB   rC   rG   s        r   r   r   t   s„   € Ü
ˆ4ƒy�A‚~ÜÐ3´C¸³I°;Ð?Ó@Ð@Ø�‰7€DØ�>‰>Ø�j‰jØ�{‰{Ø�Y‰YØ—‘Ø�{‰{Ø$(×$DÑ$DØ"&×"@Ñ"@Ø×0Ñ0Øð ó 
ð 
r7   c                 óâ  — t        |«      dk7  rt        dt        |«      › �«      ‚|\  }}|j                  dk7  s|j                  dk7  rt        d«      ‚t	        |t
        j                  j                  «      r|j                  |«      S |j                  «       }t	        |t
        j                  j                  «      s!t        dt        |«      j                  › �«      ‚|j                  |d¬«      S )Nr$   rJ   úD`SparseSemiStructuredTensor` matmul: Broadcasting is not implementedr"   T)Úshould_transpose_dense)r&   r'   ÚndimrM   r(   r   r)   r*   Ú_mmÚtr+   r,   )r   r   r   r   r3   ÚBÚB_ts          r   r	   r	   …   sË   € Ü
ˆ4ƒy�A‚~ÜÐ4´S¸³Y°KÐ@ÓAÐAØ�D€A€qØ‡v�v�‚{�a—f‘f ’kÜ!ØRó
ð 	
ô �!”U—\‘\×<Ñ<Ô=Ø�u‰u�Q‹xˆà�c‰c‹eˆÜ˜#œuŸ|™|×FÑFÔGÜ Ø;¼DÀ»I×<NÑ<NÐ;OÐPóð ð �w‰w�q°ˆwÓ6Ð6r7   c                 óF  — t        |«      dk7  rt        dt        |«      › �«      ‚|\  }}}|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!t        dt        |«      j                  › �«      ‚|j                  \  }}	|j                  ||d	¬
«      S )Né   zexpected 3 args, got r$   rR   r    zF`SparseSemiStructuredTensor` matmul: only bias dim=1 supported. Shape=zL`SparseSemiStructuredTensor` matmul: only operand B of `addmm` can be sparser"   T)ÚbiasrS   )r&   r'   rT   rM   r/   r(   r   r)   r*   rV   r+   r,   rU   )
r   r   r   r   r[   r3   rW   rX   ÚrowÚ_cols
             r   r
   r
   ˜   s  € Ü
ˆ4ƒy�A‚~ÜÐ4´S¸³Y°KÐ@ÓAÐAØ�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ÜØ7¼¸S»	×8JÑ8JÐ7KÐLó
ð 	
ð —‘�I€CˆØ�7‰7�1˜4¸ˆ7Ó=Ð=r7   c                 ó^  — t        |«      dvrt        dt        |«      › �«      ‚|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$   rZ   zexpected 2 or 3 args, got r$   rZ   r%   )r   r   r   )r&   r'   r/   r1   rV   r
   )
r   r   r   r   r3   rW   r[   r/   ÚA_2dÚress
             r   r   r   ±   s»   € Ü
ˆ4ƒy˜ÑÜÐ9¼#¸d»)¸ÐEÓFÐFØ��ˆ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Ð$ Ò$Ð$r7   c                 ó\  — |d d \  }}}}}}	}
|j                   t        j                  k7  rt        d|j                   › �«      ‚|j                   t        j                  k7  rt        d|j                   › �«      ‚t	        |t        j
                  j                  «      s!t        dt        |«      j                  › �«      ‚|j                  €t        d«      ‚|j                  «       dk7  s|j                  «       dk7  r-t        d|j                  «       › d|j                  «       › �«      ‚|j                   t        j                  k7  s|j                   t        j                  k7  r%t        d	|j                   › d|j                   › �«      ‚t        j                  |j                  |||z  |
¬
«      }|S )Né   z$expected A.dtype float8_e4m3fn, got z$expected B.dtype float8_e4m3fn, got z3expected SparseSemiStructuredTensorCUSPARSELT, got r#   r    z2expected A_scale and B_scale to have numel 1, got z and z0expected A_scale and B_scale dtype float32, got )ÚalphaÚ	out_dtype)r9   r   Úfloat8_e4m3fnr'   r(   r)   Ú$SparseSemiStructuredTensorCUSPARSELTr+   r,   r-   ÚnumelÚfloat32Ú_cslt_sparse_mm)r   r   r   r   r3   rW   ÚA_scaleÚB_scaler[   Úscale_resultrd   Úsparse_results               r   r   r   Ä   s€  € à<@ÀÀ!¸HÑ9€A€qˆ'�7˜D ,°	à‡w�w”%×%Ñ%Ò%ÜÐCÀAÇGÁGÀ9ÐMÓNÐNØ‡w�w”%×%Ñ%Ò%ÜÐCÀAÇGÁGÀ9ÐMÓNÐNä�aœŸ™×JÑJÔKÜØAÄ$ÀqÃ'×BRÑBRÐASÐTó
ð 	
ð 	‡x�xÐÜÐ8Ó9Ð9à‡}�}ƒ˜!Ò˜wŸ}™}›°!Ò3ÜØ@ÀÇÁÃÐ@QÐQVÐW^×WdÑWdÓWfÐVgÐhó
ð 	
ð ‡}�}œŸ™Ò%¨¯©¼%¿-¹-Ò)GÜØ>¸w¿}¹}¸oÈUÐSZ×S`ÑS`ÐRaÐbó
ð 	
ô ×)Ñ)Ø	�‰Ø	Ø˜ÑØô	€Mð Ðr7   c                 óà  — t        |«      dk7  rt        dt        |«      › �«      ‚|d   }t        |t        j                  j
                  «      s!t        dt        |«      j                  › �«      ‚|j                  |j                  |j                  €d n|j                  j                  «       |j                  €d n|j                  j                  «       |j                  €d n|j                  j                  «       |j                  €d n|j                  j                  «       |j                  €d n|j                  j                  «       |j                   |j"                  |j$                  ¬«	      S )Nr    r!   r   r"   rO   )r&   r'   r(   r   r)   r*   r+   r,   rD   r/   r-   Úcloner.   r?   r@   rA   rB   rC   rP   rG   s        r   r   r   è   s,  € Ü
ˆ4ƒy�A‚~ÜÐ3´C¸³I°;Ð?Ó@Ð@à�‰7€DÜ�dœEŸL™L×CÑCÔDÜØ7¼¸T»
×8KÑ8KÐ7LÐMó
ð 	
ð
 �>‰>Ø�j‰jØ—{‘{Ð*‰t°·±×0AÑ0AÓ0CØ—Y‘YÐ&‰T¨D¯I©I¯O©OÓ,=ØŸ™Ð.‘°D·M±M×4GÑ4GÓ4IØ—{‘{Ð*‰t°·±×0AÑ0AÓ0Cð ×/Ñ/Ð7ñ à×1Ñ1×7Ñ7Ó9à"&×"@Ñ"@Ø×0Ñ0Ø×(Ñ(ð ó ð r7   c                 óÔ   — |d   }|xs i }|j                  dd «      }|�;t        j                  |«      j                  dk(  r|j	                  «       } | |fi |¤ŽS t        d|› d�«      ‚)Nr   ÚdeviceÚcpuz`_to_copy()` with kwargs=zb is not implemented for SparseSemiStructuredTensor. Only converting to CPU is supported currently.)Úgetr   rq   r+   Úto_denserM   )r   r   r   r   rH   rq   Údenses          r   r   r     s{   € Ø�‰7€DØŠ\�r€Fà�Z‰Z˜ $Ó'€FàÐœeŸl™l¨6Ó2×7Ñ7¸5Ò@Ø—‘“ˆÙ�EÑ$˜VÑ$Ð$ä
Ø
# F 8ð ,Yð 	Yóð r7   c                 ót  — |d   }|dd  }|xs i }d }|r;|d   }t        |t        j                  t        f«      r	 t        j                  |«      }d|v rt        j                  |d   «      }|�+|j
                  dk(  r|j                  «       } | |g|¢­i |¤ŽS t        d|› d|› d�«      ‚# t        $ r Y Œfw xY w)Nr   r    rq   rr   z`to()` with args=z	, kwargs=z\ is not implemented for SparseSemiStructuredTensor. Only `to('cpu')` is supported currently.)r(   r   rq   ÚstrÚRuntimeErrorr+   rt   rM   )	r   r   r   r   rH   Úremaining_argsrq   Ú	first_argru   s	            r   r   r     sâ   € Ø�‰7€DØ˜!˜"�X€NØŠ\�r€Fð €FÙØ" 1Ñ%ˆ	Ü�i¤%§,¡,´Ð!4Ô5ðÜŸ™ iÓ0�ð �6ÑÜ—‘˜f XÑ.Ó/ˆàÐ˜fŸk™k¨UÒ2Ø—‘“ˆÙ�EÐ5˜NÒ5¨fÑ5Ð5ä
Ø
˜NÐ+¨9°V°Hð =Sð 	Sóð øô  ò Ùðús   »B+ Â+	B7Â6B7)© Nr   )Ú
contextlibr   Ú__all__Úcontextmanagerr   r   ÚTensorr   r   r   r   r   r	   r
   r   r   r   r   r   r{   r7   r   ú<module>r€      sò   ðã ã ò€ð" ×Ññó ðòñ
!¸U¿\¹\ó !ñ$¸e¿l¹ló ñ&¸¿¹ó ñ<¸5¿<¹<ó ð°U·\±\ó ñ"7¸¿¹ó 7ñ&>¸E¿L¹Ló >ñ2%¸U¿\¹\ó %ñ&!ÀÇÁó !ñH¸E¿L¹Ló ñ8¸5¿<¹<ó ñ °e·l±lô r7   