首先,肯定是算法上的优化,它没有直接按照定义去做乘,而是先对矩阵做了一些变换再乘,目的就是减少重复运算的次数。关于这个,你可以去看下Knuth的The art of programming的第一卷,那里面有例子说明怎样算最快;
其次,如果你想看些原代码,貌似matlab在很久前就开始用LAPACK这个数学包了,LAPACK是开源的,是个数学运算的包。你可以google下。
最后,stackexchange上有差不多的问题,比较了下各语言的速度,我给你粘贴下。
1024x1024 2048x2048 4096x4096
--------------- -------------- ---------------
CUDA C (ms) 43.11 391.05 3407.99
C++ (ms) 6137.10 64369.29 551390.93
C# (ms) 10509.00 300684.00 2527250.00
Java (ms) 9149.90 92562.28 838357.94
MATLAB (ms) 75.01 423.10 3133.90
当然上面的C++用的算法我猜是按定义直接算的。