我有以下VHDL函数,该函数将给定的mxn矩阵a
乘以nx1向量b
:
function matrix_multiply_by_vector(a: integer_matrix; b: integer_vector; m: integer; n: integer)
return integer_vector is variable c : integer_vector(m-1 downto 0) := (others => 0);
begin
for i in 0 to m-1 loop
for j in 0 to n-1 loop
c(i) := c(i) + (a(i,j) * b(j));
end loop;
end loop;
return c;
end matrix_multiply_by_vector;
它运作良好,但实际上在硬件中实现了什么?具体来说,我想知道的是,它是否足够聪明,以至于它可以并行化内部for循环,本质上是为矩阵的每一行计算一个点积。如果没有,那么并行化矩阵向量乘法的最简单方法(即不错的语法)是什么?
1
如果不是,则必须具有某种内存,并串行加载所有值并“执行”它们的管道样式
—
Voltage Spike