Apache Mxnet 简明教程

Apache MXNet - System Architecture

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

MXNet Modules

下图是 MXNet 系统架构图,它显示了 MXNet modules and their interaction 的主要模块和组件。

mvnet modules

在上图中 −

  1. 蓝色盒子中的模块是 User Facing Modules

  2. 绿色盒子中的模块是 System Modules

  3. 实线箭头表示高度依赖性,即极大地依赖接口。

  4. 虚线箭头表示弱依赖性,即为方便和接口一致性而使用的数据结构。事实上,它可以被备选项替换。

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

User-facing Modules

面向用户的模块如下 −

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

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

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

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

  5. Symbol Construction − 这个面向用户的模块为用户提供构建计算图(即网络配置)的方法。

System Modules

系统模块如下 −

  1. Storage Allocator − 这个系统模块,顾名思义,在主机即 CPU 和不同设备(即 GPU)上高效地分配和回收内存块。

  2. Runtime Dependency Engine −运行依赖项引擎模块安排作业,并根据其读/写依赖关系执行作业。

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

  4. Operator −操作员系统模块包含定义静态正向和梯度计算(即反向传播)的所有操作员。