o
    ¸iq  ã                   @   s2   d dl mZ d dlZd dlmZ G dd„ dƒZdS )é    )ÚOptionalNc                   @   sZ   e Zd Z				ddejdejdejdeej deej deej deej fd	d
„ZdS )Ú
SeqlenInfoNÚ	batch_idxÚseqlen_q_staticÚseqlen_k_staticÚmCuSeqlensQÚmCuSeqlensKÚ	mSeqUsedQÚ	mSeqUsedKc                 C   sÐ   t  |d u ¡r	dn|| | _t  |d u ¡rdn|| | _t  |d u¡r)|| | _nt  |d u ¡r2|n||d  | j | _t  |d u¡rI|| | _nt  |d u ¡rR|n||d  | j | _|d u| _|d u| _d S )Nr   é   )ÚcutlassÚ
const_exprÚoffset_qÚoffset_kÚseqlen_qÚseqlen_kÚhas_cu_seqlens_qÚhas_cu_seqlens_k)Úselfr   r   r   r   r   r	   r
   © r   úQ/home/ubuntu/vllm_env/lib/python3.10/site-packages/flash_attn/cute/seqlen_info.pyÚ__init__   s    
ÿýÿý
zSeqlenInfo.__init__)NNNN)	Ú__name__Ú
__module__Ú__qualname__r   ÚInt32r   ÚcuteÚTensorr   r   r   r   r   r      s(    øþýüûúùør   )Útypingr   r   Úcutlass.cuter   r   r   r   r   r   Ú<module>   s    