【发布时间】:2015-06-11 13:57:04
【问题描述】:
我正在使用f2py 将我的python 代码的性能关键部分卸载到fortran。我有两个 fortran 编译器,gfortran 和 ifort。由于我运行的代码将在英特尔处理器上运行,ifort 通常更快。但对于我的代码中最关键的部分,我观察到相反的情况,gfortran 的速度提高了 40%!在检查了正在调用的实际命令行ifort 之后,我注意到f2py 将-fp-model strict 附加到命令行,无论我在FFLAGS 环境变量中指定什么。我怀疑这是 ifort 缓慢的原因。
有没有办法让f2py 停止执行这个浮点模型?我已经尝试将-fp-model fast 添加到FFLAGS 和f2py 的--f90flags 参数中,但是当它们出现在最终命令行上时,它们在严格标志之前这样做,因此被覆盖。虽然我感谢对 NaN 等的支持,但不值得放慢 40% 的速度。
这是我的f2py 命令行:
FFLAGS="-openmp -Ofast -fPIC" f2py --fcompiler=intelem -c -m pmat_core_32 pmat_core_32.f90 -liomp5
根据f2py 输出,这里是实际传递给ifort 的标志:
-FI -openmp -Ofast -fPIC -xhost -openmp -fp-model strict
【问题讨论】:
标签: python numpy optimization fortran f2py