从 AVX2 机器编译 AVX-512 代码失败 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xuegy
V2EX    程序员

从 AVX2 机器编译 AVX-512 代码失败

  •  
  •   xuegy 2021-04-06 11:45:06 +08:00 3172 次点击
    这是一个创建于 1700 天前的主题,其中的信息可能已经有所发展或是发生改变。

    头节点是 Haswell (AVX2),计算节点是 Skylake (AVX-512),想把 C++代码优化为 AVX-512 指令集。

    尝试了 gcc9,加了-march=skylake-avx512直接编不过去。

    又试了 icc,加了'-axCORE-AVX512'能编译通过,一运行秒崩溃。

    跟管理员一块调试了一整天,谁也不知道怎么回事。最后管理员告诉我说,某些情况下 AVX 指令如果不在本机编译可能会出错,让我试试去计算节点从本机编译。

    这个东西感觉已经是玄学范畴了。如果从 AVX2 编译到 AVX-512 都能出错,那交叉编译 ARM 的还活不活了?

    顺便说一句,AMD 的-march=znver2比某些普通且自信的玩意要 YES 多了...

    第 1 条附言    2021-04-06 12:25:08 +08:00
    代码肯定没毛病,在 AVX2 上面跑的好好的。这玩意真是面向编译器编程啊...
    7 条回复    2021-04-06 17:43:22 +08:00
    matolv
        1
    matolv  
       2021-04-06 11:59:24 +08:00
    “又试了 icc,加了'-axCORE-AVX512'能编译通过,一运行秒崩溃。”
    Haswell 没有 avx512,你怎么运行得起来?除非你代码里面 fall back 到 avx2 或者 sse

    跑分软件 cinebench r23 抛弃了 avx512,总体而言开启 avx512 以后导致的 cpu 降频+高能耗总体比 avx2 并不占优,skylake 构架落后不能光靠一个 simd 指令集翻身

    另外 amd 已经有 Znver3 了,只是编译器还没完全适配完
    参考: https://www.phoronix.com/scan.php?page=news_item&px=Znver3-GCC-10-Backport
    xuegy
        2
    xuegy  
    OP
       2021-04-06 12:06:13 +08:00
    @matolv “计算节点是 Skylake (AVX-512)”
    vk42
        3
    vk42  
       2021-04-06 12:07:37 +08:00
    @matolv lz 应该是说在服务器上崩溃

    不过话说这问题问的,编译错误信息没有,崩溃输出也没有……
    xuegy
        4
    xuegy  
    OP
       2021-04-06 12:22:41 +08:00
    @vk42 gcc 压根就没报错误信息,直接不生成.o 然后退出了。

    icc 编译出来的报个 SIGFPE,肯定是编译器的锅了。
    whee1
        5
    whee1  
       2021-04-06 12:54:53 +08:00
    @matolv #1 可能需要 libc 等依都是-march=skylake-avx512 才行。
    funtoo 都有支持 avx512 的 subarch,不可以使用 https://www.funtoo.org/Intel64-skylake stage3 一出。在不行就加-march=skylake-avx512 重新一下 gcc glibc,比自己 bootstrap 一套工具。

    就崩的,我也遇到。甚至有些程序即使是-s -g0 生成的,你把他 strip 一下就不行了。
    coolmenu
        6
    coolmenu  
       2021-04-06 16:51:15 +08:00
    用 intel 自己的编译器测试一下?
    henices
        7
    henices  
       2021-04-06 17:43:22 +08:00 via Android
    -march=native 试试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5104 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:18 PVG 17:18 LAX 01:18 JFK 04:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86