Ë
    )täiŸ  ã                   óz   — d dl mZ d dlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZmZ ddlmZ dZd	efd
efd„Zd„ Zd„ Zy)é    )ÚPathNé   )Úis_hpu_availableÚis_mlu_availableÚis_musa_availableÚis_neuron_availableÚis_npu_availableÚis_sdaa_availableÚis_xpu_availableé   )ÚClusterConfigÚdefault_json_config_file)ÚSubcommandHelpFormatterzFCreate a default config file for Accelerate with only a few flags set.ÚnoÚsave_locationc                 ó´  — t        |«      }|j                  j                  dd¬«       |j                  «       rt	        d|› d�«       y| j                  «       } | dvrt        d| › �«      ‚d| d	œ}t        «       r8t        j                  j                  «       }||d
<   d|d<   |dkD  rd|d<   nd|d<   t        «       r;t        j                  j                  «       }||d
<   d|d<   |dkD  rd|d<   �nÂd|d<   �n»t        «       r;t        j                  j                  «       }||d
<   d|d<   |dkD  rd|d<   �n}d|d<   �nvt        «       r;t        j                   j                  «       }||d
<   d|d<   |dkD  rd|d<   �n8d|d<   �n1t        j"                  j%                  «       r9t        j"                  j                  «       }||d
<   d|d<   |dkD  rd|d<   nàd|d<   nÚt'        «       r9t        j(                  j                  «       }	|	|d
<   d|d<   |	dkD  rd|d<   n�d|d<   n—t+        «       r9t        j,                  j                  «       }
|
|d
<   d|d<   |
dkD  rd|d<   nZd|d<   nTt/        «       r9t        j0                  j                  «       }||d
<   d|d<   |dkD  rd|d<   nd|d<   nd}	d|d<   d|d
<   d|d<   d|d<   d|d<   t3        di |¤Ž}|j5                  |«       |S )aÚ  
    Creates and saves a basic cluster config to be used on a local machine with potentially multiple GPUs. Will also
    set CPU if it is a CPU-only machine.

    Args:
        mixed_precision (`str`, *optional*, defaults to "no"):
            Mixed Precision to use. Should be one of "no", "fp16", or "bf16"
        save_location (`str`, *optional*, defaults to `default_json_config_file`):
            Optional custom save location. Should be passed to `--config_file` when using `accelerate launch`. Default
            location is inside the huggingface cache folder (`~/.cache/huggingface`) but can be overridden by setting
            the `HF_HOME` environmental variable, followed by `accelerate/default_config.yaml`.
    T)ÚparentsÚexist_okz Configuration already exists at zZ, will not override. Run `accelerate config` manually or pass a different `save_location`.F)r   Úfp16Úbf16Úfp8zL`mixed_precision` should be one of 'no', 'fp16', 'bf16', or 'fp8'. Received ÚLOCAL_MACHINE)Úcompute_environmentÚmixed_precisionÚnum_processesÚuse_cpur   Ú	MULTI_MLUÚdistributed_typeÚNOÚ
MULTI_SDAAÚ
MULTI_MUSAÚ	MULTI_HPUÚ	MULTI_GPUÚ	MULTI_XPUÚ	MULTI_NPUÚMULTI_NEURONr   ÚdebugÚenable_cpu_affinity© )r   ÚparentÚmkdirÚexistsÚprintÚlowerÚ
ValueErrorr   ÚtorchÚmluÚdevice_countr
   Úsdaar   Úmusar   ÚhpuÚcudaÚis_availabler   Úxpur	   Únpur   Úneuronr   Úto_json_file)r   r   ÚpathÚconfigÚnum_mlusÚ	num_sdaasÚ	num_musasÚnum_hpusÚnum_gpusÚnum_xpusÚnum_npusÚnum_neuron_coress               úq/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/accelerate/commands/config/default.pyÚwrite_basic_configrG   %   s;  € ô �Ó€DØ‡K�K×Ñ˜d¨TÐÔ2Ø‡{�{„}ÜØ.¨}¨oð  >Xð  Yô	
ð Ø%×+Ñ+Ó-€OØÐ;Ñ;ÜØZÐ[jÐZkÐló
ð 	
ð  /Ø*ñ€Fô ÔÜ—9‘9×)Ñ)Ó+ˆØ"*ˆˆÑØ!ˆˆyÑØ�aŠ<Ø)4ˆFÐ%Ò&à)-ˆFÐ%Ñ&ÜÔÜ—J‘J×+Ñ+Ó-ˆ	Ø"+ˆˆÑØ!ˆˆyÑØ�qŠ=Ø)5ˆFÐ%Ó&à)-ˆFÐ%Ó&Ü	Ô	Ü—J‘J×+Ñ+Ó-ˆ	Ø"+ˆˆÑØ!ˆˆyÑØ�qŠ=Ø)5ˆFÐ%Ó&à)-ˆFÐ%Ó&Ü	Ô	Ü—9‘9×)Ñ)Ó+ˆØ"*ˆˆÑØ!ˆˆyÑØ�aŠ<Ø)4ˆFÐ%Ó&à)-ˆFÐ%Ó&Ü	�‰×	 Ñ	 Ô	"Ü—:‘:×*Ñ*Ó,ˆØ"*ˆˆÑØ!ˆˆyÑØ�aŠ<Ø)4ˆFÐ%Ò&à)-ˆFÐ%Ò&Ü	Ô	Ü—9‘9×)Ñ)Ó+ˆØ"*ˆˆÑØ!ˆˆyÑØ�aŠ<Ø)4ˆFÐ%Ò&à)-ˆFÐ%Ò&Ü	Ô	Ü—9‘9×)Ñ)Ó+ˆØ"*ˆˆÑØ!ˆˆyÑØ�aŠ<Ø)4ˆFÐ%Ò&à)-ˆFÐ%Ò&Ü	Ô	Ü Ÿ<™<×4Ñ4Ó6ÐØ"2ˆˆÑØ!ˆˆyÑØ˜aÒØ)7ˆFÐ%Ò&à)-ˆFÐ%Ò&àˆØ ˆˆyÑØ"#ˆˆÑØ%)ˆÐ!Ñ"Ø€Fˆ7�OØ$)€FÐ Ñ!ÜÑ$˜VÑ$€FØ
×Ñ˜ÔØ€Kó    c                 óÖ   — | j                  d|t        t        ¬«      } | j                  dt        dd¬«       | j                  dg d¢t
        d	d
¬«       | j                  t        ¬«       | S )NÚdefault)r   ÚhelpÚformatter_classz--config_fileaT  The path to use to store the config file. Will default to a file named default_config.yaml in the cache location, which is the content of the environment `HF_HOME` suffixed with 'accelerate', or if you don't have such an environment variable, your cache directory ('~/.cache' or the content of `XDG_CACHE_HOME`) suffixed with 'huggingface'.r   )rJ   rK   Údestz--mixed_precision)r   r   r   z²Whether or not to use mixed precision training. Choose between FP16 and BF16 (bfloat16) training. BF16 training is only supported on Nvidia Ampere GPUs and PyTorch 1.10 or later.r   )ÚchoicesÚtyperK   rJ   )Úfunc)Ú
add_parserÚdescriptionr   Úadd_argumentr   ÚstrÚset_defaultsÚdefault_config_command)Úparserr   s     rF   Údefault_command_parserrX   Ž   s�   € Ø×Ñ˜y°'ÄÔ]tÐÓu€FØ
×ÑØÜ(ð"ð
 ð ô 
ð ×ÑØÚ&Üð[ð ð ô ð ×ÑÔ3ÐÔ4Ø€MrH   c                 óf   — t        | j                  | j                  «      }|rt        d|› �«       y y )Nz"accelerate configuration saved at )rG   r   r   r-   )ÚargsÚconfig_files     rF   rV   rV   ©   s2   € Ü$ T×%9Ñ%9¸4×;MÑ;MÓN€KÙÜÐ2°;°-Ð@ÕAð rH   )Úpathlibr   r0   Úutilsr   r   r   r   r	   r
   r   Úconfig_argsr   r   Úconfig_utilsr   rR   rT   rG   rX   rV   r)   rH   rF   Ú<module>r`      sO   ðõ" ã ÷÷ ñ ÷ AÝ 1ð W€ð (,ÐBZñ f¸Có fòRó6BrH   