The Apache Software FoundationBlogging in Action.

Apache MXNet (incubating)

Apache MXNet 1.4 is available!

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, 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.