
    קg                     n    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  G d	 d
e	          ZdS )    )getattr_static)TYPE_CHECKING   )create_call_function)Unsupported   )VariableTracker)InstructionTranslatorc                   r     e Zd ZdZedd            Zd fdZd Zd	 Zddd
e	de
fdZed             Z xZS )SDPAParamsVariablezeRepresents the c++ params struct for scaled dot product attention.
    This is a read-only container.txr
   c                 |   ddl m} ddlm} ddlm} ddlm}   ||  ||d                    |j                  }  ||  ||d	                    |j	                  }  ||  ||d
                    |j
                  }	  ||  ||d                    |j                  }
  ||  ||d                    |j                  }  ||  ||d                    |j                  }  ||  ||d                    |j                  }|||	|
|||g} ||                              | |i           S )Nr   
SDPAParamsr   
AttrSourcer   )VariableBuilder)TorchInGraphFunctionVariablequerykeyvalue	attn_maskdropout	is_causal
enable_gqa)torch.backends.cudar   sourcer   builderr   torchr   r   r   r   r   r   r   r   call_function)r   r   r   r   r   r   r   	query_varkey_var	value_varattn_mask_vardropout_varis_causal_varenable_gqa_var
param_varss                  X/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/_dynamo/variables/sdpa.pycreatezSDPAParamsVariable.create   s   222222'''''',,,,,,777777DOOB

67(C(CDDU[QQ	@//"jj&?&?@@KKDOOB

67(C(CDDU[QQ	LJJv{,K,KLLO
 
 Ioob**VY*G*GHHWWLJJv{,K,KLLO
 
 OZZ-M-MNN
 
 

 ,+J77EE
B
 
 	
    returnNc                 V    || _         || _         t                      j        di | d S )N )proxyr(   super__init__)selfr/   r(   kwargs	__class__s       r)   r1   zSDPAParamsVariable.__init__5   s4    
$""6"""""r+   c                     | j         J | j        J                     fd                               | j                                       t          t          | j                  d                     d S )Nc                  0                          dd          S )Nztorch._C_SDPAParams)load_import_from)codegens   r)   <lambda>z0SDPAParamsVariable.reconstruct.<locals>.<lambda>>   s    G,,ZGG r+   F)r   r(   add_push_nullforeachextend_outputr   len)r2   r9   s    `r)   reconstructzSDPAParamsVariable.reconstruct:   s    {"""***GGGG	
 	
 	
 	(((23t3G3GOOPPPPPr+   c                     | j         S )N)r/   )r2   s    r)   as_proxyzSDPAParamsVariable.as_proxyC   s
    zr+   namec                 Z   dd l }ddlm} ddlm} ddlm} 	 t          |j        j	        |           n!# t          $ r t          d|           d w xY w|                    |                                 |          }| j         ||| || j        |                    S  |||	          S )
Nr   r   r   r   )wrap_fx_proxy)GetAttrVariablez+Unsupported torch._C._SDPAParams attribute )r   r/   r   )r   r/   )torch._Cr   r   r   rD   miscrE   r   _Cr7   AttributeErrorr   create_getattr_proxyrA   )r2   r   rB   r   r   rD   rE   r/   s           r)   var_getattrzSDPAParamsVariable.var_getattrF   s   ''''''******))))))	58/6666 	 	 	DdDD 	  44T]]__dKK;" =U::dk4+H+H    !=Be4444s	   3 Ac                     ddl m} | |u S )Nr   r   )r   r   )r   r   s     r)   is_sdpa_paramsz!SDPAParamsVariable.is_sdpa_params]   s    222222
""r+   )r   r
   )r,   N)__name__
__module____qualname____doc__staticmethodr*   r1   r?   rA   strr	   rK   rM   __classcell__)r4   s   @r)   r   r      s        & & 
 
 
 \
B# # # # # #
Q Q Q  55 5S 5_ 5 5 5 5. # # \# # # # #r+   r   N)inspectr   typingr   bytecode_transformationr   excr   baser	   torch._dynamo.symbolic_convertr
   r   r.   r+   r)   <module>r[      s    # " " " " "             : : : : : :       ! ! ! ! ! !  EDDDDDDR# R# R# R# R# R# R# R# R# R#r+   