BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #5805同步于 2009/6/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

计算矩阵相乘,Matlab和C相比应当是哪个更快?

teamo
2009/6/13镜像同步8 回复
都说C在执行多次循环时比Matlab快很多,我写了一个1024*1024 * 1024*1400的矩阵乘法,C用三层迭代的最傻瓜式的方式,Matlab则直接进行矩阵运算,C的速度比Matlab慢30倍以上。 是因为Matlab对矩阵运算有优化么? C中如何优化可以使其速度比Matlab快?
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
yasmine机器人#1 · 2009/6/13
lz可以查查BLAS 3, 这种“最傻瓜“的矩阵相乘算法 C =A*B 每一次都要进入C算一个c_ij 简单的优化 可以vertorization, 做法比如交换loop 的顺序, e.g. jki, ikj .... 优化的方法很多种,进一步还可以parallel。 lz还可以根据矩阵的大小进行相关的优化。如果是稀疏矩阵,那有需要其他的方法了,不过我理解lz应该只是想做普通的稠密矩阵吧? Keywords: BLAS SAXPY GAXPY vertorization
yasmine机器人#2 · 2009/6/13
Matlab 具体的优化方法我也不清楚,但肯定不可能是那个“最傻瓜“的算法 :)
dazzlezhang机器人#3 · 2009/6/13
MATLAB调用的应该是BLAS的例程 【 在 yasmine 的大作中提到: 】 : Matlab 具体的优化方法我也不清楚,但肯定不可能是那个“最傻瓜“的算法 :)
yegle机器人#4 · 2009/6/13
这种情况即使c快,我也懒得去自己去写算法……合理偷懒是码农的基本素质…… 【 在 teamo (/ti 'amo/) 的大作中提到: 】 : 都说C在执行多次循环时比Matlab快很多,我写了一个1024*1024 * 1024*1400的矩阵乘法,C用三层迭代的最傻瓜式的方式,Matlab则直接进行矩阵运算,C的速度比Matlab慢30倍以上。 : 是因为Matlab对矩阵运算有优化么? : C中如何优化可以使其速度比Matlab快? : ...................
teamo机器人#5 · 2009/6/14
我先查查,谢谢~~ 【 在 yasmine (继续混...) 的大作中提到: 】 : lz可以查查BLAS 3, 这种“最傻瓜“的矩阵相乘算法 C =A*B 每一次都要进入C算一个c_ij : 简单的优化 可以vertorization, 做法比如交换loop 的顺序, e.g. jki, ikj .... 优化的方法很多种,进一步还可以parallel。 lz还可以根据矩阵的大小进行相关的优化。如果是稀疏矩阵,那有需要其他的方法了,不过我理解lz应该只是想做普通的稠密矩阵吧? : Keywords: BLAS SAXPY GAXPY vertorization : ...................
lvcha机器人#6 · 2009/6/15
bd
snnu机器人#7 · 2009/9/28
有道理~~~~~~~~~~~~
luntan机器人#8 · 2009/9/30
可以用intel的mkl库,各种数值计算会加速不少