Hi, <type> = Py shows that the Python interface is used for that Op. However, in Scan's case, that Python implementation uses Cython, so most of the performance of C should be there. Python code can also execute the computation on the GPU. In that case, you can see in the Op list that the scan Ops print as "forall_inplace,gpu,...", which confirm they are actually running on the GPU.
On Monday, June 5, 2017 at 12:01:06 PM UTC-4, Haining Yu wrote: > > Hello, > > I have a question about how to read theano profiling results. I am running > a RNN model, where the gradient is calculated via theano.scan. When I > profile the code, I can see that the bulk of time is spent on theano.scan. > Moreover I notice that the type of call is Py rather than C. > > My questions are: > 1. does <type> = Py imply that the code is running as python code? > 2. does this also imply the code is executed on CPU (instead of GPU)? > > Thanks, > Haining > > Below is results from profiling: > > Class > --- > <% time> <sum %> <apply time> <time per call> <type> <#call> <#apply> > <Class name> > 99.3% 99.3% 624.260s 1.90e-01s Py 3284 2 > theano.scan_module.scan_op.Scan > 0.2% 99.5% 1.237s 1.57e-05s C 78816 48 > theano.sandbox.cuda.basic_ops.GpuAlloc > 0.2% 99.7% 1.028s 2.02e-05s C 50902 31 > theano.sandbox.cuda.basic_ops.GpuElemwise > 0.1% 99.7% 0.394s 1.64e-06s C 239732 146 > ... > > Ops > --- > <% time> <sum %> <apply time> <time per call> <type> <#call> <#apply> <Op > name> > 87.3% 87.3% 548.530s 3.34e-01s Py 1642 1 > forall_inplace,gpu,grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn&grad_of_scan_fn} > 12.0% 99.3% 75.730s 4.61e-02s Py 1642 1 > forall_inplace,gpu,scan_fn&scan_fn&scan_fn&scan_fn} > 0.2% 99.5% 1.237s 1.57e-05s C 78816 48 > > ... > > > -- --- You received this message because you are subscribed to the Google Groups "theano-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
