34
Cannon’s Algorithm
•Skew A, Skew B, {Multiply, Accumulate, Rotate}
•
•           for i := 2 to m do -- Skew A
•  [i..m, 1..n] A := A@^right;
•           end;
•           for i := 2 to p do -- Skew B
•  [1..n, i..p] B := B@^below;
•           end;
•
•         [Res] C := 0.0;      -- Initialize C
•           for i := 1 to n do -- For common dim
•         [Res] C := C + A*B;  -- For product
•         [Lop] A := A@^right; -- Rotate A
•         [Rop] B := B@^below; -- Rotate B
•           end;