o
    
۾i
                  
   @   sn  U d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl	Z
d dlmZ d dlZd dlZejZeddG dd dZed	 Zed
 Zed Zeejeje
jeejeje
jeejeje
jeejeje
jeejeje
jd	Zeeef ed< eeZeedf ed< dejde fddZ!dejdedede"fddZ#de"dee$df dededejf
ddZ%dS )    N)Mapping)	dataclass)Literalget_argsT)frozenc                   @   s>   e Zd ZU ejed< ejed< ejed< ede	fddZ
dS )	DTypeInfotorch_dtypetorch_view_dtypenumpy_view_dtypereturnc                 C   s   | j jS )N)r   itemsize)self r   K/home/ubuntu/.local/lib/python3.10/site-packages/vllm/utils/serial_utils.pynbytes   s   zDTypeInfo.nbytesN)__name__
__module____qualname__torchdtype__annotations__npt	DTypeLikepropertyintr   r   r   r   r   r      s   
 


r   )float32float16bfloat16fp8_e4m3fp8_e5m2)nativebiglittle)floatbase64bytes
bytes_onlyEMBED_DTYPES.
ENDIANNESSxr   c                 C   sV   t  }t| | |d | }W d    n1 sw   Y  t|dS )Nr   zutf-8)	ioBytesIOr   saveseekreadpybase64	b64encodedecode)r)   bufbinary_datar   r   r   tensor2base640   s   


r4   tensorembed_dtype
endiannessc                 C   sp   t | tjsJ |tv sJ |tv sJ t| }| |j  	|j
 }|dkr4|tkr4| }| S )Nr    )
isinstancer   Tensorr'   r(   tor   flatten
contiguousviewr	   numpysys_byteorderbyteswaptobytes)r5   r6   r7   
dtype_infonp_arrayr   r   r   tensor2binary9   s   
rD   binaryshapec                 C   s`   |t v sJ |tv sJ t | }tj| |jd|}|dkr'|tkr'| }t	|
|jS )N)r   r    )r'   r(   np
frombufferr
   reshaper?   r@   r   
from_numpyr=   r   )rE   rF   r6   r7   rB   rC   r   r   r   binary2tensorR   s   rK   )&r*   syscollections.abcr   dataclassesr   typingr   r   r>   rG   numpy.typingr   r/   r   	byteorderr?   r   
EmbedDType
EndiannessEncodingFormatr   r   r   float8_e4m3fnuint8float8_e5m2r'   r   r(   tupler9   strr4   r%   rD   r   rK   r   r   r   r   <module>   sV   
	

