首页 理论教育 深入探析MXNet技术特性

深入探析MXNet技术特性

时间:2023-06-28 理论教育 版权反馈
【摘要】:MXNet名字源于“Mix and Maximize”,与其他工具相比,MXNet结合了符号语言和过程语言的编程模型,并试图最大化各自优势,利用统一的执行引擎进行自动多GPU并行调度优化。MXNet通过融合的方式把各种编程模型整合在一起,并且通过统一的轻量级运行引擎进行执行调度。MXNet主要技术特点如下:1)轻量级调度引擎。MXNet支持基于静态计算流图符号计算。大量使用C++11特性,使MXNet利用最少的代码实现尽可能最大的功能。MXNet提供了非常详细的用户文档和设计文档以及样例。

深入探析MXNet技术特性

MXNet名字源于“Mix and Maximize”,与其他工具相比,MXNet结合了符号语言和过程语言的编程模型,并试图最大化各自优势,利用统一的执行引擎进行自动多GPU并行调度优化

不同的编程模型有各自的优势,以往的深度学习库往往着重于灵活性,或者性能。MXNet通过融合的方式把各种编程模型整合在一起,并且通过统一的轻量级运行引擎进行执行调度。这使得用户可以直接复用稳定高效的神经网络模块,并且可以通过R等高级语言进行快速扩展。

MXNet融合了Minerva的动态执行、Cxxnet的静态优化和Purine2的符号计算等思想,直接支持C接口和静态/动态Library,使得对于新语言的扩展更加容易。

MXNet主要技术特点如下:

1)轻量级调度引擎。在数据流调度的基础上引入了读写操作调度,并且使得调度和调度对象无关,用以直接有机支持动态计算和静态计算的统一多GPU多线程调度,使得上层实现更加简洁灵活。

2)符号计算支持。MXNet支持基于静态计算流图符号计算。计算流图不仅使设计复杂网络更加简单快捷,而且基于计算流图,MXNet可以更加高效地利用内存。同时进一步优化了静态执行的规划,内存需求比Cxxnet还要少。

3)混合执行引擎。相比Cxxnet的全静态执行、Minerva的全动态执行,MXNet采用动静态混合执行引擎,可以把Cxxnet静态优化的效率和Ndarray动态运行的灵活性结合起来,把高效的C++库更加灵活地和Python等高级语言结合在一起。(www.xing528.com)

4)更加灵活。在MShadow C++表达式模板的基础上,符号计算和NDArray使在R等高级语言内编写优化算法、损失函数和其他深度学习组件并高效无缝地支持CPU/GPU成为可能。用户无须关心底层实现,在符号和NDArray层面完成逻辑即可进行高效的模型训练和预测。

5)对于云计算更加友好。所有数据模型可以从S3/HDFS/Azure上直接加载训练。

6)代码更加简洁高效。大量使用C++11特性,使MXNet利用最少的代码实现尽可能最大的功能。用约11k行C++代码(加上注释4k行)实现了以上核心功能。

7)开源用户和设计文档。MXNet提供了非常详细的用户文档和设计文档以及样例。所有的代码都有详细的文档注释,并且会持续更新代码和系统设计细节,对广大深度学习系统开发和爱好者有所帮助。

8)它能够在R上编写无缝的多核GPU张量/矩阵运算。

9)它能够在R上构建和定制最先进水平的深度学习模型,并将它们应用到图像分类和数据科学等挑战性任务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈