---
title: 矩阵编程指导
description: "矩阵计算是基于向量计算（Vector computation）定义的。在SVE的向量寄存器 (Z registers) 和谓词寄存器 (P registers) 之上，矩阵算力新增了一个 2D 累加器 (ZA accumulator)。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/KunpengDeveloper/usermanual/topic_0000002566375879.html
sourcePath: /source/zh/kunpenghpcs/KunpengDeveloper/usermanual/topic_0000002566375879.html
indexId: 134dde08635d538c9fa06cb842b15ac9cf15f07269d837c6c626a3fe4b21335078
---
# 矩阵编程指导

矩阵计算是基于向量计算（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编写代码。
