o
    
Û¾iz  ã                   @   sR   d dl Z d dlmZ 	dde jde jde jde jde jde jdB d	dfd
d„ZdS )é    N)Úcurrent_platformÚoutputÚprefix_outputÚ
prefix_lseÚsuffix_outputÚ
suffix_lseÚ
output_lseÚreturnc           	      C   s|   dt jdtfdd„}dt jdtfdd„}t ¡ r/|| ƒr/|| ƒr/ddlm} || |||||ƒS ddlm} || |||||ƒS )	NÚor	   c                 S   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/vllm/v1/attention/ops/merge_attn_states.pyÚsupported_dtypes   s   z+merge_attn_states.<locals>.supported_dtypesc                 S   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   
z,merge_attn_states.<locals>.supported_headdimr   )Úmerge_attn_states)r   ÚTensorÚboolr   Úis_cudaÚvllm._custom_opsr   Ú.vllm.v1.attention.ops.triton_merge_attn_states)	r   r   r   r   r   r   r   r   r   r   r   r   r   	   s    
ÿþýÿÿr   r   )r   Úvllm.platformsr   r   r   r   r   r   r   Ú<module>   s$   	úÿþýüûúù