� %�gL��.�ddlZddlmZmZddlZddlZddlmZddl m Z ddl m Z m Z ddlmZmZmZmZmZmZmZe��r ddlmcmZdd ed ed efd �Zddee deejfd�Zddeee e fdeejfd�Z!dS)�N)�Optional�Union�)�AcceleratorState�)�CUDA_DISTRIBUTED_TYPES)�DistributedType�RNGType)�is_hpu_available�is_mlu_available�is_musa_available�is_npu_available�is_sdaa_available�is_torch_xla_available�is_xpu_availableF�seed�device_specific� deterministicc��|r|t��jz }tj|��tj�|��t j|��t��r!t j� |���nt��r t j � |��n�t��r t j � |��n�t��r t j� |��n{t!��r t j� |��nMt%��r t j� |��nt j� |��t+��rt-j|��|rt jd��dSdS)a� Helper function for reproducible behavior to set the seed in `random`, `numpy`, `torch`. Args: seed (`int`): The seed to set. device_specific (`bool`, *optional*, defaults to `False`): Whether to differ the seed on each device slightly with `self.process_index`. deterministic (`bool`, *optional*, defaults to `False`): Whether to use deterministic algorithms where available. Can slow down training. TN)r� process_index�randomr�np�torch� manual_seedr�xpu�manual_seed_allr�npur �mlur�sdaar �musar �hpu�cudar�xm� set_rng_state�use_deterministic_algorithms)rrrs �g/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/accelerate/utils/random.py�set_seedr''s����1� � �"�"�0�0�� �K������I�N�N�4���� ��d������� )� � �!�!�$�'�'�'�'� � � � )� � �!�!�$�'�'�'�'� � � � )� � �!�!�$�'�'�'�'� � � �)� � �"�"�4�(�(�(�(� � � �)� � �"�"�4�(�(�(�(� � � �)� � �!�!�$�'�'�'�'� � �"�"�4�(�(�(����� �������1� �*�4�0�0�0�0�0�1�1��rng_type� generatorc�� �|tjkrtj��}�n\|tjkr tj���}�n,|tjkr?t��s Jd���tjtj����}�n�|tj kr8t��s Jd���tj ���}�n�|tj kr8t��s Jd���tj���}�nM|tjkr8t#��s Jd���tj���}�n|tjkr7t)��s Jd���tj���}n�|tjkr7t/��s Jd���tj���}nw|tjkr7t5��s Jd���tj���}n0|tjkr |� Jd���|���}t=��}|jt@jkrd|�!tj"����}tj#|g��tj$��|�%��}�n|jtLvs~|jt@j'ksi|jt@j(ksT|jt@j)ks?|jt@j*ks*|jt@j+ks|jt@j,krO|�!|j-��}tj.�/|d ��|�%��}n5|jt@j0kr tj.�/|d ��|tjkrtj1|��dS|tjkr!tj�1|��dS|tj kr!tj �1|��dS|tj kr!tj�1|��dS|tjkr!tj�1|��dS|tjkr!tj�1|��dS|tjkr!tj�1|��dS|tjkr!tj�1|��dS|tjkr(tj1|�2����dS|tjkr|�3|��dSdS) Nz8Can't synchronize XLA seeds as torch_xla is unavailable.z;Can't synchronize NPU seeds on an environment without NPUs.z;Can't synchronize MLU seeds on an environment without MLUs.z=Can't synchronize SDAA seeds on an environment without SDAAs.z=Can't synchronize MUSA seeds on an environment without MUSAs.z;Can't synchronize XPU seeds on an environment without XPUs.z;Can't synchronize HPU seeds on an environment without HPUs.z)Need a generator to synchronize its seed.r)4r �TORCHr� get_rng_state�CUDAr"�XLAr�tensorr#�NPUrr�MLUr r�SDAArr�MUSAr r �XPUrr�HPUr r!� GENERATOR� get_stater�distributed_typer �to� xla_device�collective_broadcast� mark_step�cpur� MULTI_MLU� MULTI_SDAA� MULTI_MUSA� MULTI_NPU� MULTI_XPU� MULTI_HPU�device� distributed� broadcast� MULTI_CPUr$�item� set_state)r)r*� rng_state�states r&�synchronize_rng_staterMNs���7�=� � ��'�)�)� � � �W�\� !� !��J�,�,�.�.� � � �W�[� � �%�'�'�c�c�)c�c�c�'��L��!1�!3�!3�4�4� � � �W�[� � ��!�!�`�`�#`�`�`�!��I�+�+�-�-� � � �W�[� � ��!�!�`�`�#`�`�`�!��I�+�+�-�-� � � �W�\� !� !� �"�"�c�c�$c�c�c�"��J�,�,�.�.� � � �W�\� !� !� �"�"�c�c�$c�c�c�"��J�,�,�.�.� � � �W�[� � ��!�!�`�`�#`�`�`�!��I�+�+�-�-� � � �W�[� � ��!�!�`�`�#`�`�`�!��I�+�+�-�-� � � �W�&� &� &��$�$�&Q�$�$�$��'�'�)�)� � � � �E� ���!4�4�4��L�L�����1�1� � ��� �,�,�,� � �����M�M�O�O� � � ��"8�8�8� � !�_�%>� >� >� � !�_�%?� ?� ?� � !�_�%?� ?� ?� � !�_�%>� >� >� � !�_�%>� >� >� � !�_�%>� >� >��L�L���.�.� � ��#�#�I�q�1�1�1��M�M�O�O� � � � �?�#<� <� <� ��#�#�I�q�1�1�1��7�=� � � ��I�&�&�&�&�&� �W�\� !� !� � � � ��+�+�+�+�+� �W�[� � � � ��� �*�*�*�*�*� �W�[� � � � ��� �*�*�*�*�*� �W�\� !� !� � � � ��+�+�+�+�+� �W�\� !� !� � � � ��+�+�+�+�+� �W�[� � � � ��� �*�*�*�*�*� �g�k� !� !� � ��� �*�*�*�*�*� �W�[� � � �����)�)�*�*�*�*�*� �W�&� &� &����I�&�&�&�&�&� '� &r(� rng_typesc�L�|D] }tt|��|����!dS)N)r*)rMr )rNr*r)s r&�synchronize_rng_statesrP�s=���F�F���g�h�/�/�9�E�E�E�E�E�F�Fr()FF)NN)N)"r�typingrr�numpyrrrLr� constantsr� dataclassesr r �importsr r r rrrr�torch_xla.core.xla_model�core� xla_modelr#�int�boolr'� GeneratorrM�list�strrP�r(r&�<module>r_s���� � � �"�"�"�"�"�"�"�"����� � � � �$�$�$�$�$�$�-�-�-�-�-�-�1�1�1�1�1�1�1�1�����������������������*�)�)�)�)�)�)�)�)�)�$1�$1�3�$1��$1�d�$1�$1�$1�$1�NI'�I'�H�W�$5�I'��RW�Ra�Ib�I'�I'�I'�I'�XF�F�d�5��g��+>�&?�F�H�UZ�Ud�Le�F�F�F�F�F�Fr(
Memory