Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

A.2. 矩阵乘法库

Intel® HLS Compiler Pro Edition附带的矩阵乘法源代码库提供了一个FPGA优化的模板化源代码库,用于执行存储在二维数组中的两个矩阵的矩阵乘法。

使用矩阵乘法库时 ,可以通过控制点积向量大小和一次读取的矩阵元素数量来影响DSP块和RAM块的数量。增加点积向量大小可以实现更好的延迟,但代价是使用更多DSP块和其他FPGA资源。

头文件

要在组件中加入矩阵乘法库,请在组件中添加以下行:
#include "HLS/matrix_mult.h"

头文件是自动文档化文件。您可以查看头文件以了解如何在组件中使用矩阵乘法库。

模板参数

矩阵乘法库将两个二维矩阵,A和B相乘。所得乘积在第三个矩阵C中返回。矩阵乘法库具有以下模板参数:
T
矩阵单元的数据类型(例如,int, float, long, double)。
t_rowsA
矩阵A的行数。
t_colsA
矩阵A的列数。该值也是矩阵B的行数。
t_colsB
矩阵B的列数。
DOT_VEC_SIZE
单次计算中使用的DSP块数。此值必须是t_colsA的系数。

您可以通过增加此值来实现更好的组件延迟。但是,您需要使用更多的FPGA区域来实现此目的。保持此值较低会降低FPGA资源使用率,但会增加延迟。

BLOCK_SIZE
从矩阵A中一次读取的单元数量。BLOCK_SIZE的默认值是DOT_VEC_SIZE的值。如果矩阵A所需的带宽低于DOT_VEC_SIZE的值,则可以减小个数,但它必须仍然是DOT_VEC_SIZE的系数。
RUNNING_SUM_MULT_L
可以调整此参数以尝试改善使用此库的组件的fMAX。查看头文件以了解此参数及其效果的详细描述。