本章节将帮助您了解 MXNet 系统架构。让我们从学习 MXNet 模块开始。
MXNet Modules
下图是 MXNet 系统架构图,它显示了 MXNet modules and their interaction 的主要模块和组件。
-
蓝色盒子中的模块是 User Facing Modules 。
-
绿色盒子中的模块是 System Modules 。
-
实线箭头表示高度依赖性,即极大地依赖接口。
-
虚线箭头表示弱依赖性,即为方便和接口一致性而使用的数据结构。事实上,它可以被备选项替换。
User-facing Modules
-
NDArray − 它为 Apache MXNet 提供灵活的命令式程序。它们是动态且异步的 n 维数组。
-
KVStore − 它充当高效参数同步的接口。在 KVStore 中,KV 代表 Key-Value。所以它是一个键值存储接口。
-
Data Loading (IO) − 这个面向用户的模块用于高效分布式数据加载和增强。
-
Symbol Execution − 它是一个静态符号图执行器。它提供高效的符号图执行和优化。
-
Symbol Construction − 这个面向用户的模块为用户提供构建计算图(即网络配置)的方法。
System Modules
-
Storage Allocator − 这个系统模块,顾名思义,在主机即 CPU 和不同设备(即 GPU)上高效地分配和回收内存块。
-
Runtime Dependency Engine −运行依赖项引擎模块安排作业,并根据其读/写依赖关系执行作业。
-
Resource Manager −资源管理器(RM)系统模块管理全局资源,如随机数生成器和临时空间。
-
Operator −操作员系统模块包含定义静态正向和梯度计算(即反向传播)的所有操作员。