o
    پi                  
   @   s   d Z ddlZddlmZmZmZ ddlZddlZej	Z
dZg dZdefddZd	ed
edefddZ	ddedee deeeef fddZdS )z0Common utilities for jit_kernel benchmark files.    N)CallableListTuplecuda)g      ?g?g?returnc                   C   s(   t dd dkpt dd dkS )z#Check if running in CI environment.CIfalsetrueGITHUB_ACTIONS)osgetenvlower r   r   U/home/ubuntu/.local/lib/python3.10/site-packages/sglang/jit_kernel/benchmark/utils.pyis_in_ci   s   r   
full_rangeci_rangec                 C   s   t  r|S | S )z;Return appropriate benchmark range based on CI environment.)r   )r   r   r   r   r   get_benchmark_range   s   r   fn	quantilesc                 C   s4   |pt }tjj| |d\}}}d| d| d| fS )zExecute benchmark using CUDA graph and return times in microseconds.

    Args:
        fn: Function to benchmark
        quantiles: Quantiles for timing measurements [median, min, max]

    Returns:
        Tuple of (median_us, max_us, min_us)
    )r   i  )DEFAULT_QUANTILEStritontestingdo_bench_cudagraph)r   r   msmin_msmax_msr   r   r   run_benchmark   s   r   )N)__doc__r   typingr   r   r   torchtriton.testingr   bfloat16DEFAULT_DTYPEDEFAULT_DEVICEr   boolr   r   floatr   r   r   r   r   <module>   s$    