Apache MXNet - 系统架构


本章将帮助您了解 MXNet 系统架构。让我们从了解 MXNet 模块开始。

MXNet 模块

下图是 MXNet 系统架构,展示了 MXNet 模块的主要模块和组件及其交互

MXNet 模块

在上图中 −

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

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

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

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

让我们进一步讨论面向用户和系统模块。

面向用户的模块

面向用户的模块如下 −

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

  • KVStore − 它充当高效参数同步的接口。在 KVStore 中,KV 代表键值。因此,它是一个键值存储接口。

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

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

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

系统模块

系统模块如下 −

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

  • 运行时依赖引擎 − 运行时依赖引擎模块根据其读/写依赖关系来安排和执行操作。

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

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