# 矩阵编程指导

矩阵计算是基于向量计算（Vector computation）定义的。在SVE的向量寄存器 (Z registers) 和谓词寄存器 (P registers) 之上，矩阵算力新增了一个 2D 累加器 (ZA accumulator)。

矩阵算力是在可伸缩向量扩展（Scalable Vector Extensions和Vector computation）的基础上建立的，并增加了有效处理矩阵的能力，主要功能包括：- 矩阵tile的存储
- 存取、插入、提取 tile向量，包括on-the-fly 转置
- 计算Vector computation向量的外积（Outer product）
- Streaming Vector computation模式


使能矩阵算力可通过以下四种方式实现：

- 毕昇编译器自动生成矩阵运算指令，完成矩阵运算的优化；
- 通过替换第三方库实现，例如将OpenBLAS替换为HPCKit组件KML中的KML_BLAS库或组件KuDNN库；
- 通过使用KUPL MMA 使能矩阵计算加速；
- 通过C/C++代码实现，例如核心算子使用矩阵算力 Intrinsic编写代码。
