
    shU                         S SK rS SKrS SKrS SKJrJr  S SKJrJrJ	r	  S SK
Jr  S rS r\\	" S5      \" S5       " S	 S
\5      5       5       5       r\S:X  a  \R                   " 5         gg)    N)unittestCUDATestCase)skip_on_cudasimskip_with_cuda_pythonskip_under_cuda_memcheck)
linux_onlyc            	        ^^^^^^^^ SSK JmJn Jn  SSKJn  SS KnSS KnSS KnSUl	        UR                  5       n[        R                  " U5      n[        R                  " S5      nUR                  U5        UR                  [        R                   5        Sn	Sn
SmUR"                  R%                  S5        UR"                  R'                  SS	XR                  S
9nUR)                  U5      n[+        U
5       Vs/ s H  nTR-                  U5      PM     snm[+        U
5       Vs/ s H  nTR-                  U5      PM     snmSmU	T-  mTR/                  5       mTR1                  U" U S S S2   U S S S2   5      5      UU4S j5       mUUUUUU4S jn[+        U
5       Vs/ s H  nUR3                  X4S9PM     nnU H  nUR5                  5         M     U H  nUR7                  5         M     TR9                  5         UT-  n[+        U
5       H0  nUR:                  R=                  TU   R?                  5       U5        M2     URA                  5         URC                  5       $ s  snf s  snf s  snf )Nr   )cudaint32void)config   znumba.cuda.cudadrv.driveri   
   i   i  )lowhighsizedtype   c                    > TR                  S5      nU[        U 5      :  a  g [        T5       H  nX==   X   -  ss'   M     g )Nr   )gridlenrange)rxijN_ADDITIONSr
   s       v/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudadrv/test_ptds.pyfchild_test.<locals>.f3   s<    IIaLs1v: {#ADADLD $    c                 0   > TTTT4   " TU    TU    5        g )N )nr   n_blocks	n_threadsrsstreamxss    r   kernel_thread!child_test.<locals>.kernel_thread@   s!    	(Iv
%&r!ube4r!   targetargs)"numbar
   r   r   
numba.corer   ionumpy	threadingCUDA_PER_THREAD_DEFAULT_STREAMStringIOloggingStreamHandler	getLogger
addHandlersetLevelDEBUGrandomseedrandint
zeros_liker   	to_devicedefault_streamjitThreadstartjoinsynchronizetestingassert_equalcopy_to_hostflushgetvalue)r   r   r   r1   npr3   logbufhandlercudadrv_loggerN	N_THREADSr   r   _r*   r   threadsthreadexpectedr   r
   r   r%   r&   r'   r(   r)   s                      @@@@@@@@r   
child_testrV   
   s3   ''!
 -.F) [[]F##F+G&&'BCNg&GMM* 	AIK IINN1
		ad((CA
aA &+9%5	6%5$..
%5	6B%*9%5	6%5$..
%5	6B II~H  "F 
XXd51:uSqSz*+ ,5 5
 i(*(1 }4@(  *  
   	 ;H9


1 2 2 4h?  MMO??c 
7	64*s   <I$'I)"I.c                 ~     [        5       nSnU R                  X!45        g !   [        R                  " 5       nSn N.= f)NTF)rV   	traceback
format_excput)result_queueoutputsuccesss      r   child_test_wrapperr^   ]   s@     g&'	%%'s   ! <zHangs cuda-memcheckz&Streams not supported on the simulatorc                   0    \ rS rSr\" S5      S 5       rSrg)TestPTDSk   z1Function names unchanged for PTDS with NV Bindingc                 4   [         R                  " S5      nUR                  5       nUR                  [        U4S9nUR                  5         UR                  5         UR                  5       u  pEU(       d  U R                  U5        SnU H-  nU R                  USS9   U R                  Xu5        S S S 5        M/     SnU H2  nU R                  USS9   U S3n	U R                  X5        S S S 5        M4     g ! , (       d  f       M{  = f! , (       d  f       MX  = f)	Nspawnr,   )cuMemcpyHtoD_v2_ptdscuLaunchKernel_ptszcuMemcpyDtoH_v2_ptdsT)fnrU   )cuMemcpyHtoD_v2cuLaunchKernelcuMemcpyDtoH_v2F
)mpget_contextQueueProcessr^   rD   rE   getfailsubTestassertInassertNotIn)
selfctxr[   procr]   r\   ptds_functionsrg   legacy_functions	fn_at_ends
             r   	test_ptdsTestPTDS.test_ptdso   s     nnW%yy{{{"4L?{K

		&**, IIf2 !Bd3b) 43 !/ #Be4  "d"I	  3 54 # 43 54s   C6D6
D	
D	r#   N)__name__
__module____qualname____firstlineno__r   r{   __static_attributes__r#   r!   r   r`   r`   k   s     NO!4 P!4r!   r`   __main__)multiprocessingrl   r6   rX   numba.cuda.testingr   r   r   r   r   numba.tests.supportr   rV   r^   r`   r}   mainr#   r!   r   <module>r      sz       5: : *Pf	( /09:#4| #4 ; 1 #4L zMMO r!   