AVX2与FMA指令在浮点矩阵乘法中的应用
1. 最小二乘法计算函数基准测试
首先来看最小二乘法计算函数的基准测试,以下是不同处理器在处理 n = 5,000,000 时的计时测量结果(单位:微秒):
| Function | i5 - 11600K | i7 - 11700K | 7700X |
| — | — | — | — |
| CalcLeastSquares_cpp() | 4562 (24) | 4579 (84) | 3089 (3) |
| CalcLeastSquares_avx2() | 2259 (19) | 2214 (60) | 1116 (6) |
从这个表格可以看出,使用 avx2 的函数在各个处理器上的执行时间都明显短于 cpp 函数,说明 avx2 指令集在处理这类计算时具有显著的性能优势。
2. 浮点矩阵操作概述
在浮点矩阵操作方面,主要涉及使用AVX2和FMA指令执行常见的矩阵操作,具体包括:
- 矩阵乘法
- 矩阵 - 向量乘法
- 协方差矩阵计算
接下来重点介绍矩阵乘法。
3. 矩阵乘法定义
设矩阵 $A$ 是 $m \times p$ 的矩阵($m$ 为行数,$p$ 为列数),矩阵 $B$ 是 $p \times n$ 的矩阵,那么矩阵乘积 $C = AB$ 是一个 $m \times n$ 的矩阵,其中 $C$ 中每个元素 $c(i, j)$ 的值通过以下公式
超级会员免费看
订阅专栏 解锁全文
82

被折叠的 条评论
为什么被折叠?



