o
    ,h	                     @   s   d dl mZ d dlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ er2d d	lmZ d d
lmZ d ZG dd deZdS )    )getattr_static)TYPE_CHECKING   )create_call_function)Unsupported)
AttrSource   )VariableTracker)	PyCodegen)InstructionTranslatorz6query key value attn_mask dropout is_causal enable_gqac                       sd   e Zd ZdZedddZd fdd	ZdddZdd Zddde	de
fddZedd Z  ZS )SDPAParamsVariablezeRepresents the c++ params struct for scaled dot product attention.
    This is a read-only container.txr   c                    s@   ddl m} ddlm}  fddtD }|||i S )Nr   
SDPAParamsr   )TorchInGraphFunctionVariablec              	      s&   g | ]}t t|t |qS  )r	   buildgetattrr   ).0psourcer   valuer   W/var/www/html/scripts/venv/lib/python3.10/site-packages/torch/_dynamo/variables/sdpa.py
<listcomp>   s    z-SDPAParamsVariable.create.<locals>.<listcomp>)torch.backends.cudar   torchr   PARAM_NAMEScall_function)r   r   r   r   r   paramsr   r   r   create   s   zSDPAParamsVariable.createreturnNc                    s"   || _ || _t jdi | d S )Nr   )proxy
param_varssuper__init__)selfr"   r#   kwargs	__class__r   r   r%   #   s   zSDPAParamsVariable.__init__codegenr
   c                    sT   | j d u sJ | jd usJ   fdd  | j  tt| jd d S )Nc                      s     ddS )Nztorch._C_SDPAParams)load_import_fromr   r*   r   r   <lambda>,   s    z0SDPAParamsVariable.reconstruct.<locals>.<lambda>F)r   r#   add_push_nullforeachextend_outputr   len)r&   r*   r   r-   r   reconstruct(   s   
zSDPAParamsVariable.reconstructc                 C   s   | j S )N)r"   )r&   r   r   r   as_proxy1   s   zSDPAParamsVariable.as_proxynamec                 C   s   dd l }ddlm} ddlm} z	t|jj| W n ty(   t	d| d w |
|  |}| jd urA|||t| j|dS |||dS )Nr   r   )wrap_fx_proxy)GetAttrVariablez+Unsupported torch._C._SDPAParams attribute )r   r"   r   )r   r"   )torch._Cbuilderr6   miscr7   r   _Cr+   AttributeErrorr   create_getattr_proxyr4   r   r   )r&   r   r5   r   r6   r7   r"   r   r   r   var_getattr4   s$   
zSDPAParamsVariable.var_getattrc                 C   s   ddl m} | |u S )Nr   r   )r   r   )r   r   r   r   r   is_sdpa_paramsJ   s   z!SDPAParamsVariable.is_sdpa_params)r   r   )r!   N)r*   r
   )__name__
__module____qualname____doc__staticmethodr    r%   r3   r4   strr	   r>   r?   __classcell__r   r   r(   r   r      s    
	r   N)inspectr   typingr   bytecode_transformationr   excr   r   r   baser	   torch._dynamo.codegenr
   torch._dynamo.symbolic_convertr   splitr   r   r   r   r   r   <module>   s   