§
    oF§jf  ã                  ó:   — d dl mZ d dlmZ dZdd„Zdd„Zdd„ZdS )é    )Úannotations)ÚAnyÚ _wangp_triton_compilation_loggerÚtimesr   ÚreturnÚfloatc                óà   — t          | dd¦  «        }t          t          | dd¦  «        ¦  «        t          t          | dd¦  «        ¦  «        z   }|t          d„ |D ¦   «         ¦  «        z  }|dz  S )NÚlowering_stages© Úir_initializationr   Ústore_resultsc              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S ©N)Úint)Ú.0Ú_stageÚdurations      ú>C:\Users\johnn\Wan2GP\shared\kernels\triton_compilation_log.pyú	<genexpr>z'_compile_duration_ms.<locals>.<genexpr>   s-   è è € ÐJÐJÑ&6 f¨h•C˜‘M”MÐJÐJÐJÐJÐJÐJó    g     @�@)Úgetattrr   Úsum)r   r
   Útotal_uss      r   Ú_compile_duration_msr   	   su   € Ý˜eÐ%6¸Ñ;Ô;€OÝ•7˜5Ð"5°qÑ9Ô9Ñ:Ô:½SÅÈÐP_ÐabÑAcÔAcÑ=dÔ=dÑd€HØ•ÐJÐJ¸/ÐJÑJÔJÑJÔJÑJ€HØ�fÑÐr   ÚsourceÚstrc                ó   — g }t          | d¦  «        �r't                               d„ | j                             ¦   «         D ¦   «         ¦  «        }|r(|                     d                     |¦  «        ¦  «         t          | j        j	        ¦  «        D ]¨\  }}| 
                    ¦   «         dv s'| 
                    ¦   «                              d¦  «        rf| j                             |fd¦  «        }t          |t          ¦  «        rt          |t           ¦  «        r|dk    r|                     |› d|› �¦  «         Œ©d                     |¦  «        S )	NÚfnc              3  ó”   K  — | ]C}t          |t          ¦  «        ¯|                     d ¦  «        ¯,|                     d ¦  «        V — ŒDdS )Ú*N)Ú
isinstancer   Ú
startswithÚlstrip)r   Úvalues     r   r   z#_compile_variant.<locals>.<genexpr>   s‡   è è € ð  Mð  M°UÕ[eÐfkÕmpÑ[qÔ[qð  MÐv{÷  wGò  wGð  HKñ  wLô  wLð  M˜uŸ|š|¨CÑ0Ô0ð  Mð  Mð  Mð  Mð  Mð  Mr   ú/>   ÚBÚCÚDÚHÚKÚMÚNÚTÚWÚBDÚBKÚBMÚBNÚBTÚBWÚSX0ÚBLOCK_ÚdynamicÚ=Ú )ÚhasattrÚdictÚfromkeysÚ	signatureÚvaluesÚappendÚjoinÚ	enumerater   Ú	arg_namesÚupperr"   Ú	constantsÚgetr!   r   Úbool)r   ÚpartsÚdtypesÚindexÚnamer$   s         r   Ú_compile_variantrK      su  € Ø€EÝˆv�tÑÔñ 4Ý—’ð  Mð  M¸fÔ>N×>UÒ>UÑ>WÔ>Wð  Mñ  Mô  Mñ  Mô  MˆØð 	+Ø�LŠL˜Ÿš &Ñ)Ô)Ñ*Ô*Ð*Ý$ V¤YÔ%8Ñ9Ô9ð 	4ð 	4‰KˆE�4Ø�zŠz‰|Œ|ÐwÐwÐwÐ{÷  |Fò  |Fñ  |Hô  |H÷  |Sò  |Sð  T\ñ  |]ô  |]ÐwØÔ(×,Ò,¨e¨X°yÑAÔA�Ý˜e¥SÑ)Ô)ð 4µ*¸UÅDÑ2IÔ2Ið 4ÈUÐV_ÒM_ÐM_Ø—L’L DÐ!2Ð!2¨5Ð!2Ð!2Ñ3Ô3Ð3øØ�8Š8�E‰?Œ?Ðr   rF   c                 ó  ‡‡‡— 	 dd l } n# t          $ r Y dS w xY wt          | dd ¦  «        }t          |dd ¦  «        Št          t          | dd ¦  «        dd ¦  «        }‰�"|� t          ‰d¦  «        rt          |d¦  «        sdS ‰j        Št          ‰t
          d¦  «        s"ˆfd„}t          |t
          d	¦  «         |‰_        |j        Št          ‰t
          d¦  «        s#ˆˆfd
„}t          |t
          d	¦  «         ||_        d	S )Nr   FÚknobsÚcompilationÚcompilerÚlistenerÚget_cache_managerc                 ó†  •— ‰� ‰di | ¤Ž |                       d¦  «        }t          t          |dd¦  «        pt          |¦  «        j        ¦  «        }|                       dd¦  «        rd S t          |                       d¦  «        ¦  «        }t          |¦  «        }|rd|› d�nd}t          d	|› |› d
|d›d�d¬¦  «         d S )NÚsrcrJ   Ú Ú	cache_hitTr   z [ú]z[WanGP][Triton] Compiled z in z.0fz ms.©Úflushr   )rE   r   r   ÚtypeÚ__name__r   rK   Úprint)Úeventr   Úkernel_nameÚduration_msÚvariantÚdetailsÚprevious_listeners         €r   rP   z3install_triton_compilation_logger.<locals>.listener,   så   ø€ Ø Ð,Ø!Ð!Ð*Ð* EÐ*Ð*Ð*Ø—Y’Y˜uÑ%Ô%ˆFÝ�g f¨f°bÑ9Ô9ÐR½TÀ&¹\¼\Ô=RÑSÔSˆKØ�yŠy˜ dÑ+Ô+ð Ø�Ý.¨u¯yªy¸Ñ/AÔ/AÑBÔBˆKÝ& vÑ.Ô.ˆGØ)0Ð8�o˜7�o�o�o�o°bˆGÝÐ]¨kÐ]¸7Ð]Ð]ÈÐ]Ð]Ð]Ð]ÐeiÐjÑjÔjÐjÐjÐjr   Tc                óP   •‡—  ‰| ¦  «        Š G ˆˆfd„d¦  «        } |¦   «         S )Nc                  ó&   •— e Zd Zˆ fd„Zˆ ˆfd„ZdS )ú]install_triton_compilation_logger.<locals>.get_cache_manager.<locals>.CompilationCacheManagerc                ó$   •— t          ‰|¦  «        S r   )r   )ÚselfrJ   Úcache_managers     €r   Ú__getattr__ziinstall_triton_compilation_logger.<locals>.get_cache_manager.<locals>.CompilationCacheManager.__getattr__A   s   ø€ Ý" =°$Ñ7Ô7Ð7r   c                óÒ   •— ‰                      |¦  «        }|                     d¦  «        r;‰j        s|r|                     |¦  «        €t	          d|d d…         › d�d¬¦  «         |S )Nz.jsonz[WanGP][Triton] Preparing éûÿÿÿz (compiling, please wait)...TrW   )Ú	get_groupÚendswithÚalways_compilerE   r[   )rf   ÚfilenameÚgrouprg   rN   s      €€r   rk   zginstall_triton_compilation_logger.<locals>.get_cache_manager.<locals>.CompilationCacheManager.get_groupD   sƒ   ø€ Ø)×3Ò3°HÑ=Ô=�EØ×(Ò(¨Ñ1Ô1ð t°{Ô7Qð tÐY^ð tÐbg×bkÒbkÐltÑbuÔbuÐb}ÝÐf¸8ÀCÀRÀC¼=ÐfÐfÐfÐnrÐsÑsÔsÐsØ �Lr   N)rZ   Ú
__module__Ú__qualname__rh   rk   )rg   rN   s   €€r   ÚCompilationCacheManagerrd   @   sL   ø€ € € € € ð8ð 8ð 8ð 8ð 8ð!ð !ð !ð !ð !ð !ð !ð !r   rr   r   )Úkeyrr   rg   rN   Úprevious_get_cache_managers     @€€r   rQ   z<install_triton_compilation_logger.<locals>.get_cache_manager=   s\   øø€ Ø6Ð6°sÑ;Ô;ˆMð!ð !ð !ð !ð !ð !ð !ð !ñ !ô !ð !ð +Ð*Ñ,Ô,Ð,r   )ÚtritonÚ	Exceptionr   r:   rP   Ú_LOGGER_MARKERÚsetattrrQ   )ru   rM   rO   rP   rQ   rN   rt   ra   s        @@@r   Ú!install_triton_compilation_loggerry      sk  øøø€ ðØˆˆˆˆøÝð ð ð Øˆuˆuðøøøõ �F˜G TÑ*Ô*€EÝ˜% °Ñ5Ô5€KÝ•w˜v z°4Ñ8Ô8¸*ÀdÑKÔK€HØÐ˜hÐ.µg¸kÈ:Ñ6VÔ6VÐ.Õ^eÐfnð  qDñ  _Eô  _EÐ.Øˆuà#Ô,ÐÝÐ$¥n°eÑ<Ô<ð (ð
	kð 
	kð 
	kð 
	kð 
	kõ 	��.¨$Ñ/Ô/Ð/Ø'ˆÔà!)Ô!;ÐÝÐ-­~¸uÑEÔEð 7ð	-ð 	-ð 	-ð 	-ð 	-ð 	-õ 	Ð!¥>°4Ñ8Ô8Ð8Ø%6ˆÔ"Øˆ4s   …
 Š
—N)r   r   r   r   )r   r   r   r   )r   rF   )Ú
__future__r   Útypingr   rw   r   rK   ry   r   r   r   ú<module>r|      sv   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ð 4€ðð ð ð ðð ð ð ð0ð 0ð 0ð 0ð 0ð 0r   