|
Matrix Multiplication on Vector Machine
for i := 1 to n do
for k := 1 to n do
c[i,1:n] = c[i,1:n] + a[i,k] ∗ b[k,1:n]
endfor
endfor |
for i = 1 to n do
for k = 1 to n do |
|
setvl r1
loadf f2, (r2)
loadv v3, (r3)
mpyvs v3, v3, f2
loadv v4, (r4)
addvv v4, v4, v3
strorev v4, (r4)
addi r2, r2, #4
add r3, r3, r13
endfor
add r4, r4, r13
endfor |
;r1 holds n and r13 holds row sizes of B and C
;r2 holds address of A[i,k]
;r3 holds address of B[k,1]
;r4 holds address of c[i,1]
;set vactor length to n
;load A[i,k]
;load B[k,1:n]
;A[i,k]*B[k,1:n]
;load C[i,1:n]
;update C[i,1:n]
;store C[i,1:n]
;point to A[i,k+1]
;point to B[k+1,1]
;point to C[i+1,1]
|
|