o
    î0 i	  ã                   @  sV   d dl mZ d dlZd dlmZ ddlmZmZ er d dlm	Z	 ddd„Z
dd„ ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Úis_torch_availableÚ	strtobool)ÚnnÚmoduleú	nn.ModuleÚreturnÚboolc                 C  sD   t ƒ sdS dd l}|j ¡ sdS dd l}t| |jjjƒp!t| ddƒS )NFr   Z_is_fsdp_managed_module)	r   ÚtorchÚdistributedÚis_availableZtorch.distributed.fsdpÚ
isinstanceZfsdpZFullyShardedDataParallelÚgetattr)r   r   © r   új/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/transformers/integrations/fsdp.pyÚis_fsdp_managed_module   s   
ÿr   c                  C  sR   t ƒ r'dd l} | j ¡ o&| j ¡ o&ttj dd¡ƒdko&ttj dd¡ƒdkS dS )Nr   ZACCELERATE_USE_FSDPÚFalseé   ZFSDP_CPU_RAM_EFFICIENT_LOADINGF)	r   r   r   r   Zis_initializedr   ÚosÚenvironÚget)r   r   r   r   Úis_fsdp_enabled*   s   
ÿþür   )r   r	   r
   r   )Ú
__future__r   r   Útypingr   Úutilsr   r   r   r   r   r   r   r   r   r   Ú<module>   s   
