
    .`i}                        d dl mZ d dlmZmZ d dlZd dlZddlmZm	Z	 d dl
mZ  ed           G d	 d
                      Z ed           G d d                      Ze	Z G d dej        j                  ZddZd ZdS )    )	dataclass)
InFlexDataOutFlexDataN   )_swiglu
_swiglu_fn)target_infoT)frozenc                   Z    e Zd ZU  e            Zeed<    e            Zeed<   dZe	ed<   dS )FlexCtxout_datainp_dataFsaturate_infN)
__name__
__module____qualname__r   r   __annotations__r   r   r   bool     z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/third_party/triton_kernels/swiglu.pyr   r   	   sN         'KMMHk)))%:<<Hj'''L$r   r   c                   8    e Zd ZU eed<    e            Zeed<   dS )PrecisionConfiglimitflex_ctxN)r   r   r   floatr   r   r   r   r   r   r   r      s1         LLL		Hg!!!!!r   r   c                   $    e Zd Zed             ZdS )SwiGLUc                    |j         d         }|                                |z  }|                                d         dk    sJ |j         d         dz  dk    sJ t          j        ||dz  f|j        |j                  }|j        }d|j        z  d}
}	d}t          j
                    sd	d
ini }t          j        |dz  |
          }t          j                    }|Zt          j
                    rdnd}|||z  z  }t          dt          j        ||                    }t          ||z  d|z            f}n?t          j        ||	          }||z  d|z  k    rd|z  f}nt          ||z  d|z            f}d }||j        j        |j                 }t'          |         |j                            |          |j        j        |j        j        |j        j        |j                            |          |j        j        |||dz  |j         d         d|j         d         d|j        |f|	|
|dz  |
z  dk    |||j        |d| |                    |j         d d         |j         dd          z             }|S )Nr      r   )sizedtypedevice          maxnreg@      )BLOCK_MBLOCK_NEVEN_NM_BLOCKSN_BLOCKSflexpoint_saturate_inf	num_warps)shapenumelstridetorchemptyr#   r$   r   itemsizer	   is_hiptritoncdivnum_smsmaxmin	expt_datatoken_offs_rawn_expts_totr   r   reinterpretexpected_scaleactual_scalechecksum_scaler   scaler   r   view)ctxaalphaprecision_configrouting_dataNMoutr   r+   r,   r1   kwargsr/   r;   waves_per_smnum_pidr.   gridn_tokenss                       r   forwardzSwiGLU.forward   s   GBKGGIINxxzz"~""""wr{Q!####k16{!'!(KKK#,+S	(3(:(<(<D)R";qAvw//%''#!,!3!5!5>223L!:;G1fk'8<<==H8+Q[99<DD{1g..H("a'k11GHx/W==@##-<\=UVH))#..,*,))!,,#FGBKIbM"	
  Fg%*#+#8-	
 	
. /	
 	
 	
2 hhqwss|cin455
r   N)r   r   r   staticmethodrT   r   r   r   r   r      s-        6 6 \6 6 6r   r   c                 <    t                               | |||          S N)r   apply)rH   rI   rJ   rK   s       r   swiglurY   U   s    <<5"2LAAAr   c                     |j         }| dd d df         }||                    |          }| ddd df         }||                    | |          }|t          j        ||z            z  }||dz   z  }|S )N.r!   )r<   r   )r=   r<   )r   clampr5   sigmoid)rH   rI   rJ   r   a_gelua_linearout_gelurN   s           r   swiglu_torchr`   Y   s    "EsCCaCx[F%((add|H>>uf%>88efn555H
hl
#CJr   rW   )dataclassesr   triton_kernels.numericsr   r   r5   r9   swiglu_details._swiglur   r   triton_kernelsr	   r   r   	swiglu_fnautogradFunctionr   rY   r`   r   r   r   <module>rh      sW   ! ! ! ! ! ! ; ; ; ; ; ; ; ;   7 7 7 7 7 7 7 7 & & & & & & $        $" " " " " " " "
 	9 9 9 9 9U^$ 9 9 9xB B B B    r   