Matlab 版 (精华区)

发信人: zjliu (秋天的萝卜), 信区: Matlab
标  题: [合集]求助:Matlab循环如何优化?
发信站: 哈工大紫丁香 (2003年11月27日15:32:06 星期四), 站内信件


────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 14:33:57 2003 说道:

感觉Matlab中循环效率很低,我算一个东西要2分多钟,我都要崩溃了。因为这个东西要求
是应该实时处理的,起码每秒算出2次来。
一般对于这种循环有没有优化加速的办法?转换成矩阵运算是不太可能了。

────────────────────────────────────────
 zjliu (秋天的萝卜)                   于 2003年11月26日14:52:12 星期三 说道:

方法可能只有两个换机器,或者再想办法改程序。
另外,看看这个:
查一下matlab\bin\win32目录,应该有几个atlas_*.dll文件,
matlab对不同的cpu采用不同的dll,这是matlab快的根源,(blas内核)。
你可以在自己机器上重新编译一个相应的dll文件,可能会快不少。
下面的网页有些介绍:
http://econ.ucsd.edu/~ksheppar/matlab/MatlabAtlas.htm
我试了一下,参照该网页的做法,确实可行。
我的机器比较旧,用bench命令测lu分解的速度有25%的提高。我猜想如果是较新的CPU,
增幅会更大。
编译atlas很费时,可以下载网页上编译好的dll,拷贝到相应目录,并修改blas.spec
文件即可。
有兴趣不妨试试。

────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 15:02:58 2003 说道:


那么,改程序有什么常规方法介绍一下好吗?

────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 15:07:54 2003 说道:


我看了,有几个文件:atlas_Athlon.dll atlas_PII.dll atlas_PIII.dll atlas_PPro.d
ll
应该是分别针对:Athlon,PentiumII,PentiumIII,Pentium Pro优化的吧?可是我的是
P4
应该去down个atlas_P4.dll来吧。

────────────────────────────────────────
 zjliu (秋天的萝卜)                   于 2003年11月26日15:35:38 星期三 说道:

方法可能很多,主要是矩阵化程序,
另外不同函数的执行速度是有差别的,
比较一下,选择执行快的函数使用

────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 16:05:47 2003 说道:


有人说可以编译执行,会快很多,不知这种说法对否?

────────────────────────────────────────
 zjliu (秋天的萝卜)                   于 2003年11月26日16:21:02 星期三 说道:

这个我没尝试过,我一般不关心程序的执行速度,
只要能执行就可以了,时间长了,我还能等得及

────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 17:05:17 2003 说道:


多谢。改天请你吃饭,呵呵。

────────────────────────────────────────
 able (随心所欲)                      于 2003年11月26日19:27:56 星期三 说道:

你尝试用mcc file.m看看,你能得到一个file.exe文件,速度一帮来讲能快大约5倍。

────────────────────────────────────────
 tm (呼呼)                            于 Wed Nov 26 21:43:58 2003 说道:


谢谢你的指导,我去试试看。

────────────────────────────────────────
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.971毫秒