o
    î0 ir  ã                   @   s*   d dl mZ ddlmZ defdd„ZdS )é    )Ú
DataLoaderé   )Úis_torch_xla_availableÚ
dataloaderc                 C   s`   t ƒ r.dd lm  m} t| |jƒsJ dƒ‚dd lm  m} | | 	¡ d¡}|| j
d< | S | S )Nr   zPThe dataloader must be a `torch_xla.distributed.parallel_loader.MpDeviceLoader`.)ZfsdpNZinput_sharding)r   Z%torch_xla.distributed.parallel_loaderÚdistributedZparallel_loaderÚ
isinstanceZMpDeviceLoaderZtorch_xla.distributed.spmdZspmdZShardingSpecZget_global_meshZ_parallel_loader_kwargs)r   ÚplÚxsZsharding_spec© r
   úi/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/transformers/integrations/tpu.pyÚtpu_spmd_dataloader   s   ÿ
r   N)Ztorch.utils.datar   Úutilsr   r   r
   r
   r
   r   Ú<module>   s   