o
    i                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ G dd dZd	efd
dZe
dd Zeedddd Ze
dd Zeeddddd ZdS )    )types)overloadoverload_method)	signature)	nvvmutils)	intrinsic)
grid_group	GridGroupc                   @   s   e Zd ZdZdddZdS )r	   z0A cooperative group representing the entire gridreturnNc                   C   s   dS )zSynchronize this grid groupN r   r   r   J/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/numba/cuda/cg.pysync   s    zGridGroup.sync)r
   N)__name__
__module____qualname____doc__r   r   r   r   r   r	   	   s    r	   r
   c                   C      t  S )zGet the current grid group.)r	   r   r   r   r   	this_grid   s   r   c                 C   s   t t}dd }||fS )Nc                 S   s(   |  tjd}|j}|t||fS )N   )get_constantr   int32modulecallr    declare_cudaCGGetIntrinsicHandle)contextbuildersigargsonemodr   r   r   codegen   s   z_this_grid.<locals>.codegen)r   r   )	typingctxr   r    r   r   r   
_this_grid   s   r"   cuda)targetc                  C   s   dd } | S )Nc                   S   r   N)r"   r   r   r   r   impl%   s   z_ol_this_grid.<locals>.implr   )r&   r   r   r   _ol_this_grid#      r'   c                 C   s   t tj|}dd }||fS )Nc                 S   s0   |  tjd}|j}|t|g ||R S )Nr   )r   r   r   r   r   r   declare_cudaCGSynchronize)r   r   r   r   flagsr   r   r   r   r    /   s   z!_grid_group_sync.<locals>.codegen)r   r   r   )r!   groupr   r    r   r   r   _grid_group_sync+   s   r,   r   c                 C   s   dd }|S )Nc                 S   s   t | S r%   )r,   )r+   r   r   r   r&   ;   s   z!_ol_grid_group_sync.<locals>.implr   )r+   r&   r   r   r   _ol_grid_group_sync9   r(   r-   N)
numba.corer   numba.core.extendingr   r   numba.core.typingr   
numba.cudar   numba.cuda.extendingr   numba.cuda.typesr   r	   GridGroupClassr   r"   r'   r,   r-   r   r   r   r   <module>   s     



