- 如何对复杂的网络模型实现自动微分?
- 如何利用编译期的分析Pass对网络的具体执行计算进行化简、合并、变换?
- 如何规划基本计算Kernel在计算加速硬件GPU/TPU/NPU上的高效执行?
- 如何将基本处理单元派发(Dispatch)到特定的高效后端实现?
- 如何对通过网络的自动微分(反向传播实现)衍生的大量中间变量进行内存预分配和管理?
计算图/数据流图
- 数据流图(Data Flow Diagram,DFD):这是一种从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程的方法。它是结构化系统分析方法的主要表达工具,也用于表示软件模型的一种图示方法。
无论是数据流图还是计算图,它们都将网络模型统一表示为图的形式。这种图由节点和边组成,描述了数据在图中的节点传播路径。这些路径是由固定的计算节点组合而成,数据在图中的传播过程就是对数据进行加工计算的过程。
标量、向量与矩阵
- 标量(Scalar):标量是一个独立存在的数,比如在计算机科学中,一个实数488就可以被看作一个标量。它的运算相对简单,与平常做的算数运算类似。
- 向量(Vector):向量指一列顺序排列的元素,通常习惯用括号将这些元素扩起来。其有大小也有方向,以公式为例,其代码x_vec则被作为一个向量赋值。
- 矩阵(Matrix):矩阵是一个按照长方阵列排列的复数或实数集合。在机器学习领域经常被使用,如用户特征数据等。以公式为例,其代码x_mat则被表示为一个矩阵被赋值。