
    QVji                        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S )    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_mmc               #   ^   K   t           j                                        } 	 d V  ~ d S # ~ w xY wN)torch_C_DisableTorchDispatch)guards    [/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/sparse/_semi_structured_ops.pyno_dispatchr      s9      H**,,EEEE				s   ) ,c                 \    t                      5   | | cd d d            S # 1 swxY w Y   d S r   )r   )functypesargskwargss       r   r   r      sy    	  tT{                 s   !%% returnc                 :   t          |          dk    sJ |d         }t          |t          j        j                  sJ |j        J |j        5|j        \  }}||z  dz  }|j        d |                             |d          S |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    t99>>>>QAa@AAAAA8v~w1EQJx+*+,11!R888x       c                    t          |          dk    sJ |d         }t          |t          j        j                  sJ |j        J |j        u|j        \  }}||z  dz  }|j        |d                              |d          }|                    |j	        t          j
        k    rt          j
        n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   0   s    t99>>>>QAa@AAAAA8v~w1EQJ8-../44Q;;}}AGu{,B,BU[[TTTvr.   c                    t          |          dk    sJ |d         }t          |t          j        j                  sJ t          |j                  dk    sJ |                    t          j        |j        d         |j        d         g          |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__Sizer5   r6   r%   r&   r7   	transposer8   r9   r   r   r   r   selfs        r   r   r   >   s    t99>>>>7DdELCDDDDDtz??a >>
DJrNDJqM233}[y /; ,66q!<<<"&q'"Cq'3    r.   c                     t          |          dk    sJ |\  }}t          |          |j        k    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   V   sY    t99>>>>KD%U||tz!!!rjorrr
 
 	
 Kr.   c                     t          |          dk    sJ |d         }|                    |j        |j        |j        |j        |j        |j        |j        |j	        d	  	        S )Nr   r   F)	r'   r%   r&   r5   r6   r7   r8   r9   requires_grad)
r!   r:   r'   r%   r&   r5   r6   r7   r8   r9   r=   s        r   r   r   `   sg    t99>>>>7D>>j{Y{$($D"&"@0  
 
 
r.   c                 x   t          |          dk    sJ |\  }}|j        dk    s|j        dk    rt          d          t          |t          j        j                  rB|j        \  }}|                    |          }|	                    |          }	|	d d d |f         S |
                                }
t          |
t          j        j                  sJ |j        \  }}|                    |          }|
	                    |
                                          
                                }	|	d |d d f         S )Nr   D`SparseSemiStructuredTensor` matmul: Broadcasting is not implemented)r!   ndimrB   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	   p   s%   t99>>>>DAqv{{afkk!R
 
 	
 !U\<== 7S%%a((eeHoo111dsd7|ccee#u|FGGGGG7S%%a((gghjjll##%%''4C47|r.   c                 \   t          |          dk    sJ |\  }}}|j        dk    s|j        dk    rt          d          |j        dk    rt          d|j                   t	          |t
          j        j                  rt          d          |                                }t	          |t
          j        j                  sJ |j        \  }}	|	                    |          }
|
                    |
                                |                                          }|d |d d f         S )N   r   rF   r   zF`SparseSemiStructuredTensor` matmul: only bias dim=1 supported. Shape=zL`SparseSemiStructuredTensor` matmul: only operand B of `addmm` can be sparse)bias)r!   rG   rB   r'   r"   r   r#   r$   rJ   rH   rI   )r   r   r   r   rT   r*   rK   rP   rL   _colrQ   results               r   r
   r
      s-   t99>>>>JD!Qv{{afkk!R
 
 	
 yA~~!aUYU_aa
 
 	
 !U\<== 
!Z
 
 	
 ##%%Cc5<BCCCCCIC##A&&HWWXZZ\\W--//11F$3$'?r.   c                 r   t          |          dv sJ |d d         \  }}t          |          dk    r|d         nd }|j        }|                    d|d                   }|||                                z  }	n't	          d d |||                                g          }	 |	j        g |d d         dR  S )N)r   rS   r   rS   r    )r   r   r   )r!   r'   r(   rJ   r
   )
r   r   r   r   r*   rK   rT   r'   A_2drO   s
             r   r   r      s    t998DAq$ii1nn477$DGE66"eBi  D|QSSUUlaccee$
 
 
 38$U3B3Z$$$$$r.   c                    |d d         \  }}}}}}	}
|j         t          j        k    sJ |j         t          j        k    sJ t          |t          j        j                  sJ |j        J |                                dk    r|                                dk    sJ |j         t          j        k    r|j         t          j        k    sJ t          j	        |j        |||z  |
          }|S )N   r   )alpha	out_dtype)
r0   r   float8_e4m3fnr"   r#   $SparseSemiStructuredTensorCUSPARSELTr%   numelfloat32_cslt_sparse_mm)r   r   r   r   r*   rK   A_scaleB_scalerT   scale_resultr\   sparse_results               r   r   r      s    <@!H9Aq'7D,	7e)))))7e)))))aJKKKKK8==??aGMMOOq$8$8$88=EM))gmu}.L.L.LL )			  M r.   )r   N)
contextlibr   __all__contextmanagerr   r   Tensorr   r   r   r   r   r	   r
   r   r   r   r.   r   <module>rj      s              

! 
!U\ 
! 
! 
! 
! el         0 5<    U\          * EL    .% %U\ % % % %(       r.   