§
    ×§g…  ã                   ó@   — d dl Z d dlmZ  G d„ de j        ¦  «        ZdS )é    Nc                   óP   — e Zd ZdZej        dej        dej        fd„¦   «         ZdS )ÚSharderap  
    This is an interface which allows user to create more advanced
    sharding strategies that are not easily be composed by the
    `ShardingSpec`.

    :class:`torch.distributed._shard.sharding_plan.ShardingPlan` could
    take an object of the `Sharder` and call `shard` to shard the module,
    then replace the original module with sharded module returned.
    ÚmoduleÚreturnc                 ó   — dS )aq  
        Shard a module base on the implementation of this method, and
        return the sharded version of the module.

        Args:
            module (:class:`torch.nn.Module`):
                The module to apply sharding to.
        Returns:
            A :class:`torch.nn.Module` object that represents a module
            that's already been sharded.
        N© )Úselfr   s     ú\/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/distributed/_shard/sharder.pyÚshardzSharder.shard   s   € € € ó    N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodÚnnÚModuler   r   r   r
   r   r      sT   € € € € € ðð ð 	Ôð˜BœIð ¨"¬)ð ð ð ñ Ôðð ð r   r   )r   Útorch.nnr   ÚABCr   r   r   r
   ú<module>r      sV   ðØ 
€
€
€
à Ð Ð Ð Ð Ð ðð ð ð ð ˆcŒgñ ô ð ð ð r   