
    .`ic                     l   d dl mZ d dlmZ d dlmZ  ee          Z ej                    rd dl	m
Z
 d dlmZmZ nW ej                    rd dlmZ ej
        Z
ej        Zej        Zn, ej                    r	 d dlmZ n# e$ r ded	ed
efdZY nw xY wdded
edz  fdZd
efdZd
efdZd Zd
efdZdS )    )Any)init_loggercurrent_platform)reshape_and_cache_flash)flash_attn_varlen_funcget_scheduler_metadata)ipex_ops)r   argskwargsreturnc                       t          d          )Nz\ROCm platform requires upstream flash-attn to be installed. Please install flash-attn first.)ImportError)r   r   s     w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/attention/backends/fa_utils.pyr   r      s    D      Frequires_alibiNc                 b   ddl m}  |j                    rdS  |j                    rd S 	 ddlm}m}  |j                    }|J |j        dk    r |d          rdnd}ddl	m
}  |            }||j        j        |j        j        }|j        dk    r"|dk    rt                              d	           d}| r"|dk    rt                              d
           d} ||          s%t                              d| ||                      ||          sJ |S # t           t"          f$ r Y d S w xY w)Nr   r      )fa_version_unsupported_reasonis_fa_version_supported	      )get_current_vllm_config_or_none
   zJCannot use FA version 3 on Blackwell platform, defaulting to FA version 2.z?Cannot use FA version 3 with ALiBi, defaulting to FA version 2.z3Cannot use FA version %d is not supported due to %s)vllm.platformsr   is_xpuis_rocm)vllm.vllm_flash_attn.flash_attn_interfacer   r   get_device_capabilitymajorvllm.configr   attention_configflash_attn_versionloggerwarning_onceerrorr   AssertionError)r   r   r   r   device_capability
fa_versionr   vllm_configs           r   get_flash_attn_versionr+   %   s   //////   q!! t1	
 	
 	
 	
 	
 	
 	
 	

 C,BDD ,,, $)Q..3J3J13M3M.AATU 	
 	@?????5577#,?K$5HJ "b((Z1__.   J 	jAooQ   J&&z22 	LLE--j99   '&z22222(   tts   C.D D.-D.c                  N    t                      dk    ot          j        d          S )Nr   Z   )r+   r   is_device_capability_family r   r   flash_attn_supports_fp8r0   b   s(      A% 	=8<<r   c                  P    t          j                    rdS t                      dk    S )NTr   )r   r   r+   r/   r   r   flash_attn_supports_sinksr2   i   s)       -t%''1,,r   c                      ddl m}   | j                    r9	 ddlm}  |d          o | j        d          S # t          t          f$ r Y nw xY wdS )Nr   r   )r   r   r-   F)r   r   is_cudar   r   r.   r   r'   )r   r   s     r   flash_attn_supports_mlar5   p   s    //////!! 
		      +*  C>">rBBC ^, 	 	 	D	5s    8 AAc                  N    t          j                    pt          j                    S )N)r   r4   r   r/   r   r   #is_flash_attn_varlen_func_availabler7      s     #%%B)9)@)B)BBr   )F)typingr   vllm.loggerr   r   r   __name__r$   r4   vllm._custom_opsr   vllm.vllm_flash_attnr   r	   r   vllm._ipex_opsr
   r   
flash_attnr   boolintr+   r0   r2   r5   r7   r/   r   r   <module>rA      s         # # # # # # + + + + + +	X		 888888        
  ''''''&>%<%< 	5555555   	# 	 	 	 	 	 	 	 	: :4 :C$J : : : :z    -4 - - - -  "CT C C C C C Cs   7A> >BB