o
    Ti                     @   s   d dl m  m  m  m  mZ d dlmZ d dlm	Z	m
Z
 d dlmZ dd Z	ddd	ZdddZ	dddZ	
	dddZdS )    N)LayerNormOp)
layer_normlayer_norm_residual)ActivationFuncTypec                 C   s$   |s|s|rJ t j| |d dddS N Tbias
activation
use_triton
matmul_extmatmul)inputweightasync_opq_scaleq_int8transposed_mode r   b/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/ops/transformer/inference/triton/ops.pyvector_matmul_func   s   r   Tc                 C   s8   |
rJ d}t j| |||dd}t j||d ddd}|S )NgeluTr   r   r   )r   r   weight_scaler	   
weight_outweight_out_scaleepsilonpre_layer_normr   r   r   use_triton_lnr
   intm_outff_outr   r   r   fused_gemm_gelu   s   r!   Fc                 C   s,   |s|rJ t j| ||r|nd ddd}|S r   r   )r   r   r	   add_biasdo_flash_attn	num_headsr   qkv_outr   r   r   linear_func/   s   r&   c                 C   s   |rJ |rt | |||||}n
t | |||||}t|tjkr$d}nt|tjkr.d}nd}tj||||dd}tj||d ddd}||fS )Nr   relur   Tr   )r   r   r   GELUReLUr   r   )r   residual
input_biasweight_intermr   r	   gammabetar   r   mlp_after_attnweight_interm_scaler   r   mlp_act_func_typer   r   	mlp_inputr
   r   r    r   r   r   mlp_gemm_func6   s$   r3   c                 C   sP   |	rJ |
rt | |||}nt | |||}tj|||r|nd ddd}||fS r   )r   r   r   r   )r   r   r   r	   r-   r.   r   r"   r   r   r   	qkv_inputr%   r   r   r   qkv_gemm_funcd   s   r5   )T)F)FT)5deepspeed.ops.transformer.inference.triton.matmul_extopstransformer	inferencetritonr   9deepspeed.ops.transformer.inference.op_binding.layer_normr   5deepspeed.ops.transformer.inference.triton.layer_normr   r   deepspeed.utils.typesr   r   r!   r&   r3   r5   r   r   r   r   <module>   s   $


8