Whistleྂ 2021-12-04 20:41
浏览 142
已结题

如何让gcc使用avx512进行自动向量化处理?

我编译一个简单的测试程序用于测试gcc自动向量化使用的是何种指令集,发现当编译参数为

-O1   -ftree-vectorize  -fopt-info-vec-optimized

编译器提示如下

gccvectortest.c:16:13: optimized: loop vectorized using 16 byte vectors

由此可以看出编译器默认使用的是128位的向量(SSE指令集)
当编译参数为

-O1 -fopenmp  -ftree-vectorize  -fopt-info-vec-optimized -march=native
或者
-O1 -fopenmp  -ftree-vectorize  -fopt-info-vec-optimized -march=skylake-avx512

编译器提示如下

gccvectortest.c:16:13: optimized: loop vectorized using 32 byte vectors
gccvectortest.c:10:5: optimized: loop vectorized using 32 byte vectors

由此可以看出编译器使用的是256位的向量(AVX指令集),并非AVX512

环境:

CPU : Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (支持avx512)
编译器:gcc 9.3.0
OS:Linux version 3.10.0-957.el7.x86_64

我使用的CPU架构为skyLake,是支持avx512的,但是编译器似乎无法使用avx512进行向量处理,我想知道如何让编译器使用avx512指令集进行自动向量化处理?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月12日
    • 创建了问题 12月4日

    悬赏问题

    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮