o
    پi                     @   s   d dl mZmZ d dlZd dlmZ d dlmZ d dlm	Z	 e	 Z
dejdefdd	Zdejdefd
dZ		ddejdejdejdejdeej deej deejeej f fddZdS )    )OptionalTupleN)merge_state_v2)merge_state_triton)is_cudaoreturnc                 C   s   | j tjtjtjfv S N)dtypetorchfloat32halfbfloat16)r    r   [/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/layers/attention/merge_state.py_supported_dtypes   s   r   c                 C   s.   | j d }| jtjkr|d dkS |d dkS )N      r      )shaper
   r   r   )r   headdimr   r   r   _supported_headdim   s   
r   prefix_output
prefix_lsesuffix_output
suffix_lseoutput
output_lsec                 C   s8   t rt| rt| rt| |||||S t| |||||S r	   )_is_cudar   r   r   r   )r   r   r   r   r   r   r   r   r   merge_state   s   	r   )NN)typingr   r   r   
sgl_kernelr   2sglang.srt.layers.attention.triton_ops.merge_stater   sglang.srt.utilsr   r   Tensorboolr   r   r   r   r   r   r   <module>   s2    