o
    پi                     @   s  d dl mZ d dlZdefddZe Zderdndfd	ejd
ejdejdejdejdejdededefddZder=dndfd	ejd
ejdejdejdejdejdededededefddZ	deredndfd	ejd
ejdejdejdejdejdededededededefddZ
derdndfdejdejdejdejdejdejded ededefd!d"Zderdndfdejd
ejdejdejdejdejded#ed ededefd$d%Zderdndfdejd
ejdejdejdejdejded#ed ededededefd&d'Zd(eej d)eej dejdejdef
d*d+Zd,eej d-eej dejdejdedefd.d/Zd,eej d-eej dejdejdef
d0d1ZderSdndfd2ejd3ejdejdejdededefd4d5Zderrdndfd2ejd3ejdejdejdededededefd6d7Zderdndfd(ejd)ejdejdejded ededefd8d9Zderdndfd(ejd3ejdejdejded#ed ededefd:d;ZdS )<    )ListNreturnc                   C   s   t jjd uS N)torchversionhip r   r   H/home/ubuntu/.local/lib/python3.10/site-packages/sgl_kernel/kvcacheio.pyis_hip   s   r
             src_kdst_ksrc_vdst_vsrc_indicesdst_indices	item_sizeblock_quotanum_warps_per_blockc	           	      C   $   t jjj| ||||||||	 d S r   )r   ops
sgl_kerneltransfer_kv_per_layerdefault)	r   r   r   r   r   r   r   r   r   r   r   r	   r         
r   layer_idsrc_layout_dimc                 C   (   t jjj| |||||||||	|
 d S r   )r   r   r   transfer_kv_per_layer_pf_lfr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r    %      
r    	page_sizehead_numc                 C   ,   t jjj| |||||||||	|
|| d S r   )r   r   r   transfer_kv_per_layer_ph_lfr   )r   r   r   r   r   r   r   r   r   r"   r#   r   r   r   r   r	   r%   A      
r%   src_k_layersdst_k_layerssrc_v_layersdst_v_layers
num_layersc
           
      C   s&   t jjj| |||||||||	
 d S r   )r   r   r   transfer_kv_all_layerr   )
r'   r(   r)   r*   r   r   r   r+   r   r   r   r   r	   r,   a   s   
r,   dst_layout_dimc                 C   r   r   )r   r   r   transfer_kv_all_layer_lf_pfr   )r'   r   r)   r   r   r   r   r-   r+   r   r   r   r   r	   r.   {   r!   r.   c                 C   r$   r   )r   r   r   transfer_kv_all_layer_lf_phr   )r'   r   r)   r   r   r   r   r-   r+   r"   r#   r   r   r   r   r	   r/      r&   r/   
src_layers
dst_layersc                 C      t jjj| |||| d S r   )r   r   r   transfer_kv_directr   )r0   r1   r   r   r"   r   r   r	   r3         

r3   src_ptrsdst_ptrsc                 C   s   t jjj| ||||| d S r   )r   r   r   "transfer_kv_per_layer_direct_pf_lfr   )r5   r6   r   r   r   r"   r   r   r	   r7      s   
r7   c                 C   r2   r   )r   r   r   "transfer_kv_all_layer_direct_lf_pfr   )r5   r6   r   r   r"   r   r   r	   r8      r4   r8   srcdstc              	   C   s    t jjj| |||||| d S r   )r   r   r   transfer_kv_per_layer_mlar   )r9   r:   r   r   r   r   r   r   r   r	   r;      s   
	r;   c	           	      C   r   r   )r   r   r   transfer_kv_per_layer_mla_pf_lfr   )	r9   r:   r   r   r   r   r   r   r   r   r   r	   r<      r   r<   c              
   C   s"   t jjj| ||||||| d S r   )r   r   r   transfer_kv_all_layer_mlar   )r0   r1   r   r   r   r+   r   r   r   r   r	   r=     s   

r=   c	           	      C   r   r   )r   r   r   transfer_kv_all_layer_mla_lf_pfr   )	r0   r:   r   r   r   r-   r+   r   r   r   r   r	   r>     r   r>   )typingr   r   boolr
   _is_hipTensorintr   r    r%   r,   r.   r/   r3   r7   r8   r;   r<   r=   r>   r   r   r   r	   <module>   s   
	
"
	

(
	

)
	

$
	

(
	

 



	

	