o
    ÔÙ¾iŸ  ã                   @   sø   d dl Z d dlZd dlmZ d dlm  m  mZ d dl	m
Z
 e j dd¡dkr6ejZejZejZejZnejZejjZejZejZejdd„ ƒZe
sUejddd	„ƒZnejZeejd
ƒrdejjZdS eejdƒrpejjZdS 	 ej	ddd„ƒZdS )é    N)Úis_gather_supportedÚFLA_USE_FAST_OPSÚ0Ú1c                 C   s   t t | dk| tdƒ¡ƒS )Nr   z-inf)ÚexpÚtlÚwhereÚfloat)Úx© r   úV/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/layers/attention/fla/op.pyÚsafe_exp   s   r   c                 C   s   dS )z·
        Gather operation that works when tl.gather is not supported.
        This is a fallback implementation that returns None.
        Just to make triton compiler happy.
        Nr   )ÚsrcÚindexÚaxisÚ_builderr   r   r   Úgather    s   r   Ú$_experimental_make_tensor_descriptorÚmake_tensor_descriptorc                 C   s   d S ©Nr   )ÚbaseÚshapeÚstridesÚblock_shaper   r   r   r   r   :   s   r   )ÚosÚtritonÚtriton.languageÚlanguager   Útriton.language.extra.libdeviceÚextraÚ	libdeviceÚtldeviceÚ%sglang.srt.layers.attention.fla.utilsr   ÚenvironÚgetÚ	fast_expfr   Úexp2Ú	fast_logfÚlogÚ
fast_log2fÚlog2ÚmathÚjitr   r   Úhasattrr   r   r   r   r   r   Ú<module>   s8   
	û