আমার নীচের ভিএইচডিএল ফাংশন রয়েছে যা প্রদত্ত এমএক্সএন ম্যাট্রিক্সকে a
একটি এনএক্স 1 ভেক্টর দিয়ে গুণ করে 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;
এটি ভালভাবে কাজ করে তবে হার্ডওয়্যারে এটি কী বাস্তবায়িত করে? বিশেষত, আমি যেটি জানতে চাই তা হ'ল এটি যদি যথেষ্ট স্মার্ট হয় যে এটি লুপের জন্য অন্তর্কে সমান্তরাল করতে পারে, ম্যাট্রিক্সের প্রতিটি সারিটির জন্য মূলত একটি ডট পণ্য গণনা করে। যদি তা না হয় তবে ম্যাট্রিক্স-ভেক্টর গুণকে সমান্তরাল করার সহজতম উপায় (অর্থাত্ দুর্দান্ত সিনট্যাক্স) কী?