Ë
    L²jé  ã                   ó¾   — 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y)é    )Ú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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         ú[/var/www/html/ia-enhanced/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)   r1   zSDPAParamsVariable.__init__.   s#   ø€ ð ˆŒ
Ø$ˆŒÜ‰ÑÑ"˜6Ó"ó    c                 ó   — t         S ©Nr	   ©r2   s    r)   Úpython_typezSDPAParamsVariable.python_type5   s   € ÜÐr4   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€ r4   F)r   r,   Úadd_push_nullÚforeachÚextend_outputr   Úlen)r2   r=   s    `r)   ÚreconstructzSDPAParamsVariable.reconstruct8   se   ø€ Ø�{‰{Ð"Ð"Ð"Ø�‰Ð*Ð*Ð*Ø×ÑÛGô	
ð 	�‰˜Ÿ™Ô(Ø×ÑÔ2´3°t·±Ó3GÈÓOÕPr4   c                 ó   — | j                   S r6   )r+   r7   s    r)   Úas_proxyzSDPAParamsVariable.as_proxyA   s   € Ø�z‰zÐr4   Ú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   )r2   r   rF   r"   rH   rI   rU   r+   s           r)   Úvar_getattrzSDPAParamsVariable.var_getattrD   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 r6   r	   )r   s    r)   Úis_sdpa_paramsz!SDPAParamsVariable.is_sdpa_params`   s   € àœ
Ð"Ð"r4   )r=   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r*   r   r   r1   Útyper8   rC   rE   ÚstrrX   r   rZ   Ú__classcell__)r3   s   @r)   r   r      sÌ   ø„ ñ&ð ð	VØ#ð	VØ,/ð	VØ9?ð	Và	ò	Vó ð	Vð#Øð#Ø(0°Ñ(Að#ØMPð#à	õ#ð˜Tó óQð˜%ó ð5Ð5ð 5¸Sð 5À_ó 5ð8 ð#˜cð # i°Ñ&=ò #ó ô#r4   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/   r4   r)   ú<module>rn      sF   ðÝ $Ý "ß 0Ñ 0å  Ý *Ý  å :Ý Ý Ý !ñ Ý/ÝDò€ôD#˜õ D#r4   