Apache MXNet - 系统架构


本章将帮助您了解 MXNet 系统架构。让我们首先了解 MXNet 模块。

MXNet 模块

下图是MXNet系统架构,它显示了MXNet模块的主要模块和组件以及它们之间的交互

MXNet 模块

在上图中 -

  • 蓝色框中的模块是面向用户的模块

  • 绿色框中的模块是系统模块

  • 实线箭头代表高度依赖,即严重依赖接口。

  • 虚线箭头表示轻依赖,即为了方便和接口一致性而使用的数据结构。事实上,它可以被替代品所取代。

让我们更多地讨论面向用户和系统模块。

面向用户的模块

面向用户的模块如下 -

  • NDArray - 它为 Apache MXNet 提供灵活的命令式程序。它们是动态且异步的 n 维数组。

  • KVStore - 它充当高效参数同步的接口。在KVStore中,KV代表Key-Value。所以,它是一个键值存储接口。

  • 数据加载(IO) - 这个面向用户的模块用于高效的分布式数据加载和增强。

  • 符号执行- 它是一个静态符号图执行器。它提供高效的符号图执行和优化。

  • 符号构造- 这个面向用户的模块为用户提供了一种构造计算图(即网络配置)的方法。

系统模块

系统模块如下 -

  • 存储分配器- 顾名思义,该系统模块在主机(即 CPU)和不同设备(即 GPU)上有效地分配和回收内存块。

  • 运行时依赖引擎- 运行时依赖引擎模块根据读/写依赖关系调度并执行操作。

  • 资源管理器- 资源管理器(RM)系统模块管理全局资源,例如随机数生成器和时间空间。

  • 运算符- 运算符系统模块由定义静态前向和梯度计算(即反向传播)的所有运算符组成。