主题:fortran如何调用SSE指令
saupt005
[专家分:0] 发布于 2012-03-15 15:33:00
各位老师,我最近在做fortran的并行编程,想充分利用CPU的资源。由于CPU中存在四个矢量逻辑计算单元(VALU),而这些单元的使用必须通过SSE指令来操作。所以请问各位老师,IVF的编译器如何使用SSE指令来进行矢量化处理?
回复列表 (共9个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2012-03-15 17:24:00
代码写的好些,尽量用整数组操作,编译器可以给你优化的。
记住:你是在用Fortran,不要用汇编写。。。
板凳
saupt005 [专家分:0] 发布于 2012-03-15 21:11:00
我需要手动优化……您能具体给我讲一讲如果用IVF的话在win7下应该如何进行设置才能让程序能够矢量化或者取消矢量化吗?
3 楼
cgl_lgs [专家分:21040] 发布于 2012-03-16 08:53:00
跟操作系统没关系,你在编译选项里设置指令集就行了
4 楼
saupt005 [专家分:0] 发布于 2012-03-16 09:14:00
编译选项是指?能具体告诉我吗?多谢您了!
5 楼
cgl_lgs [专家分:21040] 发布于 2012-03-16 15:09:00
我背不下来。。。
6 楼
saupt005 [专家分:0] 发布于 2012-03-16 15:43:00
我查了一下手册,发现里面确实有一些选项是编译器设置的,比如/QaxSSSE4.2、/QaxSSSE4.1等等,只是我不知道这些命令语句应该写在编译器的哪个位置……您知道吗?
7 楼
臭石头雪球 [专家分:23030] 发布于 2012-03-19 07:23:00
ifort 你的代码文件 编译器命令行开关
比如
ifort input.f90 /QaxSSSE4.2
8 楼
cgl_lgs [专家分:21040] 发布于 2012-03-20 07:33:00
我确实背不下来,您可以在编译选项里找找,比如在常规项、高级项、优化项等地方找找。
9 楼
saupt005 [专家分:0] 发布于 2012-03-21 08:49:00
谢谢,我已经找到了
我来回复