o
    is                     @  sL   d dl mZ d dlZddlmZ ejZejG dd dZG dd dZdS )	    )annotationsN   )torch_wrapperc                   @  sR   e Zd ZU ded< ded< ded< ded< edd	d
ZedddZdd ZdS )RegisteredStorageztorch.Storagestorageztorch.dtypedtypeintsizeptrreturnc                 C  s   | j | j S N)r
   r	   self r   l/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/triton/interpreter/memory_map.pyend_ptr   s   zRegisteredStorage.end_ptrtorch.Tensorc                 C  s   t j| j| j| jjdS )N)r   device)torchZtensorr   r   r   r   r   r   r   access_tensor   s   zRegisteredStorage.access_tensorc                 C  s(   | j  | jkr| j  | jksJ d S r   )r   data_ptrr
   r	   r   r   r   r   ensure_immutable   s   (z"RegisteredStorage.ensure_immutableN)r   r   )r   r   )__name__
__module____qualname____annotations__propertyr   r   r   r   r   r   r   r   
   s   
 r   c                   @  sN   e Zd ZU ded< dd ZdddZdd
dZ		ddddZddddZdS )	MemoryMapz[RegisteredStorage]storagesc                 C  s
   g | _ d S r   )r   r   r   r   r   __init__    s   
zMemoryMap.__init__pointerr   c                   sT   t |  t | tt fdd| jd }|d u r$td|  |S )Nc                   s   | j ko	 | jk S r   )r
   r   )
registeredZmax_pointerZmin_pointerr   r   <lambda>)   s    z3MemoryMap._get_registered_storage.<locals>.<lambda>z7Storage not found or pointers spanning multiple tensors)	r   maxitemminnextfilterr   	Exceptionr   )r   r    registered_storager   r"   r   _get_registered_storage#   s   z!MemoryMap._get_registered_storagetc                 C  s0   |  }| jt||j| |  | S r   )Zuntyped_storager   appendr   r   r	   r   )r   r,   r   r   r   r   
add_tensor2   s    zMemoryMap.add_tensorN        maskc                 C  s   |j sJ d|   k rdk sJ  J |jtjksJ |d u r(t| }|j s-J d|   k r:dk s=J  J |jtjksEJ || }t	| r\tj
||tjddS | || }|j}||j }tj
|||jdd}|||  ||< |S )Nr      cuda)Z
fill_valuer   r   )Zis_cudadimr   r   int64	ones_likeboolexpandr	   allZ	full_likeZfloat16r+   r   r
   )r   r    r0   otherr*   r   index_tensorblockr   r   r   load7   s"   
 
 
zMemoryMap.loadvaluec                 C  s   d|    k rdk sJ  J |jtjksJ |d u r#t| }d|    k r0dk s3J  J |jtjks;J || }t| rJd S | 	|| }|j
}||j }|| |j||| < d S )Nr   r1   )r3   r   r   r4   r5   r6   r7   r	   r8   r+   r   r
   to)r   r    r=   r0   r*   r   r:   r   r   r   storeU   s     
zMemoryMap.store)r    r   )r,   r   )Nr/   )r    r   r0   r   r   )r    r   r=   r   )	r   r   r   r   r   r+   r.   r<   r?   r   r   r   r   r      s   
 

r   )	
__future__r   dataclasses r   r   	dataclassr   r   r   r   r   r   <module>   s    