U
    Mh(                     @   s   d dl Z d dlZd dlmZ d dlmZmZmZ dgZdZ	dZ
dd Zg Zee
d	D ]NZee
e d
D ]:Zee Zee
e dD ]Zee Zee	kree qqfqTe  G dd dejZdS )    N)	benchmark)FuzzedParameterFuzzedTensorParameterAliasSpectralOpFuzzer   i @  c                    s&    fddt tt|  d D S )Nc                 3   s   | ]} | V  qd S )N .0ibaser   [/var/www/html/venv/lib/python3.8/site-packages/torch/utils/benchmark/op_fuzzers/spectral.py	<genexpr>   s     zpower_range.<locals>.<genexpr>   )rangeintmathlog)upper_boundr   r   r   r   power_range   s    r            c                       s2   e Zd Zejdddeeed fddZ  Z	S )r   F      ?)dtypecudaprobability_regular)seedr   r   c                   s   t  jtddddddddd td	D d
d td	D  fddtd	D dd td	D gtdddddddd||d
g|d d S )Nndimg333333?g?)r   r   r   T)distributionstrictc                 S   s"   g | ]}t d | ttddqS )k_any_Z
loguniform)nameminvalmaxvalr    )r   MIN_DIM_SIZEMAX_DIM_SIZEr	   r   r   r   
<listcomp>.   s   z-SpectralOpFuzzer.__init__.<locals>.<listcomp>r   c                 S   s(   g | ] }t d | dd tD dqS )
k_regular_c                 S   s   i | ]}|d t t qS )r   )lenREGULAR_SIZES)r
   sizer   r   r   
<dictcomp>9   s      z8SpectralOpFuzzer.__init__.<locals>.<listcomp>.<dictcomp>r#   r    )r   r+   r	   r   r   r   r(   6   s
   c              	      s@   g | ]8}t d | td|  td| d  iddqS )kr)   r"   r   T)r#   r    r!   )r   r   r	   r   r   r   r(   <   s     c              
   S   s*   g | ]"}t d | dddddddqS )Zstep_g?gQ?g{Gz?)r   r         r   r.   )r   r	   r   r   r   r(   H   s
   x)Zk0Zk1Zk2)Zstep_0Zstep_1Zstep_2g      ?i   i   l        )
r#   r,   ZstepsZprobability_contiguousZmin_elementsZmax_elementsZmax_allocation_bytesZdim_parameterr   r   )
parametersZtensorsr   )super__init__r   r   r   )selfr   r   r   r   	__class__r0   r   r6      s<    

.zSpectralOpFuzzer.__init__)
__name__
__module____qualname__torchZfloat64r   boolfloatr6   __classcell__r   r   r8   r   r      s     )r   r=   Ztorch.utilsr   Ztorch.utils.benchmarkr   r   r   __all__r&   r'   r   r+   r   jZijr/   ZijkappendsortZFuzzerr   r   r   r   r   <module>   s"   