o
    ÔÙ¾iÝ  ã                   @   sv   d dl Z d dlZd dlmZ ede jde jfdd„ƒZede jdede jfdd	„ƒZede jdede jfd
d„ƒZdS )é    N)Útensor_cacheÚ
cu_seqlensÚreturnc                 C   s   | dd … | d d…  S )Né   éÿÿÿÿ© )r   r   r   úY/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/layers/attention/fla/index.pyÚprepare_lens   s   r	   Ú
chunk_sizec                 C   sJ   t  dd„ t t| ƒ|¡ ¡ D ƒ¡}t  | d¡ d¡d |gd¡ 	| ¡S )Nc                 S   s   g | ]}t  |¡‘qS r   )ÚtorchÚarange)Ú.0Únr   r   r   Ú
<listcomp>   s    ÿÿz)prepare_chunk_indices.<locals>.<listcomp>r   r   )
r   ÚcatÚtritonÚcdivr	   ÚtolistÚstackÚeqÚcumsumÚto)r   r
   Úindicesr   r   r   Úprepare_chunk_indices   s   þÿ&r   c                 C   s(   t  |  dg¡t t| ƒ|¡g¡ d¡S )Nr   r   )r   r   Ú
new_tensorr   r   r	   r   )r   r
   r   r   r   Úprepare_chunk_offsets   s
   ÿþr   )	r   r   Ú%sglang.srt.layers.attention.fla.utilsr   Ú
LongTensorr	   Úintr   r   r   r   r   r   Ú<module>   s*   ÿÿþÿÿþ