3 Dec 2015 | Tianqi Chen, Mu Li, Yutian Li, Min Lin, Naiyan Wang, Minjie Wang, Tianjun Xiao, Bing Xu, Chiyuan Zhang, Zheng Zhang
MXNet is a flexible and efficient machine learning library designed for heterogeneous distributed systems. It supports multiple programming paradigms, including declarative symbolic expressions and imperative tensor computations, enabling efficient gradient computation and execution on various hardware. The library is embedded in multiple host languages, such as C++, Python, R, Go, and Julia, and provides a unified API for both symbolic and imperative operations. MXNet's design allows for efficient memory usage and execution scheduling, with support for distributed training and communication across multiple devices. It offers a superset programming interface compared to other popular ML systems like Torch7, Theano, Chainer, and Caffe, and supports GPU clusters and other distributed systems. The library's implementation includes a computation graph for symbolic expressions, an NDArray for imperative tensor operations, and a KVStore for data synchronization. MXNet's performance is comparable to other systems, with efficient memory usage and scalability on large-scale datasets. Experimental results show that MXNet achieves good performance in both training and inference, with significant memory savings through optimized memory allocation strategies. The library is lightweight, with minimal dependencies, and is suitable for both single-machine and distributed environments. Overall, MXNet provides a flexible and efficient framework for machine learning tasks, combining the strengths of different programming paradigms to maximize performance and flexibility.MXNet is a flexible and efficient machine learning library designed for heterogeneous distributed systems. It supports multiple programming paradigms, including declarative symbolic expressions and imperative tensor computations, enabling efficient gradient computation and execution on various hardware. The library is embedded in multiple host languages, such as C++, Python, R, Go, and Julia, and provides a unified API for both symbolic and imperative operations. MXNet's design allows for efficient memory usage and execution scheduling, with support for distributed training and communication across multiple devices. It offers a superset programming interface compared to other popular ML systems like Torch7, Theano, Chainer, and Caffe, and supports GPU clusters and other distributed systems. The library's implementation includes a computation graph for symbolic expressions, an NDArray for imperative tensor operations, and a KVStore for data synchronization. MXNet's performance is comparable to other systems, with efficient memory usage and scalability on large-scale datasets. Experimental results show that MXNet achieves good performance in both training and inference, with significant memory savings through optimized memory allocation strategies. The library is lightweight, with minimal dependencies, and is suitable for both single-machine and distributed environments. Overall, MXNet provides a flexible and efficient framework for machine learning tasks, combining the strengths of different programming paradigms to maximize performance and flexibility.