回 帖 发 新 帖 刷新版面

主题:[讨论]matmul对几种情况的测试报告,望指点

我的试验环境是 在/O3的速度优化条件下,用两个1000×1000的矩阵相乘
分4种情况:
1.固定矩阵之间相乘;
2.可分配矩阵相乘;
3.自定义数据的固定矩阵相乘;
4.自定义数据的可分配矩阵相乘。
测试代码在附件内,我的测试结果如下:
matmul(fixed,fixed) costs  0.4524 sec
matmul(alloc,alloc) costs  0.5460 sec
matmul(mytype.fixed,mytype.fixed) costs  0.4368 sec
matmul(mytype.alloc,mytype.alloc) costs 26.6606 sec

因为我的程序里都是自定义数据的可分配矩阵相乘,而测试结果显示其速度很慢
请教大家此缘由,如能提供有效措施解决该问题,不甚感谢

回复列表 (共12个回复)

11 楼

我也用命令行编译了一下:
E:\My Documents\Visual Studio 2008\Projects\TESTmatmul_sourcefile>ifort /O3 /heap-arrays "TESTmatmul.f90" /o TESTmatmul
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 12.0.5.221 Build 20110719
E:\My Documents\Visual Studio 2008\Projects\TESTmatmul_sourcefile>TESTmatmul
matmul(fixed,fixed) costs  0.5304 sec
matmul(alloc,alloc) costs  0.5928 sec
matmul(mytype.fixed,mytype.fixed) costs  0.4524 sec
matmul(mytype.alloc,mytype.alloc) costs  1.8252 sec

速度快多了,但是依然有差距

12 楼

貌似/o3 要改成 /O3吧,小写的o会报错

我来回复

您尚未登录,请登录后再回复。点此登录或注册