KellenSunderland opened a new pull request #13899: fix bug in profiler tutorial 
when using cpu
URL: https://github.com/apache/incubator-mxnet/pull/13899
 
 
   ## Description ##
   When using cpu only, it produces error because test_utils.list_gpus() always 
returns at least empty array, and do not goes to the exception and context will 
be set as gpu. So I used if else statement to get context properly and it works 
fine.
   For the reference below is the code of test_utils.py
   
   python/mxnet/test_utils.py
   ```python
   def list_gpus():
       """Return a list of GPUs
       Returns
       -------
       list of int:
           If there are n GPUs, then return a list [0,1,...,n-1]. Otherwise 
returns
           [].
       """
       re = ''
       nvidia_smi = ['nvidia-smi', '/usr/bin/nvidia-smi', 
'/usr/local/nvidia/bin/nvidia-smi']
       for cmd in nvidia_smi:
           try:
               re = subprocess.check_output([cmd, "-L"], 
universal_newlines=True)
           except (subprocess.CalledProcessError, OSError):
               pass
       return range(len([i for i in re.split('\n') if 'GPU' in i]))
   ```
   
   and Error message
   run_training_iteration(*next(itr))
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "<stdin>", line 5, in run_training_iteration
     File 
"/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/ndarray/ndarray.py",
 line 2135, in as_in_context
       return self.copyto(context)
     File 
"/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/ndarray/ndarray.py",
 line 2084, in copyto
       return _internal._copyto(self, out=hret)
     File "<string>", line 25, in _copyto
     File 
"/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/_ctypes/ndarray.py",
 line 92, in _imperative_invoke
       ctypes.byref(out_stypes)))
     File 
"/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/base.py",
 line 252, in check_call
       raise MXNetError(py_str(_LIB.MXGetLastError()))
   mxnet.base.MXNetError: [03:59:09] src/ndarray/ndarray.cc:1270: GPU is not 
enabled
   
   Stack trace returned 10 entries:
   [bt] (0) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x21f5a4)
 [0x7fd2f7def5a4]
   [bt] (1) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x21f981)
 [0x7fd2f7def981]
   [bt] (2) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(mxnet::CopyFromTo(mxnet::NDArray
 const&, mxnet::NDArray const&, int, bool)+0x723) [0x7fd2fa8bc323]
   [bt] (3) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(mxnet::imperative::PushFComputeEx(std::function<void
 (nnvm::NodeAttrs const&, mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)> const&, nnvm::Op const*, 
nnvm::NodeAttrs const&, mxnet::Context const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::Resource, 
std::allocator<mxnet::Resource> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > 
const&)::{lambda(mxnet::RunContext)#1}::operator()(mxnet::RunContext) 
const+0x110) [0x7fd2fa763ba0]
   [bt] (4) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(mxnet::imperative::PushFComputeEx(std::function<void
 (nnvm::NodeAttrs const&, mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)> const&, nnvm::Op const*, 
nnvm::NodeAttrs const&, mxnet::Context const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::Resource, 
std::allocator<mxnet::Resource> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&)+0x3ca) [0x7fd2fa76ee5a]
   [bt] (5) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(mxnet::Imperative::InvokeOp(mxnet::Context
 const&, nnvm::NodeAttrs const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, mxnet::DispatchMode, 
mxnet::OpStatePtr)+0x839) [0x7fd2fa7748a9]
   [bt] (6) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(mxnet::Imperative::Invoke(mxnet::Context
 const&, nnvm::NodeAttrs const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&)+0x38c) [0x7fd2fa77512c]
   [bt] (7) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(+0x2ab24f9)
 [0x7fd2fa6824f9]
   [bt] (8) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/site-packages/mxnet/libmxnet.so(MXImperativeInvokeEx+0x6f)
 [0x7fd2fa682aef]
   [bt] (9) 
/home/ubuntu/anaconda3/envs/mxnet_p27/lib/python2.7/lib-dynload/../../libffi.so.6(ffi_call_unix64+0x4c)
 [0x7fd3097dcec0]
   
   ## Checklist ##
   ### Essentials ###
   Please feel free to remove inapplicable items for your PR.
   - [x] Changes are complete (i.e. I finished coding on this PR)
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to