Ë
    Ûéñi6  ã                   óÞ   — U d dl mZmZ d dlmZ  G d„ de«      Z G d„ de«      Z G d„ d«      Z e«       Z ed	e¬
«      Z	ee   e
d	<   deddfd„Z G d„ d«      Z ee«      Zdee   ddfd„Zy)é    )ÚOptionalÚProtocol)Ú
ContextVarc                   ó   — e Zd Zdefd„Zy)ÚBufferÚreturnc                  ó   — y ©N© ©Úselfs    ú\/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/triton/runtime/_allocation.pyÚdata_ptrzBuffer.data_ptr   ó   € Øó    N)Ú__name__Ú
__module__Ú__qualname__Úintr   r   r   r   r   r      s   „ ð˜#ô r   r   c                   ó*   — e Zd Zdededee   defd„Zy)Ú	AllocatorÚsizeÚ	alignmentÚstreamr   c                  ó   — y r
   r   ©r   r   r   r   s       r   Ú__call__zAllocator.__call__   r   r   N©r   r   r   r   r   r   r   r   r   r   r   r      s'   „ ð˜Sð ¨Sð ¸(À3¹-ð ÈFô r   r   c                   ó*   — e Zd Zdededee   defd„Zy)ÚNullAllocatorr   r   r   r   c                 ó   — t        d«      ‚)NzxKernel requires a runtime memory allocation, but no allocator was set. Use triton.set_allocator to specify an allocator.)ÚRuntimeErrorr   s       r   r   zNullAllocator.__call__   s   € Üð Oó Pð 	Pr   Nr   r   r   r   r    r       s,   „ ðP˜Sð P¨Sð P¸(À3¹-ð PÈFô Pr   r    Ú
_allocator)ÚdefaultÚ	allocatorr   Nc                 ó.   — t         j                  | «       y)z€
    The allocator function is called during kernel launch for kernels that
    require additional global memory workspace.
    N)r#   Úset©r%   s    r   Úset_allocatorr)      s   € ô
 ‡N�N�9Õr   c                   óZ   — e Zd ZdZdeddfd„Zdefd„Zdeddfd„Zded	ed
e	e   de
fd„Zy)Ú_AllocatorWrapperz¥
    Wrapper to provide ContextVar-like .get()/.set() methods. profile_allocator is
    used in same way as allocator so it is useful to maintain the interface.
    r%   r   Nc                 ó   — || _         y r
   ©r#   ©r   r%   s     r   Ú__init__z_AllocatorWrapper.__init__+   ó	   € Ø#ˆ�r   c                 ó   — | j                   S r
   r-   r   s    r   Úgetz_AllocatorWrapper.get.   s   € Ø�‰Ðr   c                 ó   — || _         y r
   r-   r.   s     r   r'   z_AllocatorWrapper.set1   r0   r   r   r   r   c                 ó(   — | j                  |||«      S r
   r-   r   s       r   r   z_AllocatorWrapper.__call__4   s   € Ø�‰˜t Y°Ó7Ð7r   )r   r   r   Ú__doc__r   r/   r2   r'   r   r   r   r   r   r   r   r+   r+   %   s^   „ ñð
$ )ð $°ó $ð�Yó ð$˜Yð $¨4ó $ð8˜Sð 8¨Sð 8¸(À3¹-ð 8ÈFô 8r   r+   c                 óH   — t         j                  | �| «       yt        «       y)zˆ
    The profile allocator function is called before kernel launch for kernels
    that require additional global memory workspace.
    N)Ú_profile_allocatorr'   Ú_NULL_ALLOCATORr(   s    r   Úset_profile_allocatorr9   ;   s   € ô
 ×Ñ¨	Ð(=˜9ÕSÄ?ÕSr   )Útypingr   r   Úcontextvarsr   r   r   r    r8   r#   Ú__annotations__r)   r+   r7   r9   r   r   r   ú<module>r=      s–   ðß %Ð %Ý "ôˆXô ô�ô ÷Pñ Pñ  “/€á$.¨|À_Ô$U€
ˆJ�yÑ!Ó Uð˜Yð ¨4ó ÷8ñ 8ñ& ' Ó7Ð ðT X¨iÑ%8ð T¸Tô Tr   