o
    Zh	                     @   st   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r,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)InstructionTranslatorz6query key value attn_mask dropout is_causal enable_gqac                       sb   e Zd ZdZedddZd fdd	Z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   K/var/www/auris/lib/python3.10/site-packages/torch/_dynamo/variables/sdpa.py
<listcomp>   s    z-SDPAParamsVariable.create.<locals>.<listcomp>)torch.backends.cudar   torchr   PARAM_NAMESZ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__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)Zload_import_fromr   codegenr   r   <lambda>+   s    z0SDPAParamsVariable.reconstruct.<locals>.<lambda>F)r   r!   Zadd_push_nullZforeachZextend_outputr   len)r$   r*   r   r)   r   reconstruct'   s   
zSDPAParamsVariable.reconstructc                 C   s   | j S )N)r    )r$   r   r   r   as_proxy0   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    )Ztorch._CZbuilderr0   miscr1   r   Z_Cr(   AttributeErrorr   Zcreate_getattr_proxyr.   r   r   )r$   r   r/   r   r0   r1   r    r   r   r   var_getattr3   s$   
zSDPAParamsVariable.var_getattrc                 C   s   ddl m} | |u S )Nr   r   )r   r   )r   r   r   r   r   is_sdpa_paramsI   s   z!SDPAParamsVariable.is_sdpa_params)r   r
   )r   N)__name__
__module____qualname____doc__staticmethodr   r#   r-   r.   strr	   r4   r5   __classcell__r   r   r&   r   r      s    	r   N)inspectr   typingr   Zbytecode_transformationr   excr   r   r   baser	   Ztorch._dynamo.symbolic_convertr
   splitr   r   r   r   r   r   <module>   s   