o
    پig                     @   s4   d dl Z d dlmZ d dlmZ G dd deZdS )    Nfuse_scale_shift_kernel)CustomOpc                       sv   e Zd ZdZddef fddZ	ddejdejd	ejd
edejf
ddZ		ddejdejd	ejd
efddZ
  ZS )MulAddze
    Fuse elementwise mul and add
    Input: a, b, c, OptionalInt[k]
    Output: a * (k + b) + c
     prefixc                    s   t    d S )N)super__init__)selfr   	__class__ d/home/ubuntu/.local/lib/python3.10/site-packages/sglang/multimodal_gen/runtime/layers/elementwise.pyr	      s   zMulAdd.__init__r   abckreturnc                 C   sZ   |  dkr%|jd }|jd | }||jd||fd||  dd S ||||   S )N      )dimsizes   )r   shape	unflattenflatten)r
   r   r   r   r   
num_framesframe_seqlenr   r   r   forward_native   s   
zMulAdd.forward_nativec                 C   s   t ||||dS )N)scale_constantr   )r
   r   r   r   r   r   r   r   forward_cuda    s   zMulAdd.forward_cuda)r   )r   )__name__
__module____qualname____doc__strr	   torchTensorintr   r    __classcell__r   r   r   r   r      s2    
r   )r&   .sglang.jit_kernel.diffusion.triton.scale_shiftr   .sglang.multimodal_gen.runtime.layers.custom_opr   r   r   r   r   r   <module>   s    