
    sh>                         S SK Jr  S SKrS SKr S SKrS SKJr  \R                  S\R                  4S j5       r\" SS9S\4S j5       rS	\R                   S\4S
 jrg! \	 a	    \
" S5      ef = f)    )	lru_cacheNz4triton import failed; try `pip install --pre triton`
BLOCK_SIZEc	                 :   [         R                  " SU5      n	X:  n
[        SXg-   S-   5       GHj  n[         R                  " 5         XS-
  U-  -   nXU-  -   nXU-  -   S-   n[         R                  " X-   U
S9n[         R                  " X-   U
S9n[         R                  " X-   U
S9n[         R                  " X+S-
  U-  -   U	-   U
SS9nU[         R
                  " [         R
                  " UU5      U5      -   nXS-   U-  -   S-   n[         R                  " UU	-   UU
S9  XS-   U-  -   S-   n[         R                  " UU	-   SU
UU:*  -  UU:*  -  S9  [         R                  " UU	-   SU
UU:*  -  UU:*  -  S9  [         R                  " UU	-   SXU:*  -  UU:*  -  S9  GMm     g )Nr      mask)r   other   )tlarangerangedebug_barrierloadminimumstore)costtracexx_stridecost_stridetrace_strideNMr   offsetsr   kp0p1p2c0c1c2x_rowcost_rowcost_ptr	trace_ptrs                         f/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/whisper/triton_ops.py
dtw_kernelr'      s    ii:&G;D1aeai 
Uk))O#O#a'WWR\-WWR\-WWR\-Uh..8t1M2::bjjR&8"==q5K//!3
G#XD9Ul22Q6	
W$adbBh.?28.LM
W$adbBh.?28.LM
W$adBh.?28.LM) !    )maxsizefilter_widthc                 F   [         R                  S[        R                  4S j5       n[         R                  " UR
                  5      nUR                  R                  SSR                  [        U 5       Vs/ s H  nSU SU S3PM     sn5      5      nUR                  SS	R                  [        U S
-  S-   5       VVs/ s Hw  nS	R                  [        X-
  S-
  5       Vs/ s HI  nSR                  SU SUS-    SU SUS-    S3	SU SUS-    SU SUS-    S3	SU S3SUS-    S3/5      PMK     sn5      PMy     snn5      5      nUR                  SSU S
-   35      n[        US5      SL a  UR                  U5        S Ul        U$ X1l        U$ s  snf s  snf s  snnf )Nr   c                     [         R                  " S5      n[         R                  " SU5      nXc:  nXU-  -   nXU-  -   n	[          [          [         R
                  " X-   [        US9  g )Nr   r   )r   
program_idr   LOAD_ALL_ROWS_HEREBUBBLESORT_HEREr   MIDDLE_ROW_HERE)
yr   r   y_strider   row_idxr   r   x_ptry_ptrs
             r&   kernelmedian_kernel.<locals>.kernel-   s\     --"))Az*!h&&h&&
/=r(   z    LOAD_ALL_ROWS_HERE
z    rowz = tl.load(x_ptr + offsets + z, mask=mask)z    BUBBLESORT_HEREz

r
   r   z    smaller = tl.where(rowz < rowz, row)z    larger = tl.where(rowz > rowz
 = smallerz	 = largerr0   row_unsafe_update_srcT)tritonjitr   	constexprJITFunctionfnsrcreplacejoinr   hasattrr;   hash)r*   r6   i
new_kerneljs        r&   median_kernelrI   +   s   ZZ>.0ll> >  		*F## 		 |,,A !9!LI,	
J ## |q0145 6A  "'|'7!';!<
 "=A 		"<QCva!eWERSQTTYZ[^_Z_Y``a b";A3fQUG5QRPSSXYZ]^Y^X__` a")!J 7")!a%	 :	 "=
 6	
J, ##$5\Q=N<O7PQJv+,4!!*- M  
MK
s   7F #F#AF3FFr   c                 t   U R                  5       R                  SUS5      n[        R                  " UR                  SS 5      n[        U5      n[        R                  " US   5      nSUR                  S5      S-
  R                  5       -  nXC4   " XPU R                  S5      UR                  S5      US9  U$ )zBApply a median filter of given width along the last dimension of xr   N).r   )r   )

contiguousunfoldnpprodshaperI   torch
empty_likestride
bit_length)r   r*   slicesgridr6   r1   r   s          r&   median_filter_cudarX   j   s    \\^""2|Q7F776<<$%D<(F(Aqxx|a'3355J
7OA!((2,LHr(   )	functoolsr   numpyrO   rR   r<   triton.languagelanguager   ImportErrorRuntimeErrorr=   r>   r'   intrI   TensorrX    r(   r&   <module>rb      s      O 
 NKM<<N N: 4; ; ;|%,, c C  O
M
NNOs   
A A-