We analyze our four algorithms for our two different types of matrix-vector multiplication including matrix-column-vector multiplication (MCVM) and row-vector-matrix multiplication (RVMM).
00:00 -Introduction
00:11 -Recall the two versions of MCVM
00:58 -Intro to table for data flow of matrix-vector multiplication
01:21 -Algorithm 1.1: BLAS 2 column axpy algorithm for MCVM
01:31 -For all algorithms, we initialize and then define outer loop
02:37 -Algorithm 1.2: BLAS 1 column axpy algorithm for MCVM
03:12 -Analyze algorithm 1 data flow: The column axpy algorithm for MCVM
04:19 -Algorithm 2.1: BLAS 2 row dot algorithm for MCVM
05:04 -Algorithm 2.2: BLAS 1 row dot algorithm for MCVM
05:36 -Analyze data flow for algorithm 2: The row dot algorithm for MCVM
06:23 -Recall the two versions of RVMM
07:01 -Algorithm 3.1: BLAS 2 row axpy algorithm for RVMM
08:08 -Algorithm 3.2: BLAS 1 row axpy algorithm for RVMM
08:47 -Analyze data flow for algorithm 3: The row axpy algorithm for RVMM
09:36 -Make some guesses about Algorithm 4
10:18 -Algorithm 4.1: BLAS 2 column dot algorithm for RVMM
11:06 -Algorithm 4.2: BLAS 1 column dot algorithm for RVMM
12:09 -Analyze algorithm 4 data flow: The column dot algorithm for RVMM
12:15 -Why spend so much time analyzing these details?
12:34 -General model for Von Neumann architecture
12:48 -Basic model for how matrices are stored in memory
15:28 -MATLAB is not designed for code optimization at low level
16:00 -Challenge 1: Write specifications for a matrix-vector product function
16:28 -Challenge 2: Teach yourself about computer architecture
17:24 -Conclusion