首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时获得Intel C编译的编译选项?

如何在运行时获得Intel C编译的编译选项?
EN

Stack Overflow用户
提问于 2017-09-06 06:19:54
回答 1查看 176关注 0票数 2

我做了一些表演实验。我想在ICC中启用/禁用自动矢量化。

我添加了-no-vec选项,但是否可以进行一些调试打印,如:

代码语言:javascript
复制
printf("%s", VEC_ENABLED ? "vectorized" : "not vectorized");

是否有嵌入的ICC宏来执行此操作?

UPD:VEC_ENABLED只是一个例子,而不是真正的宏。在文档中没有这样的宏。

make文件的简单解决方法是:

代码语言:javascript
复制
# by default vectorization enabled
#OPTFLAGS= -DVEC_ENABLED=1
# vectorization disabled
OPTFLAGS= -no-vec -DVEC_ENABLED=0
CFLAGS=... $(OPTFLAGS)

但仍然在寻找更好的方法。

UPD2:Anoop Madhusoodhanan Prabha -为了禁用自动和显式矢量化,必须使用两个标志:-no-vec -no-simd。

EN

回答 1

Stack Overflow用户

发布于 2017-09-06 18:29:18

我们目前没有公开任何宏,它反映了基于所传递的编译器选项的自动矢量化的状态。需要记住的一件重要的事情是,-no-vec只会禁用自动矢量化。如果您碰巧在您的程序中使用#实用化omp (OpenMP SIMD),那么这些循环的矢量化仍然会发生。若要完全禁用向量化(包括自动向量化和显式向量化),请使用编译器选项-no-vec -no-simd.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46068125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档