o
    Y۷i                     @   s   d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZ dd Zdd	 Zd
d Zdd Zdd ZedG dd deZedkrPe  dS dS )    N)cuda)CudaAPIErrordriver)CudaSupportError)skip_on_cudasimunittestCUDATestCasec                 C   s
   t dd)Ni  CUDA_ERROR_UNKNOWN)r   )arg r   X/home/ubuntu/vllm_env/lib/python3.10/site-packages/numba/cuda/tests/cudadrv/test_init.pycuInit_raising   s   
r   c              
   C   s^   t t_d}d }ztd W n ty% } zd}|j}W Y d }~nd }~ww | ||f d S NF   T)r   r   cuInitr   device_arrayr   msgputresult_queuesuccessr   er   r   r   cuInit_raising_test   s   r   c                 C   sN   t t_d}d }ztd W n ty   d}Y nw t }| ||f d S r   )r   r   r   r   r   r   
cuda_errorr   r   r   r   r   r   r   initialization_error_test&   s   r   c              
   C   sX   d}d }zt d W n ty" } zd}|j}W Y d }~nd }~ww | ||f d S r   )r   r   r   r   r   r   r   r   r   cuda_disabled_test7   s   r   c                 C   sH   d}d }zt d W n ty   d}Y nw t  }| ||f d S r   )r   r   r   r   r   r   r   r   r   cuda_disabled_error_testG   s   r   z)CUDA Simulator does not initialize driverc                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestInitc                 C   s^   t d}| }|j||fd}|  |d | \}}|s'| d | || d S )Nspawn)targetargs   zCudaSupportError not raised)	mpget_contextQueueProcessstartjoingetfailassertIn)selfr    expectedctxr   procr   r   r   r   r   _test_init_failureW   s   


zTestInit._test_init_failurec                 C      d}|  t| d S )Nz.Error at driver init: CUDA_ERROR_UNKNOWN (999))r0   r   r,   r-   r   r   r   test_init_failure_raisingg      z"TestInit.test_init_failure_raisingc                 C   r1   )NzCUDA_ERROR_UNKNOWN (999))r0   r   r2   r   r   r   test_init_failure_errork   r4   z TestInit.test_init_failure_errorc              	   C   sr   t jd}dt jd< zd}| t| W |d ur |t jd< d S t jd d S |d ur2|t jd< w t jd w )NNUMBA_DISABLE_CUDA1z4CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1)osenvironr)   r0   r   pop)r,   r    cuda_disabledr-   r   r   r   _test_cuda_disabledo   s   
zTestInit._test_cuda_disabledc                 C      |  t d S N)r<   r   r,   r   r   r   test_cuda_disabled_raising}      z#TestInit.test_cuda_disabled_raisingc                 C   r=   r>   )r<   r   r?   r   r   r   test_cuda_disabled_error   rA   z!TestInit.test_cuda_disabled_errorc                 C   s   |  t  d S r>   )assertIsNoner   r   r?   r   r   r   test_init_success   s   zTestInit.test_init_successN)
__name__
__module____qualname__r0   r3   r5   r<   r@   rB   rD   r   r   r   r   r   U   s    r   __main__)multiprocessingr#   r8   numbar   numba.cuda.cudadrv.driverr   r   numba.cuda.cudadrv.errorr   numba.cuda.testingr   r   r   r   r   r   r   r   r   rE   mainr   r   r   r   <module>   s     	4