
    J/Ph                         d dl Zd dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlZ ed           G d de                      Zed	k    r ej                     dS dS )
    N)cuda)unittestCUDATestCaseskip_on_cudasim)
linux_onlyoverride_config)NumbaPerformanceWarningz+cudasim does not raise performance warningsc                   `    e Zd Zd Zd Zd Zd Zd Zed             Z	d Z
d Zd	 Zd
 Zd ZdS )TestWarningsc                    t           j        d             }t          dd          5  t          j        d          5 } |d                      d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |d         j        t                     |                     dt          |d         j
                             |                     d	t          |d         j
                             d S )
Nc                      d S N r       d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_warning.pykernelzBTestWarnings.test_inefficient_launch_configuration.<locals>.kernel       Dr   CUDA_LOW_OCCUPANCY_WARNINGS   Trecord)r   r   r   z	Grid sizezlow occupancy)r   jitr   warningscatch_warningsassertEqualcategoryr	   assertInstrmessageselfr   ws      r   %test_inefficient_launch_configurationz2TestWarnings.test_inefficient_launch_configuration   sc   		 	 
	 :A>> 	 	(555 t              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1(?@@@k3qt|#4#4555os1Q4<'8'8999994   A0AA0A	A0 A	!A00A47A4c                 @   t           j        d             }t          dd          5  t          j        d          5 } |d                      d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t          |          d           d S )Nc                      d S r   r   r   r   r   r   z@TestWarnings.test_efficient_launch_configuration.<locals>.kernel   r   r   r   r   Tr   )   r'   r   )r   r   r   r   r   r   lenr    s      r   #test_efficient_launch_configurationz0TestWarnings.test_efficient_launch_configuration   s"   		 	 
	 :A>> 	# 	#(555 # x """# # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	Q#####r$   c                 J   t           j        d             }d}t          j        |t          j                  }t          dd          5  t          j        d          5 } |d|f         ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |d         j	        t                     |                     d	t          |d         j                             |                     d
t          |d         j                             d S )Nc                     |dz   | d<   d S Nr   r   r   rxs     r   fooz1TestWarnings.test_warn_on_host_array.<locals>.foo$       q5AaDDDr   
   dtypeCUDA_WARN_ON_IMPLICIT_COPYr   Tr   r   )Host array used in CUDA kernel will incurcopy overhead)r   r   npzerosfloat32r   r   r   r   r   r	   r   r   r   )r!   r0   Narr_f32r"   s        r   test_warn_on_host_arrayz$TestWarnings.test_warn_on_host_array#   s   		 	 
	 (1BJ///91== 	& 	&(555 &AqD	'1%%%& & & & & & & & & & & & & & &	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	1(?@@@A!A$,''	) 	) 	)os1Q4<'8'8999996   BA?3B?B	BB	BBBc                 J   t           j        d             }d}t          j        |t          j                  }t          dd          5  t          j        d          5 } |d|f         ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |d         j	        t                     |                     d	t          |d         j                             |                     d
t          |d         j                             d S )Nc                     |dz   | d<   d S r,   r   r-   s     r   r0   z8TestWarnings.test_pinned_warn_on_host_array.<locals>.foo4   r1   r   r2   r3   r5   r   Tr   r   r6   r7   )r   r   pinned_arrayr8   r:   r   r   r   r   r   r	   r   r   r   r!   r0   r;   aryr"   s        r   test_pinned_warn_on_host_arrayz+TestWarnings.test_pinned_warn_on_host_array3   s   		 	 
	 44491== 	" 	"(555 "AqD	#q!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	1(?@@@A!A$,''	) 	) 	)os1Q4<'8'899999r>   c                    t           j        d             }d}t          j        |t          j                  }t          dd          5  t          j        d          5 } |d|f         ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t          |          d           d S )	Nc                     |dz   | d<   d S r,   r   r-   s     r   r0   z5TestWarnings.test_nowarn_on_mapped_array.<locals>.fooE   r1   r   r2   r3   r5   r   Tr   r   )
r   r   mapped_arrayr8   r:   r   r   r   r   r(   rB   s        r   test_nowarn_on_mapped_arrayz(TestWarnings.test_nowarn_on_mapped_arrayD   E   		 	 
	 44491== 	" 	"(555 "AqD	#q!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	Q#####r>   c                    t           j        d             }d}t          j        |t          j                  }t          dd          5  t          j        d          5 } |d|f         ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t          |          d           d S )	Nc                     |dz   | d<   d S r,   r   r-   s     r   r0   z6TestWarnings.test_nowarn_on_managed_array.<locals>.fooT   r1   r   r2   r3   r5   r   Tr   r   )
r   r   managed_arrayr8   r:   r   r   r   r   r(   rB   s        r   test_nowarn_on_managed_arrayz)TestWarnings.test_nowarn_on_managed_arrayR   sE   		 	 
	  "*55591== 	" 	"(555 "AqD	#q!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	Q#####r>   c                    t           j        d             }d}t          j        |t          j                  }t          dd          5  t          j        d          5 } |d|f         ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t          |          d           d S )	Nc                     |dz   | d<   d S r,   r   r-   s     r   r0   z5TestWarnings.test_nowarn_on_device_array.<locals>.foob   r1   r   r2   r3   r5   r   Tr   r   )
r   r   device_arrayr8   r:   r   r   r   r   r(   rB   s        r   test_nowarn_on_device_arrayz(TestWarnings.test_nowarn_on_device_arraya   rI   r>   c                 .   t          j        d          5 }t          j        dd           d d d            n# 1 swxY w Y   |                     t          |          d           |                     dt          |d         j                             d S )NTr   debugoptr   not supported by CUDAr   	r   r   r   r   r   r(   r   r   r   r!   r"   s     r   test_warn_on_debug_and_optz'TestWarnings.test_warn_on_debug_and_opto   s    $D111 	+QH4T****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	Q###-s1Q4</@/@AAAAA   9= =c                 ,   t          j        d          5 }t          j        d           d d d            n# 1 swxY w Y   |                     t          |          d           |                     dt          |d         j                             d S )NTr   )rT   r   rV   r   rW   rX   s     r   "test_warn_on_debug_and_opt_defaultz/TestWarnings.test_warn_on_debug_and_opt_defaultv   s    $D111 	!QH4    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	Q###-s1Q4</@/@AAAAAs   8<<c                     t          j        d          5 }t          j        dd           d d d            n# 1 swxY w Y   |                     t          |          d           d S )NTr   FrS   r   r   r   r   r   r   r(   rX   s     r    test_no_warn_on_debug_and_no_optz-TestWarnings.test_no_warn_on_debug_and_no_opt}   s    $D111 	,QH4U++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	Q#####rZ   c                     t          j        d          5 }t          j                     d d d            n# 1 swxY w Y   |                     t          |          d           d S )NTr   r   r^   rX   s     r   )test_no_warn_with_no_debug_and_opt_kwargsz6TestWarnings.test_no_warn_with_no_debug_and_opt_kwargs   s    $D111 	QHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Q#####s   6::N)__name__
__module____qualname__r#   r)   r=   rD   rH   r   rM   rQ   rY   r\   r_   ra   r   r   r   r   r   	   s        : : :	$ 	$ 	$: : : : : :"$ $ $ $ $ Z$$ $ $B B BB B B$ $ $$ $ $ $ $r   r   __main__)numpyr8   numbar   numba.cuda.testingr   r   r   numba.tests.supportr   r   numba.core.errorsr	   r   r   rb   mainr   r   r   <module>rl      s              F F F F F F F F F F ; ; ; ; ; ; ; ; 5 5 5 5 5 5  >??}$ }$ }$ }$ }$< }$ }$ @?}$@ zHMOOOOO r   