
    Ph?                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dl	mZ d	 Z e
e      Z e       Zed
        ZdefdZd Zy)    N)CalledProcessError)CppCodeCache)
has_triton)LazyVal	IS_FBCODE)register_backend
compile_fxcount_bytes_inner)TestCasec                      	 t        j                  d       t         S # t        t        t
        j                  j                  j                  t
        j                  j                  j                  f$ r Y yw xY w)N F)
r   loadr   r   OSErrortorch	_inductorexcInvalidCxxCompilerCppCompileError     qC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/testing/_internal/inductor_utils.pytest_cpur      s_    	"}..++	  s    AA65A6c                 &    t        | |t              S )N)inner_compiler	   )gmexample_inputss     r   count_bytes_inductorr       s    b.8IJJr   selfc                     d}d}|j                  d      }|D ]#  }d|v sd}t        j                  d|      !d} n | j                  |d|        | j                  |d|        y )	NF
zfor(Tz;.*ks.*;z)Failed to find dynamic for loop variable
)msgzFailed to find for loop
)splitresearch
assertTrue)r   codefor_loop_foundhas_dynamiclineslines         r   _check_has_dynamic_shaper,   $   s     NKJJtET>!Nyyd+7"  	OOEdVL   	OON&?v$FGr   c                      | rfd}|S d }|S )Nc                       fd}|S )Nc                 d    | j                   dk(  rt        j                         | g|i |S )Ncuda)deviceunittestSkipTest)r   argskwargsfnr"   s      r   innerz.skipCUDAIf.<locals>.decorate_fn.<locals>.inner:   s5    ;;&("++C00$0000r   r   )r6   r7   r"   s   ` r   decorate_fnzskipCUDAIf.<locals>.decorate_fn9   s    1 Lr   c                     | S )Nr   )r6   s    r   r8   zskipCUDAIf.<locals>.decorate_fn@   s    Ir   r   )condr"   r8   s    ` r   
skipCUDAIfr;   7   s     	 	 r   )r   r$   r2   
subprocessr   torch._inductor.codecacher   torch.utils._tritonr   $torch.testing._internal.common_utilsr   r   torch._dynamo.backends.registryr   torch._inductor.compile_fxr
   r   r   r   HAS_CPUHAS_CUDAr   r,   r;   r   r   r   <module>rD      sg     	  ) 2 * = D 9
 (
<K KH
H&r   