o
    wi                     @   s   d dl Z d dlmZmZmZmZmZmZmZm	Z	 d dl
mZ e jdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)FLOPSConfigbertgpt3llama2llama3mixtralnemotrontransformerhyenac                   C   s   t ddddddddddd	
S )
N      i      i      iQ  zSDH*)
gbsenc_seq_lenhslayersffn_hsattention_headsmoe_router_topkquery_groups
vocab_sizemodel_pattern)r    r   r   \/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/tests/utils/test_flops_formulas.pyflops_config   s   r   c                 C      d}t | |ks
J d S )Nl      \Y )r   r   expected_flopsr   r   r   	test_gpt3%      r    c                 C   r   )Ng     8B)r   r   r   r   r   test_llama2*   r!   r"   c                 C   r   )Ng    	CB)r   r   r   r   r   test_llama3/   r!   r#   c                 C   r   )Ng     GIB)r   r   r   r   r   test_nemotron4   r!   r$   c                 C   r   )Ng    DB)r   r   r   r   r   test_mixtral9   r!   r%   c                 C   r   )Ng3B)r   r   r   r   r   	test_bert>   r!   r&   c                 C   r   )Ng    6;Br
   r   r   r   r   
test_hyenaC   r!   r'   c                 C   r   )Ng    ْ;B)r	   r   r   r   r   test_transformerH   r!   r(   c                 C   s   d| _ d}t| |ksJ d S )Nr   g    ق6B)r   r	   r   r   r   r   test_transformer_no_moeM   s   r)   )pytestnemo.utils.flops_formulasr   r   r   r   r   r   r   r	   nemo.utils.hyena_flops_formulasr   fixturer   r    r"   r#   r$   r%   r&   r'   r(   r)   r   r   r   r   <module>   s   (
