
    9i                         d dl mZ d dlmZ d dlmZmZ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 dd
lmZ ddlmZ erd dlmZ d dlmZ g dZ G d de          ZdS )    )Sequence)getattr_static)AnyTYPE_CHECKING	TypeGuard)Source
SDPAParams)Proxy   )create_call_function)unimplemented)
AttrSource   )VariableTracker)	PyCodegen)InstructionTranslator)querykeyvalue	attn_maskdropout	is_causal
enable_gqac            	            e Zd ZdZedddededefd            Zde	d	e
e         d
eddf fdZddZde	fdZdddedefdZededed         fd            Z xZS )SDPAParamsVariablezeRepresents the c++ params struct for scaled dot product attention.
    This is a read-only container.txr   r   sourcereturnc                      ddl m}  fdt          D             } |t                                         |i           S )Nr   )TorchInGraphFunctionVariablec           
      t    g | ]4}t          j        t          |          t          |                    5S  )r   buildgetattrr   ).0pr   r   r   s     O/var/www/icac/venv/lib/python3.11/site-packages/torch/_dynamo/variables/sdpa.py
<listcomp>z-SDPAParamsVariable.create.<locals>.<listcomp>(   sL     
 
 
 !"geQ&7&7FA9N9NOO
 
 
    )torchr!   PARAM_NAMESr
   call_function)r   r   r   r!   paramss   ```  r(   createzSDPAParamsVariable.create"   sq     	877777
 
 
 
 
 
 
 
 
 ,+J77EEb&RTUUUr*   proxy
param_varskwargsNc                 V    || _         || _         t                      j        di | d S )Nr#   )r0   r1   super__init__)selfr0   r1   r2   	__class__s       r(   r5   zSDPAParamsVariable.__init__.   s6     
$""6"""""r*   codegenr   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)r8   s   r(   <lambda>z0SDPAParamsVariable.reconstruct.<locals>.<lambda>9   s    G,,ZGG r*   F)r   r1   add_push_nullforeachextend_outputr   len)r6   r8   s    `r(   reconstructzSDPAParamsVariable.reconstruct5   s    {"""***GGGG	
 	
 	
 	(((23t3G3GOOPPPPPr*   c                     | j         S N)r0   )r6   s    r(   as_proxyzSDPAParamsVariable.as_proxy>   s
    zr*   namec                    dd l }ddlm} ddlm} 	 t          |j        j        |           n:# t          $ r- dd l	m
c m} t          dd| d| dg |j        	           Y nw xY w|                    |                                 |          }| j        ! |||t#          | j        |          
          S  |||          S )Nr   r   )wrap_fx_proxy)GetAttrVariablez*unsupported torch._C._SDPAParams attributezname: zUnable to fetch attribute z from torch._C._SDPAParams.)gb_typecontextexplanationhints)r   r0   r   )r   r0   )torch._CbuilderrH   miscrI   r   _Cr;   AttributeErrortorch._dynamo.graph_break_hints_dynamograph_break_hintsr   
USER_ERRORcreate_getattr_proxyrE   r   r   )r6   r   rF   r+   rH   rI   rU   r0   s           r(   var_getattrzSDPAParamsVariable.var_getattrA   s7   ******))))))	58/6666 
	 
	 
	GGGGGGGGGD'ZZZZ&1	     
	  44T]]__dKK;" =U:dk4+H+H    !=Be4444s   - 4A$#A$r
   c                     | t           u S rD   r	   )r   s    r(   is_sdpa_paramsz!SDPAParamsVariable.is_sdpa_params]   s    
""r*   )r8   r   r   N)__name__
__module____qualname____doc__staticmethodr   r   r   r/   r   r   r5   rB   rE   strrX   r   rZ   __classcell__)r7   s   @r(   r   r      sD       & & 	V#	V,/	V9?	V		V 	V 	V \	V##(0(A#MP#	# # # # # #Q Q Q Q%    55 5S 5_ 5 5 5 58 #c #i&= # # # \# # # # #r*   r   N)collections.abcr   inspectr   typingr   r   r   torch._guardsr   torch.backends.cudar
   torch.fx.proxyr   bytecode_transformationr   excr   r   r   baser   torch._dynamo.codegenr   torch._dynamo.symbolic_convertr   r,   r   r#   r*   r(   <module>rm      sC   $ $ $ $ $ $ " " " " " " 0 0 0 0 0 0 0 0 0 0             * * * * * *             : : : : : :             ! ! ! ! ! !  E//////DDDDDD  A# A# A# A# A# A# A# A# A# A#r*   