ó
\K]c        	   @@  s3  d  Z  d d l m Z d d l m Z d d l m Z 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 m Z d d „ Z d e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ e Z d e e d e d e d d „ Z e Z  e d „  ƒ Z! d S(   s   
Contains CUDA API functions
i    (   t   absolute_import(   t   contextmanageri   (   t   require_contextt   resett   gpus(   t   FakeCUDAKernel(   t	   Signature(   t   warni   (   t   Int   Outt   InOutc         C@  s   |  d k s t  d ƒ ‚ d  S(   Ni    s/   Only a single device supported by the simulator(   t   AssertionError(   t   dev(    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   select_device   s    t   streamc           B@  s&   e  Z d  Z e d „  ƒ Z d „  Z RS(   s“   
    The stream API is supported in the simulator - however, all execution
    occurs synchronously, so synchronization requires no operation.
    c         c@  s	   d  Vd  S(   N(    (   t   self(    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   auto_synchronize   s    c         C@  s   d  S(   N(    (   R   (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   synchronize   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyR      s   c           C@  s   d  S(   N(    (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyR      s    c           C@  s   t  t _ d  S(   N(   t   TrueR   t   closed(    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   close"   s    c          O@  s   d  S(   N(    (   t   argst   kwargs(    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   declare_device&   s    c           C@  s   d GHd d GHd d GHd  S(	   Ns   Found 1 CUDA devicess   id %d    %20s %40si    t	   SIMULATORs   [SUPPORTED]s	   %40s: 5.2s   compute capability(   i    R   s   [SUPPORTED](    (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   detect*   s    	c           C@  s   t  S(   N(   R   (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   list_devices0   s    t   Eventc           B@  s8   e  Z d  Z d d „ Z d d „ Z d „  Z d „  Z RS(   sš   
    The simulator supports the event API, but they do not record timing info,
    and all simulation is synchronous. Execution time is not recorded.
    i    c         C@  s   d  S(   N(    (   R   R   (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   record;   s    c         C@  s   d  S(   N(    (   R   R   (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   wait>   s    c         C@  s   d  S(   N(    (   R   (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyR   A   s    c         C@  s   t  d ƒ d S(   Ns   Simulator timings are bogusg        (   R   (   R   t   event(    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   elapsed_timeD   s    
(   R   R   R   R   R    R   R"   (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyR   6   s
   	c   	      @  se   | d  k	 r t d ƒ ‚ n  |  d  k s? t |  t t t f ƒ rU ‡  ‡ f d †  } | St |  d ˆ  ƒS(   Ns    Cannot link PTX in the simulatorc         @  s   t  |  d ˆ  d ˆ ƒS(   Nt   devicet   fastmath(   R   (   t   fn(   R#   R$   (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt
   jitwrapperR   s    	R#   (   t   Nonet   NotImplementedErrort
   isinstancet   strt   tupleR   R   (	   t   func_or_sigR#   t   debugt   argtypest   inlinet   restypeR$   t   linkR&   (    (   R#   R$   s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   jitK   s    $c           c@  s	   d  Vd  S(   N(    (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   defer_cleanup\   s    N("   R   t
   __future__R    t
   contextlibR   t   cudadrv.devicesR   R   R   t   kernelR   t   numba.typingR   t   warningsR   R   R   R	   R
   R   t   objectR   R   R   R   R   R   R   R!   R'   t   FalseR2   t   autojitR3   (    (    (    s7   lib/python2.7/site-packages/numba/cuda/simulator/api.pyt   <module>   s(   					