o
    پi<	                     @   s  d dl Z 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	m
Z
mZmZ d dlmZ dejdejddfddZdejdejddfd	d
ZdejdejddfddZe 	d'dejdejdeddfddZedd ed dD dgdZeg dddgdZg dZg dZg dZee eeZej ejj!ddgedeeedd i d!	de"de"de#fd"d#Z$e%d$kre$j&d%d& dS dS )(    Nrmsnorm)DEFAULT_DEVICEDEFAULT_DTYPEget_benchmark_rangerun_benchmarkinputweightreturnc                 C      t | || d d S N)outr   r   r	    r   ]/home/ubuntu/.local/lib/python3.10/site-packages/sglang/jit_kernel/benchmark/bench_rmsnorm.pysglang_aot_rmsnorm      r   c                 C   r   )N)output)jit_rmsnormr   r   r   r   sglang_jit_rmsnorm   r   r   c                 C   r   r   )
fi_rmsnormr   r   r   r   flashinfer_rmsnorm    r   r   ư>epsc                 C   sB   |   djddd}||  }| |   | |    d S )N   T)dimkeepdim)floatpowmeanrsqrtcopy_)r   r	   r   r    normr   r   r   torch_impl_rmsnorm'   s   r$   c                 C   s   g | ]}d | qS )r   r   ).0nr   r   r   
<listcomp>3   s    r'         )
full_rangeci_range)i   i   i   i   i    i   i   aotjitfitorch)zSGL AOT KernelzSGL JIT Kernel
FlashInferPyTorch))orange-)bluez--)greenz-.)red:hidden_size
batch_sizeprovideruszrmsnorm-performance)	x_namesx_valsline_arg	line_vals
line_namesstylesylabel	plot_nameargsc                    sL   t j|| fttdt j| ttdttttd  fdd}t|S )N)dtypedevicer,   c                      s       S )N)cloner   FN_MAPr   r;   r	   r   r   <lambda>Z   s    zbenchmark.<locals>.<lambda>)	r0   randnr   r   r   r   r   r$   r   )r9   r:   r;   fnr   rI   r   	benchmarkB   s   
rN   __main__T)
print_data)r   )'	itertoolsr0   tritontriton.testing
flashinferr   r   
sgl_kernel!sglang.jit_kernel.benchmark.utilsr   r   r   r   sglang.jit_kernel.normr   Tensorr   r   r   compiler   r$   rangeBS_LISTHIDDEN_SIZE_LIST	LINE_VALS
LINE_NAMESSTYLESlistproductconfigstestingperf_report	BenchmarkintstrrN   __name__runr   r   r   r   <module>   s    



