OpenBLAS 如何支持任意大小的向量和矩阵



我试图了解如何支持任意大小的矩阵和向量的快速矢量化线性代数计算。根据我对 x86 处理器架构的了解,它们包含有限大小的特殊寄存器。这些寄存器允许加载浮点数,并在寄存器之间广播操作。您如何有效地绕过有限的尺寸?

我正在查看 OpenBLAS 源代码来解决这个问题,但尽管查看了开发文档,但无法弄清楚简单操作(如 gemv(的一般流程。

OpenBLAS 依靠内核来有效地执行这些操作。在这种情况下,"内核"是专门为线性代数运算编写的汇编代码。例如,请参阅 x86-64 的这些内核和 ARM64 的内核以了解gemv操作。

最新更新