주어진 mxn 행렬 a
에 nx1 벡터를 곱하는 다음 VHDL 함수가 있습니다 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 루프를 병렬화 할 수 있고, 본질적으로 행렬의 각 행에 대한 내적을 계산할 수 있다는 것이 충분히 똑똑한 지 여부입니다. 그렇지 않다면 행렬-벡터 곱셈을 병렬화하는 가장 간단한 방법은 무엇입니까?