跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 从 AVX2 机器编译 AVX-512 代码失败
未分類
18 4 月 2021

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

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

資深大佬 : xuegy 8

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

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

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

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

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

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

大佬有話說 (7)

  • 資深大佬 : matolv

    “又试了 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

    @matolv “计算节点是 Skylake (AVX-512)”

  • 資深大佬 : vk42

    @matolv lz 应该是说在服务器上崩溃

    不过话说这问题问的,编译错误信息没有,崩溃输出也没有……

  • 主 資深大佬 : xuegy

    @vk42 gcc 压根就没报错误信息,直接不生成.o 然后退出了。

    icc 编译出来的报个 SIGFPE,肯定是编译器的锅了。

  • 資深大佬 : whee1

    @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

    用 intel 自己的编译器测试一下?

  • 資深大佬 : henices

    -march=native 试试

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具