头节点是 Haswell (AVX2),计算节点是 Skylake (AVX-512),想把 C++代码优化为 AVX-512 指令集。
尝试了 gcc9,加了-march=skylake-avx512
直接编不过去。
又试了 icc,加了'-axCORE-AVX512'能编译通过,一运行秒崩溃。
跟管理员一块调试了一整天,谁也不知道怎么回事。最后管理员告诉我说,某些情况下 AVX 指令如果不在本机编译可能会出错,让我试试去计算节点从本机编译。
这个东西感觉已经是玄学范畴了。如果从 AVX2 编译到 AVX-512 都能出错,那交叉编译 ARM 的还活不活了?
顺便说一句,AMD 的-march=znver2
比某些普通且自信的玩意要 YES 多了...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.