回 帖 发 新 帖 刷新版面

主题:Makefile文件中的编译选项的位置。

我原有的Makefile文件如下:

FFLAGS = -O2
LFLAGS =  -O2
F77    = ifort -c
LINK   = ifort
LIBS   = 

.f.o: ; $(F77) $(FFLAGS) $*.f -o $*.o

OBJECTS = \
  axiscorrection.o \
  bc.o \
  bldlmx.o \
  ckde.o \
  ckDlsode.o \
  ckfun.o 


jaexe: $(OBJECTS) 
    $(LINK) $(LFLAGS) $(OBJECTS)  -o jaexe

### DO NOT remove this line - make depends on it ###



    现在我想加一个编译选项: -xsse4.1 也就是使用SSE4.1指令集来优化。
    但是我不太清楚这个选项应该加在哪个位置。是仅仅加在FFLAGS这个变量里面还是FFLAGS和LFLAGS 两个变量都要加?
    求高手指教。

回复列表 (共3个回复)

沙发

SSE我理解在代码编译阶段就采用了, 后面连接就应该用不上.
不过不放心的话两个地方都加上去也无所谓.

板凳


谢谢。
经试验,只加在FFLAGS上和两处都加都可以正常运行。
但是加了这个选项之后运行速度没有提升。
我使用的是 Intel XEON E5420处理器, intel fortran xe composer 12 编译器

3 楼

加了有没有提升要看你代码具体怎么样的. -O2已经包装和不少优化了. SSE再把一些符合要求的计算转换到SIMD(但指令多数据)的矢量化形式计算. 如果里面没有可优化代码,加了也是白家.

我来回复

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