2

I'm trying to develop an intuition for how feasible/scalable machine learning algorithms are. The dominant cost is always matrix multiplications, but there seem to be no readily Google-able resource for explaining how to do back of the envelope calculations for matrix multiplication.

The specs of the machine I'm using: it has a 2.8GHz Ivy Bridge quad core processor with 8 Mb shared L3 cache, 5 GT/s bus speed, and 16 GB RAM. A stack overflow entry says Ivy Bridge has 8 DP flops/second throughput. How do I combine all these numbers to reach a rough estimate in seconds of how long it would take to multiply two double precision matrices of given sizes, assuming the matrices and their product can be stored in RAM all simultaneously?

3
  • 1
    I can give you some sources about that topic. Why is processing a sorted array faster than an unsorted array?. From this I assume that it is difficult to correctly estimate the time it would take, without real-life tests. The main factor is the inner workings of the CPU and it's cache. Sep 4, 2013 at 10:06
  • 2
    Also, what kind of matrixes are you trying to multiply? Sparse, dense, triangular? There are a lot of algorithms that deal quite well with those subsets. Sep 4, 2013 at 10:10
  • More precisely, I'm using Matlab to do dense matrix multiplies, so I'm trying to estimate the speed of BLAS. I'm more interested in knowing whether a given multiply is going to take say under 30 seconds than knowing it will take 6 seconds or less. I think I've figured it out, though.
    – AatG
    Sep 5, 2013 at 15:24

0

Browse other questions tagged .