§
    ž²Åjê	  ã                   ó¢   — 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
                     ¦   «         Z G d„ de¦  «        ZdS )é    )Úgetattr_static)ÚTYPE_CHECKINGé   )Úcreate_call_function)ÚUnsupported)Ú
AttrSourceé   )ÚVariableTracker)ÚInstructionTranslatorz6query key value attn_mask dropout is_causal enable_gqac                   ó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} ˆˆ ˆfd„t          D ¦   «         } ||¦  «                             ‰ |i ¦  «        S )Nr   ©Ú
SDPAParamsr	   )ÚTorchInGraphFunctionVariablec           
      ót   •— g | ]4}t          j        ‰t          ‰|¦  «        t          ‰|¦  «        ¦  «        ‘Œ5S © )r
   ÚbuildÚgetattrr   )Ú.0ÚpÚsourcer   Úvalues     €€€úMC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/variables/sdpa.pyú
<listcomp>z-SDPAParamsVariable.create.<locals>.<listcomp>   sL   ø€ ð 
ð 
ð 
àõ Ô! "¥g¨e°QÑ&7Ô&7½ÀFÈAÑ9NÔ9NÑOÔOð
ð 
ð 
ó    )Útorch.backends.cudar   Útorchr   ÚPARAM_NAMESÚcall_function)r   r   r   r   r   Úparamss   ```   r   ÚcreatezSDPAParamsVariable.create   s�   øøø€ à2Ð2Ð2Ð2Ð2Ð2à7Ð7Ð7Ð7Ð7Ð7ð
ð 
ð 
ð 
ð 
ð 
å ð
ñ 
ô 
ˆð ,Ð+¨JÑ7Ô7×EÒEÀbÈ&ÐRTÑUÔUÐUr   ÚreturnNc                 óV   •— || _         || _         t          ¦   «         j        di |¤Ž d S )Nr   )ÚproxyÚ
param_varsÚsuperÚ__init__)Úselfr&   r'   ÚkwargsÚ	__class__s       €r   r)   zSDPAParamsVariable.__init__"   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)r*   r1   s    `r   ÚreconstructzSDPAParamsVariable.reconstruct'   sˆ   ø€ ØŒ{Ð"Ð"Ð"ØŒÐ*Ð*Ð*Ø×ÒØGÐGÐGÐGñ	
ô 	
ð 	
ð 	�Š˜œÑ(Ô(Ð(Ø×ÒÕ2µ3°t´Ñ3GÔ3GÈÑOÔOÑPÔPÐPÐPÐPr   c                 ó   — | j         S )N)r&   )r*   s    r   Úas_proxyzSDPAParamsVariable.as_proxy0   s
   € ØŒzÐr   Únamec                 óV  — dd l }ddlm} ddlm} 	 t          |j        j        |¦  «         n!# t          $ r t          d|› �¦  «        d ‚w xY w| 
                    |                      ¦   «         |¦  «        }| j        �! |||t          | j        |¦  «        ¬¦  «        S  |||¬¦  «        S )Nr   r	   )Úwrap_fx_proxy)ÚGetAttrVariablez+Unsupported torch._C._SDPAParams attribute )r   r&   r   )r   r&   )Útorch._CÚbuilderr<   Úmiscr=   r   Ú_Cr/   ÚAttributeErrorr   Úcreate_getattr_proxyr9   r   r   )r*   r   r:   r   r<   r=   r&   s          r   Úvar_getattrzSDPAParamsVariable.var_getattr3   sñ   € Øˆˆˆà*Ð*Ð*Ð*Ð*Ð*Ø)Ð)Ð)Ð)Ð)Ð)ð	Ý˜5œ8Ô/°Ñ6Ô6Ð6Ð6øÝð 	ð 	ð 	åØD¸dÐDÐDñô àðð	øøøð  ×4Ò4°T·]²]±_´_ÀdÑKÔKˆØŒ;Ð"Ø �=Ø˜U­:°d´kÀ4Ñ+HÔ+Hðñ ô ð ð !�= B¨eÐ4Ñ4Ô4Ð4s	   ’- ­Ac                 ó   — ddl m} | |u S )Nr   r   )r   r   )r   r   s     r   Úis_sdpa_paramsz!SDPAParamsVariable.is_sdpa_paramsI   s   € à2Ð2Ð2Ð2Ð2Ð2à˜
Ð"Ð"r   )r   r   )r$   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr#   r)   r7   r9   Ústrr
   rD   rF   Ú__classcell__)r,   s   @r   r   r      sÑ   ø€ € € € € ð&ð &ð ð	Vð 	Vð 	Vñ „\ð	Vð#ð #ð #ð #ð #ð #ð
Qð Qð Qðð ð ð5Ð5ð 5¸Sð 5À_ð 5ð 5ð 5ð 5ð, ð#ð #ñ „\ð#ð #ð #ð #ð #r   r   N)Úinspectr   Útypingr   Úbytecode_transformationr   Úexcr   r   r   Úbaser
   Útorch._dynamo.symbolic_convertr   Úsplitr    r   r   r   r   ú<module>rU      sÕ   ðð #Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  à :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð ð EØDÐDÐDÐDÐDÐDàF×LÒLÑNÔN€ð;#ð ;#ð ;#ð ;#ð ;#˜ñ ;#ô ;#ð ;#ð ;#ð ;#r   