Apache MXNet 1.4 is available!
Authors : Piyush Ghai, Qing Lan
Today the Apache MXNet community is excited to announce the 1.4.0 release of the Apache MXNet deep learning framework. We would like to thank the Apache MXNet community for all their contributions towards this power packed v1.4 release.
This release brings Java bindings for inference, Julia bindings, experimental control flow operators, JVM memory management, Horovod integration for distributed training, graph optimization and quantizations, and many more features and under-the-hood performance enhancements and usability improvements. Check out the full release highlights on MXNet v1.4 release notes.
Java Inference APIs
This release includes new Java Inference APIs which offer easy to use, idiomatic high level APIs for performing predictions in Java with deep learning models trained using MXNet. This simplifies production deployment of Apache MXNet models for enterprise systems that run on Java. More details are available in this blog post which introduces how to use the new Java Inference APIs.
Julia API
The Julia package brings flexible and efficient GPU computing and state-of-the-art deep learning to Julia. Some highlights of the Julia package include efficient tensor computation across multiple devices including multiple CPUs, GPUs and distributed server nodes.
Control Flow Operators (experimental)
With the control flow operators variable dynamic neural network graphs can be turned into optimized static computation graphs. The optimized graph can greatly improve the speed for training and inference for dynamic models.
To learn more details about these operators, check out the Control Flow Operators tutorial.
Automated JVM Memory Management
As the name suggests, the memory management feature provides an automated way for managing native memory when using the JVM language bindings of MXNet. Developers now get a seamless memory management system for managing both CPU and GPU memory footprint without any degradation in performance. More details on how to use can be found in this README file.
MXNet Horovod Integration
Apache MXNet now supports distributed training using Horovod framework. Horovod is an open source distributed framework created at Uber. It leverages efficient inter-GPU communication to distribute and aggregate model parameters across multiple workers thus allowing efficient use of network bandwidth and scaling of training of deep learning models. To learn more about MXNet-Horovod integration, check out this blog.
Subgraph API
Subgraph API empowers Apache MXNet to integrate different kinds of backend libraries such as TVM, MKLDNN, TensorRT, Intel nGraph and many more. Enhanced integration with different backend libraries provides MXNet with a significant performance boost, by optimizing the execution of graph by breaking it into smaller components. Check out integrating with external backend libraries to learn more.
MKLDNN : Graph Optimization and Quantization
MKLDNN takes advantage of the MXNet Subgraph API to implement graph optimizations in the form of operator fusion for inference. Fusions such as Convolution + ReLU and Batch Normalization Folding, provide a great boost in the speeds for inference.
Quantization allows the use of reduced precision (INT8), which reduces memory usage and improves inference time without a significant loss in accuracy. On models such as ResNet50, Inception-BN, MobileNet the observed accuracy loss was less than 0.5 %. More details on this project are available on the MXNet Graph Optimization and Quantization page.
Other Maintenance improvements :
- The community fixed 81 bugs, improving MXNet’s stability and reliability.
- The community also addressed over 55 documentation issues, improving the user experience for using MXNet and earning trust of the users.
Getting started with MXNet
Getting started with MXNet is simple, visit the install page to get started. To learn more about MXNet Gluon interface and deep learning, you can follow our 60-minute crash course, and then later complete this comprehensive set of tutorials, which covers everything from an introduction to deep learning to how to implement cutting-edge neural network models. You can check out other related MXNet tutorials, MXNet blog posts and MXNet YouTube channel.
Have fun with MXNet 1.4.0!
Acknowledgements:
We would like to thank everyone from the Apache MXNet community for their contributions to the 1.4.0 release.