
    g                         d dl mZmZ d dlmZ ddlmZmZmZm	Z	 ddl
mZ  e            rd dlZ ej        e          Ze G d d	e                      ZdS )
    )	dataclassfield)Tuple   )cached_propertyis_tf_availableloggingrequires_backends   )BenchmarkArgumentsNc                       e Zd ZU g dZ fdZ edddi          Zeed<    eddd	i          Z	e
ed
<    edddi          Zeed<    edddi          Zeed<   eded         fd            Zeded         fd            Zedefd            Zedd            Zed             Zede
fd            Zedefd            Z xZS )TensorFlowBenchmarkArguments)no_inferenceno_cudano_tpuno_speed	no_memoryno_env_printno_multi_processc                    | j         D ]T}||v rN|dd         }|                    |           ||<   t                              | d| d| d||                     U|                    d| j                  | _        |                    d| j                  | _        |                    d| j                  | _        |                    d	| j                  | _         t                      j	        d
i | dS )z
        This __init__ is there for legacy code. When removing deprecated args completely, the class can simply be
        deleted
           Nz! is depreciated. Please use --no-z or =tpu_name
device_idx
eager_modeuse_xla )
deprecated_argspoploggerwarningr   r   r   r   super__init__)selfkwargsdeprecated_argpositive_arg	__class__s       d/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/benchmark/benchmark_args_tf.pyr#   z%TensorFlowBenchmarkArguments.__init__+   s   
 #2 	 	N''-abb1+1::n+E+E'E|$% > > > >$> >'-l';> >   

:t}== **\4?CC **\4?CCzz)T\::""6"""""    NhelpzName of TPU)defaultmetadatar   r   z&CPU / GPU device index. Defaults to 0.r   Fz Benchmark models in eager model.r   z]Benchmark models using XLA JIT compilation. Note that `eager_model` has to be set to `False`.r   return1tf.distribute.cluster_resolver.TPUClusterResolverc                 
   t          | dg           d }| j        rh	 | j        r*t          j        j                            | j                  }n#t          j        j                                        }n# t          $ r d }Y nw xY w|S Ntf)r
   tpur   r2   
distributecluster_resolverTPUClusterResolver
ValueError)r$   r3   s     r)   
_setup_tpuz'TensorFlowBenchmarkArguments._setup_tpuN   s    $'''8 	= N-8KKDMZZCC-8KKMMC   
s   AA1 1B ?B )tf.distribute.Strategyr/   c                 j   t          | dg           | j        rrt          j                            | j                   t          j        j                            | j                   t          j	        
                    | j                  }n| j        rYt          j                            | j        | j                 d           t          j	                            d| j                   }nHt          j                            g d           t          j	                            d| j                   }|S )Nr2   GPUz/gpu:)devicez/cpu:)r
   is_tpur2   configexperimental_connect_to_clusterr8   r3   experimentalinitialize_tpu_systemr4   TPUStrategyis_gpuset_visible_devicesgpu_listr   OneDeviceStrategy)r$   strategys     r)   _setup_strategyz,TensorFlowBenchmarkArguments._setup_strategy\   s    $'''; 	]I55doFFFF55doFFF}00AAHH { ]	--dmDO.LeTTT=::B[$/B[B[:\\	--b%888=::B[$/B[B[:\\r*   c                 6    t          | dg           | j        d uS r1   )r
   r8   r$   s    r)   r=   z#TensorFlowBenchmarkArguments.is_tpup   s!    $'''d**r*   r9   c                 2    t          | dg           | j        S r1   )r
   rH   rJ   s    r)   rG   z%TensorFlowBenchmarkArguments.strategyu   s    $'''##r*   c                 b    t          | dg           t          j                            d          S )Nr2   r;   )r
   r2   r>   list_physical_devicesrJ   s    r)   rE   z%TensorFlowBenchmarkArguments.gpu_listz   s*    $'''y..u555r*   c                 ^    t          | dg           | j        rt          | j                  S dS )Nr2   r   )r
   cudalenrE   rJ   s    r)   n_gpuz"TensorFlowBenchmarkArguments.n_gpu   s3    $'''9 	&t}%%%qr*   c                     | j         dk    S )Nr   )rQ   rJ   s    r)   rC   z#TensorFlowBenchmarkArguments.is_gpu   s    zA~r*   )r.   r9   )__name__
__module____qualname__r   r#   r   r   str__annotations__r   intr   boolr   r   r   r8   rH   propertyr=   rG   rE   rQ   rC   __classcell__)r(   s   @r)   r   r      s          O# # # # #& E-(  Hc    eBC  J    uUf>`5abbbJbbbEs
  GT    E"UV    _ 't!u    _& + + + + X+ $ $ $ X$ 6 6 X6 s    X     X    r*   r   )dataclassesr   r   typingr   utilsr   r   r	   r
   benchmark_args_utilsr   
tensorflowr2   
get_loggerrS   r    r   r   r*   r)   <module>rb      s   " ) ( ( ( ( ( ( (       P P P P P P P P P P P P 4 4 4 4 4 4 ?  
	H	%	% h h h h h#5 h h h h hr*   