o
    àÙ·iŒ  ã                   @   sL   d dl mZ ddlmZmZmZ ddlmZmZ ddl	m
Z
mZ dd„ ZdS )	é    )ÚENVé   )Ú_unified_all_to_all_o_async_fnÚ _unified_all_to_all_qkv_async_fnÚ_prepare_ulysses_comm_metadata)Ú#_is_diffusers_parallelism_availableÚ_maybe_patch_find_submodule)Úenable_ulysses_anythingÚenable_ulysses_float8c                  C   s:   t jsdS t jr
dS dt _ddlm} m}m}m}m} dS )zIMaybe re-register native attention backend to enable context parallelism.NTr   ©Ú_native_attentionÚ_sdpa_cudnn_attentionÚ_sage_attentionÚ_flash_attention_3Ú_native_npu_attention)	r   Ú%CACHE_DIT_ENABLE_CUSTOM_ATTN_DISPATCHÚ-CACHE_DIT_ENABLE_CUSTOM_ATTN_ALREADY_DISPATCHÚ_attention_dispatchr   r   r   r   r   r   © r   ú\/home/ubuntu/.local/lib/python3.10/site-packages/cache_dit/parallelism/attention/__init__.pyÚ$_maybe_register_custom_attn_backends   s    r   N)Úcache_dit.envsr   Ú_distributed_primitivesr   r   r   Ú_experimental_utilsr   r   Ú_templated_ulyssesr	   r
   r   r   r   r   r   Ú<module>   s
    