ó
    “~i6  ã                   óÜ   • % S SK JrJr  S SKJr   " S S\5      r " S S\5      r " S S5      r\" 5       r\" S	\S
9r	\\   \
S	'   S\SS4S jr " S S5      r\" \5      rS\\   SS4S jrg)é    )ÚOptionalÚProtocol)Ú
ContextVarc                   ó"   • \ rS rSrS\4S jrSrg)ÚBufferé   Úreturnc                 ó   • g ©N© ©Úselfs    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/runtime/_allocation.pyÚdata_ptrÚBuffer.data_ptr   ó   € Øó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úintr   Ú__static_attributes__r   r   r   r   r      s   † ð˜#÷ r   r   c                   ó4   • \ rS rSrS\S\S\\   S\4S jrSrg)	Ú	Allocatoré   ÚsizeÚ	alignmentÚstreamr	   c                 ó   • g r   r   ©r   r   r   r   s       r   Ú__call__ÚAllocator.__call__   r   r   r   N©	r   r   r   r   r   r   r   r"   r   r   r   r   r   r      s'   † ð˜Sð ¨Sð ¸(À3¹-ð ÈF÷ r   r   c                   ó4   • \ rS rSrS\S\S\\   S\4S jrSrg)	ÚNullAllocatoré   r   r   r   r	   c                 ó   • [        S5      e)NzxKernel requires a runtime memory allocation, but no allocator was set. Use triton.set_allocator to specify an allocator.)ÚRuntimeErrorr!   s       r   r"   ÚNullAllocator.__call__   s   € Üð Oó Pð 	Pr   r   Nr$   r   r   r   r&   r&      s,   † ðP˜Sð P¨Sð P¸(À3¹-ð PÈF÷ Pr   r&   Ú
_allocator)ÚdefaultÚ	allocatorr	   Nc                 ó.   • [         R                  U 5        g)zt
The allocator function is called during kernel launch for kernels that
require additional global memory workspace.
N)r+   Úset©r-   s    r   Úset_allocatorr1      s   € ô
 ‡N�N�9Õr   c                   ój   • \ rS rSrSrS\SS4S jrS\4S jrS\SS4S jrS	\	S
\	S\
\	   S\4S jrSrg)Ú_AllocatorWrapperé%   z™
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                 ó   • Xl         g r   ©r+   ©r   r-   s     r   Ú__init__Ú_AllocatorWrapper.__init__+   ó   € Ø#�r   c                 ó   • U R                   $ r   r6   r   s    r   ÚgetÚ_AllocatorWrapper.get.   s   € Ø�‰Ðr   c                 ó   • Xl         g r   r6   r7   s     r   r/   Ú_AllocatorWrapper.set1   r:   r   r   r   r   c                 ó&   • U R                  XU5      $ r   r6   r!   s       r   r"   Ú_AllocatorWrapper.__call__4   s   € Ø�‰˜t°Ó7Ð7r   r6   )r   r   r   r   Ú__doc__r   r8   r<   r/   r   r   r   r"   r   r   r   r   r3   r3   %   s^   † ñð
$ )ð $°ô $ð�Yô ð$˜Yð $¨4ô $ð8˜Sð 8¨Sð 8¸(À3¹-ð 8ÈF÷ 8r   r3   c                 óJ   • [         R                  U b  U 5        g[        5        g)z|
The profile allocator function is called before kernel launch for kernels
that require additional global memory workspace.
N)Ú_profile_allocatorr/   Ú_NULL_ALLOCATORr0   s    r   Úset_profile_allocatorrF   ;   s   € ô
 ×Ñ¨	Ñ(=˜9ÕSÄ?ÕSr   )Útypingr   r   Úcontextvarsr   r   r   r&   rE   r+   Ú__annotations__r1   r3   rD   rF   r   r   r   Ú<module>rJ      s–   ðß %Ð %Ý "ôˆXô ô�ô ÷Pñ Pñ  “/€á$.¨|À_Ñ$U€
ˆJ�yÑ!Ó Uð˜Yð ¨4ô ÷8ñ 8ñ& ' Ó7Ð ðT X¨iÑ%8ð T¸Tõ Tr   