Strassen矩阵乘法算法与定时资源驱动自动机网络
Strassen矩阵乘法算法
Strassen的避免通信的并行矩阵乘法算法在矩阵计算领域有着重要的地位。下面我们详细介绍该算法的一些关键内容。
基本情况的延迟和带宽成本
假设输入矩阵为 $N = n \times n$,每个处理器存储每个输入矩阵的 $N/4$ 个元素,乘积矩阵的元素也由 $N/4$ 个元素组成。总共存在2个通信步骤:
- 第一步,某些消息长度可达 $N^2/4$ 个元素。
- 第二步,传输的消息始终由 $N/4$ 个元素组成。
对于一个节点,延迟($L$)和带宽($B$)成本可以表示为:
[
\begin{cases}
L(N) = 2\alpha \
B(N) = 0.75\frac{N^3}{4}\beta
\end{cases}
]
递归执行
当49个处理器映射到 $7\times7$ 环面时,递归从中央蓝色块开始。输入矩阵被传输到七个块的中心(标记为 $c1$ 到 $c7$),然后通过另一个传输步骤在每个块内实现初始对齐。进入递归级别需要2个传输步骤,返回递归也需要2个传输步骤。因此,每次递归需要6个通信步骤和2个计算步骤,且这些步骤不能相互重叠。
单次递归的延迟($L$)和带宽($B$)成本计算如下:
- 递归开始时,假设输入矩阵为 $N = n \times n$,每个7个子矩阵乘积由 $N/4$ 个元素组成。执行递归后,将两个输入矩阵的一个元素(包含原矩阵的 $N/4$ 个元素)传输到中心节点,此步骤的延迟和带宽成本为: