Ë
    P/æj¬  ã                   óf   — 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y)é    )Úgetattr_static)ÚTYPE_CHECKINGé   )Úcreate_call_function)ÚUnsupportedé   )ÚVariableTracker)ÚInstructionTranslatorc                   óf   ‡ — 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                 ó6  — 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} ||«      j                  | |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                  ú_/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/variables/sdpa.pyÚcreatezSDPAParamsVariable.create   s0  € å2å'Ý,Ý7àD‘O B©
°6¸7Ó(CÓDÀUÇ[Á[ÓQˆ	Ø@‘/ "¡j°¸Ó&?Ó@ÀÇÁÓKˆØD‘O B©
°6¸7Ó(CÓDÀUÇ[Á[ÓQˆ	ØL™¨©J°v¸{Ó,KÓLØ�O‰Oó
ˆð I‘o b©*°V¸YÓ*GÓHÈÏÉÓWˆØL™¨©J°v¸{Ó,KÓLØ�O‰Oó
ˆð O™¨©Z¸ÀÓ-MÓNØ×Ñó
ˆð ØØØØØØð
ˆ
ñ ,¨JÓ7×EÑEØ�
˜Bó
ð 	
ó    Úreturnc                 ó@   •— || _         || _        t        ‰| �  di |¤Ž y )N© )Úproxyr(   ÚsuperÚ__init__)Úselfr/   r(   ÚkwargsÚ	__class__s       €r)   r1   zSDPAParamsVariable.__init__5   s!   ø€ ØˆŒ
Ø$ˆŒÜ‰ÑÑ"˜6Ó"r+   c                 óø   ‡— | j                   �J ‚| j                  €J ‚‰j                  ˆfd„«       ‰j                  | j                  «       ‰j	                  t        t        | j                  «      d«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )Nztorch._CÚ_SDPAParams)Úload_import_from)Úcodegens   €r)   ú<lambda>z0SDPAParamsVariable.reconstruct.<locals>.<lambda>>   s   ø€ �G×,Ñ,¨Z¸ÓG€ r+   F)r   r(   Úadd_push_nullÚforeachÚextend_outputr   Úlen)r2   r9   s    `r)   ÚreconstructzSDPAParamsVariable.reconstruct:   se   ø€ Ø�{‰{Ð"Ð"Ð"Ø�‰Ð*Ð*Ð*Ø×ÑÛGô	
ð 	�‰˜Ÿ™Ô(Ø×ÑÔ2´3°t·±Ó3GÈÓOÕPr+   c                 ó   — | j                   S )N)r/   )r2   s    r)   Úas_proxyzSDPAParamsVariable.as_proxyC   s   € Ø�z‰zÐr+   Únamec                 óL  — dd l }ddlm} ddlm} ddlm} 	 t        |j                  j                  |«       |j                  | j                  «       |«      }| j                  � ||| || j                  |«      ¬«      S  |||¬	«      S # t        $ r t        d|› �«      d ‚w xY w)
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¤   € Ûå'Ý*Ý)ð	Ü˜5Ÿ8™8×/Ñ/°Ô6ð  ×4Ñ4°T·]±]³_ÀdÓKˆØ�;‰;Ð"Ù Ø˜U©:°d·k±kÀ4Ó+Hôð ñ ! B¨eÔ4Ð4øô ò 	äØ=¸d¸VÐDóàðð	ús   ˜ B
 Â
B#c                 ó   — ddl m} | |u S )Nr   r   )r   r   )r   r   s     r)   Úis_sdpa_paramsz!SDPAParamsVariable.is_sdpa_params]   s   € å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òð5Ð5ð 5¸Sð 5À_ó 5ð. ñ#ó ô#r+   r   N)Úinspectr   Útypingr   Úbytecode_transformationr   Úexcr   Úbaser	   Útorch._dynamo.symbolic_convertr
   r   r.   r+   r)   ú<module>r[      s,   ðõ #Ý  å :Ý Ý !ñ ÝDôR#˜õ R#r+   