Ë
    ÃÓ^j¨  ã                   ó²   — 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y)é    )Úgetattr_static)ÚAnyÚTYPE_CHECKINGÚ	TypeGuard)ÚSource©Ú
SDPAParams)ÚProxyé   )Úcreate_call_function)Úunimplemented)Ú
AttrSourceé   )ÚVariableTracker)Ú	PyCodegen)ÚInstructionTranslatorBase)Ú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e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} t        D �cg c]-  }t        j                  | t        ||«      t        ||«      «      ‘Œ/ }} |t        «      j                  | |i «      S c c}w )Nr   )ÚTorchInGraphFunctionVariable)	Útorchr    ÚPARAM_NAMESr   ÚbuildÚgetattrr   r	   Úcall_function)r   r   r   r    ÚpÚparamss         úg/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/variables/sdpa.pyÚcreatezSDPAParamsVariable.create!   se   € õ 	8ô !ö
àô ×!Ñ! "¤g¨e°QÓ&7¼ÀFÈAÓ9NÕOð
ˆð 
ñ ,¬JÓ7×EÑEÀbÈ&ÐRTÓUÐUùò	
s   �2A ÚproxyÚ
param_varsÚkwargsNc                 ó@   •— || _         || _        t        ‰| �  di |¤Ž y )N© )r*   r+   ÚsuperÚ__init__)Úselfr*   r+   r,   Ú	__class__s       €r(   r0   zSDPAParamsVariable.__init__-   s#   ø€ ð ˆŒ
Ø$ˆŒÜ‰ÑÑ"˜6Ó"ó    c                 ó   — t         S ©Nr   ©r1   s    r(   Úpython_typezSDPAParamsVariable.python_type4   s   € ÜÐr3   c                 ó  ‡— | j                   �t        d«      ‚| j                  €t        d«      ‚‰j                  ˆfd„«       ‰j	                  | j                  «       ‰j                  t        t        | j                  «      d«      «       y )Nz>SDPAParamsVariable should not have a source during reconstructz.SDPAParamsVariable.param_vars must not be Nonec                  ó(   •— ‰ j                  dd«      S )Nztorch._CÚ_SDPAParams)Úload_import_from)Úcodegens   €r(   ú<lambda>z0SDPAParamsVariable.reconstruct.<locals>.<lambda>?   s   ø€ �G×,Ñ,¨Z¸ÓG€ r3   F)r   ÚAssertionErrorr+   Úadd_push_nullÚforeachÚextend_outputr   Úlen)r1   r<   s    `r(   ÚreconstructzSDPAParamsVariable.reconstruct7   sw   ø€ Ø�;‰;Ð"Ü ØPóð ð �?‰?Ð"Ü Ð!QÓRÐRØ×ÑÛGô	
ð 	�‰˜Ÿ™Ô(Ø×ÑÔ2´3°t·±Ó3GÈÓOÕPr3   c                 ó   — | j                   S r5   )r*   r6   s    r(   Úas_proxyzSDPAParamsVariable.as_proxyD   s   € Ø�z‰zÐr3   Únamec                 ó‚  — dd l }ddlm} ddlm} 	 t        |j                  j                  |«       |j                  | j                  «       |«      }| j                   � |||t#        | j                   |«      ¬
«      S  |||¬«      S # t        $ r. dd l	m
c m} t        dd|› �d|› d�g |j                  ¢¬	«       Y Œ‹w xY w)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   r*   r   )r   r*   )Útorch._CÚbuilderrH   ÚmiscrI   r   Ú_Cr:   ÚAttributeErrorÚtorch._dynamo.graph_break_hintsÚ_dynamoÚgraph_break_hintsr   Ú
USER_ERRORÚcreate_getattr_proxyrE   r   r   )r1   r   rF   r!   rH   rI   rU   r*   s           r(   Úvar_getattrzSDPAParamsVariable.var_getattrG   sÃ   € ó 	å*Ý)ð	Ü˜5Ÿ8™8×/Ñ/°Ô6ð  ×4Ñ4°T·]±]³_ÀdÓKˆØ�;‰;Ð"Ù Ø˜U¬:°d·k±kÀ4Ó+Hôð ñ ! B¨eÔ4Ð4øô% ò 
	ßGÐGäØDØ   ˜Ø8¸¸Ð>YÐZðØ&×1Ñ1ð÷	ð
	ús   ’ B Â4B>Â=B>r	   c                 ó   — | t         u S r5   r   )r   s    r(   Úis_sdpa_paramsz!SDPAParamsVariable.is_sdpa_paramse   s   € àœ
Ð"Ð"r3   )r<   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r)   r
   Úlistr0   Útyper7   rC   rE   ÚstrrX   r   rZ   Ú__classcell__)r2   s   @r(   r   r      sÎ   ø„ ñ&ð ð	VØ'ð	VØ03ð	VØ=Cð	Và	ò	Vó ð	Vð#Øð#Ø(,¨_Ñ(=ð#ØILð#à	õ#ð˜Tó óQð˜%ó ð5Ø-ð5Ø58ð5à	ó5ð< ð#˜cð # i°Ñ&=ò #ó ô#r3   r   N)Ú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.   r3   r(   ú<module>rn      sC   ðÝ "ß 0Ñ 0å  Ý *Ý  å :Ý Ý Ý !ñ Ý/ÝHò€ôJ#˜õ J#r3   