blob: 4c4e1fa977af90b5628469a5b8d6efdc13390748 [file] [log] [blame] [view]
Memory Cost of Deep Nets under Different Allocations
====================================================
This folder contains a script to show the memory cost of different allocation strategies,
discussed in [Note on Memory Optimization](http://mxnet.io/architecture/note_memory.html).
We use inception-bn as an example, with batch size of 32.
How to See the cost
-------------------
The possible options are gathered together in the [Makefile](Makefile).
Type the following command to see the allocation cost. Look for the
```Final message Total x MB allocated```
- ```make no_optimization```
- Shows the cost without any optimization.
- ```make with_inplace```
- Shows the cost with inplace optimization.
- ```make with_sharing```
- Shows the cost with memory allocating algorithm for sharing.
- ```make with_both```
- Shows the cost of memory allocation with both inplace and sharing optimization.
- ```make forward_only```
- Shows the cost of when we only want to run forward pass.
Notes
-----
- You can change the symbol in the [inception_memcost.py](inception_memcost.py) to the net you interested in.
- You will need to install mxnet or type make on the root folder before use the script.
- The estimation is only on space cost of intermediate node.
- The cost of temporal workspace is not estimated, so you will likely need more memory when running real nets.
- The estimation does real allocation on CPU, the plan is the same on GPU.