
    J/PhU                         d dl Zd dlZd dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZ d Zd Ze e	d           ed           G d	 d
e                                              Zedk    r ej                     dS dS )    N)unittestCUDATestCase)skip_on_cudasimskip_with_cuda_pythonskip_under_cuda_memcheck)
linux_onlyc            	         ddl mm} m} ddlm} dd l}dd l}dd ld|_	        |
                                }t          j        |          }t          j        d          }|                    |           |                    t          j                   d}d}	d|j                            d           |j                            dd	||j        
          |                              fdt+          |	          D             fdt+          |	          D             d|z                                                       || d d d         | d d d                             fd            fdfdt+          |	          D             }
|
D ]}|                                 |
D ]}|                                                                  z  }t+          |	          D ]5}|j                            |                                         |           6|                                 |                                S )Nr   )cudaint32void)config   znumba.cuda.cudadrv.driveri   
   i   i  )lowhighsizedtypec                 :    g | ]}                               S  	to_device).0_r
   xs     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudadrv/test_ptds.py
<listcomp>zchild_test.<locals>.<listcomp>)   %    	6	6	6$..

	6	6	6    c                 :    g | ]}                               S r   r   )r   r   r
   rs     r   r   zchild_test.<locals>.<listcomp>*   r   r      c                                          d          }|t          |           k    rd S t                    D ]}| |xx         ||         z  cc<   d S )Nr   )gridlenrange)r    r   ijN_ADDITIONSr
   s       r   fzchild_test.<locals>.f3   sd    IIaLLs1vv::F {## 	 	AaDDDAaDLDDDD	 	r   c                 J     f         |          |                     d S )Nr   )nr)   n_blocks	n_threadsrsstreamxss    r   kernel_threadz!child_test.<locals>.kernel_thread@   s/    &(Iv
%&r!ube44444r   c                 @    g | ]}                     |f           S )targetargs)Thread)r   r&   r1   	threadings     r   r   zchild_test.<locals>.<listcomp>D   s>     * * * }A4@@ * * *r   ) numbar
   r   r   
numba.corer   ionumpyr7   CUDA_PER_THREAD_DEFAULT_STREAMStringIOloggingStreamHandler	getLogger
addHandlersetLevelDEBUGrandomseedrandint
zeros_liker%   default_streamjitstartjoinsynchronizetestingassert_equalcopy_to_hostflushgetvalue)r   r   r   r:   nplogbufhandlercudadrv_loggerN	N_THREADSthreadsthreadexpectedr&   r(   r
   r)   r1   r,   r-   r    r.   r/   r7   r   r0   s                 @@@@@@@@@@@@r   
child_testr[   
   s   ''''''''''!!!!!!III
 -.F) [[]]F#F++G&'BCCNg&&&GM*** 	AIK INN1
	ad"(CCA
aA 
7	6	6	6	6U9%5%5	6	6	6B	6	6	6	6	6U9%5%5	6	6	6B II~H  ""F 
XXdd51:uSSqSz**++     ,+5 5 5 5 5 5 5 5 5 5* * * * *i((* * *G       	 ;H9 @ @

1 2 2 4 4h???? MMOOO??r   c                     	 t                      }d}n#  t          j                    }d}Y nxY w|                     ||f           d S )NTF)r[   	traceback
format_excput)result_queueoutputsuccesss      r   child_test_wrapperrc   ]   sV    %''gv&'''''s    ,zHangs cuda-memcheckz&Streams not supported on the simulatorc                   6    e Zd Z ed          d             ZdS )TestPTDSz1Function names unchanged for PTDS with NV Bindingc                 v   t          j        d          }|                                }|                    t          |f          }|                                 |                                 |                                \  }}|s|                     |           d}|D ]G}| 	                    |d          5  | 
                    ||           d d d            n# 1 swxY w Y   Hd}|D ]L}| 	                    |d          5  | d}	|                     |	|           d d d            n# 1 swxY w Y   Md S )	Nspawnr3   )cuMemcpyHtoD_v2_ptdscuLaunchKernel_ptszcuMemcpyDtoH_v2_ptdsT)fnrZ   )cuMemcpyHtoD_v2cuLaunchKernelcuMemcpyDtoH_v2F
)mpget_contextQueueProcessrc   rJ   rK   getfailsubTestassertInassertNotIn)
selfctxr`   procrb   ra   ptds_functionsrk   legacy_functions	fn_at_ends
             r   	test_ptdszTestPTDS.test_ptdso   s    nW%%yy{{{{"4L?{KK

		&**,,  	IIf2 ! 	* 	*Bd33 * *b&)))* * * * * * * * * * * * * * *
/ # 	4 	4Be44 4 4  "III	  F3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4s$   9CC 	#C 	D--D1	4D1	N)__name__
__module____qualname__r   r   r   r   r   re   re   k   s=         NOO!4 !4 PO!4 !4 !4r   re   __main__)multiprocessingrp   r>   r]   numba.cuda.testingr   r   r   r   r   numba.tests.supportr   r[   rc   re   r   mainr   r   r   <module>r      s.            5 5 5 5 5 5 5 5: : : : : : : : : : * * * * * *P P Pf	( 	( 	( /009::#4 #4 #4 #4 #4| #4 #4 ;: 10 #4L zHMOOOOO r   