larroy commented on a change in pull request #12007: Add tutorial Gotchas using 
NumPy
URL: https://github.com/apache/incubator-mxnet/pull/12007#discussion_r207382189
 
 

 ##########
 File path: docs/tutorials/gluon/gotchas_numpy_in_mxnet.md
 ##########
 @@ -0,0 +1,174 @@
+
+# Gotchas using NumPy in Apache MXNet
+
+The goal of this tutorial is to explain some common misconceptions about using 
[NumPy](http://www.numpy.org/) arrays in Apache MXNet. We are going to explain 
why you need to minimize or completely remove usage of NumPy from your Apache 
MXNet code. We also going to show how to minimize NumPy performance impact, 
when you have to use NumPy.
+
+## Asynchronous and non-blocking nature of Apache MXNet
+
+Instead of using NumPy arrays Apache MXNet offers its own array implementation 
named 
[NDArray](https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html). 
`NDArray API` was intentionally designed to be similar to `NumPy`, but there 
are differences.
+
+One key difference is in the way calculations are executed. Every `NDArray` 
manipulation in Apache MXNet is done in asynchronous, non-blocking way. That 
means, that when we write code like `c = a * b`, where both `a` and `b` are 
`NDArrays`, the function got pushed to the [Execution 
Engine](https://mxnet.incubator.apache.org/architecture/overview.html#execution-engine),
 which starts the calculation. The function immediately returns back, and the  
user thread can continue execution, despite the fact that the calculation may 
not have been completed yet. 
+
+`Execution Engine` builds computation graph which may reorder or combine some 
calculations, but it honors dependency order: if there are other manipulation 
with `c` done later in the code, the `Execution Engine` will start doing them 
once the result of `c` is available. We don't need to write callbacks to start 
execution of subsequent code - the `Execution Engine` is going to do it for us. 
 
 Review comment:
   builds *the* 

----------------------------------------------------------------
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:
[email protected]


With regards,
Apache Git Services

Reply via email to