If you’re just multiplying matrices - why not use the MKL? I think it gets something north of 50 GFlops for a single precision matrix multiply with 4 cores.
I didn’t know that. I’ll have to try that some time.
Of course, I was also stupid in using the textbook formula Sum_k A(i,k) * B(k,j).
What I should do is to construct the transpose matrix D(i,j) = A(j,i) and then
compute Sum_k D(k,i) * B(k,j). This way, my CPU results look more respectable:
No. of cores GFlops
1 0.72
2 1.48
3 2.22
4 2.92
Thus, GFlops scales linearly with no. of cores and, furthermore, is more or less independent
of matrix size.