x86-64-v2相对于x86-64支持了更多SSE和其它指令,包括CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3,从而产生更多编译器优化和向量化的机会。 我们使用SPEC2017进行测试,测试结果如下。X86-64-v2分别对SPECINT和SPECFP里的一个benchmark有较大程度的提升,总的几何平均值也有小幅的提升(SPECINT 0.12%,SPECFP 0.77%)。在Ofast上性能提升更为明显,SPECINT达到0.86%,SPECFP达到0.89%。
[cid:image002.png@01D99AE5.0E79C570]
从SPEC结果来看,我们认为性能提升是随着不同benchmark而变化的,如果benchmark正好有机会可以利用新增的指令集做优化,就会带来比较明显的提升。所以我们认为这个改进会对一部分程序带来性能提升,并且对其它程序不会产生性能退化。其它OSV的反馈也从侧面佐证了这一点。
Thx, Annita
From: 王锋 wangfeng@hnu.edu.cn Sent: Thursday, June 8, 2023 10:13 AM To: Zhang, Annita annita.zhang@intel.com; zhaochuanfeng zhaochuanfeng@huawei.com; Zhoukang (A) zhoukang7@huawei.com; tc tc@openEuler.org; compiler@openeuler.org; dev@openeuler.org Subject: Re:[Compiler] [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
Hi all,
具体的话,能给哪些应用/benchmark带来性能提升,有相应的数据吗?我想知道能给应用性能带来提升的主要是os的哪一部分?
谢谢! -- 王锋 湖南大学信息科学与工程学院
------------------ Original ------------------ From: "Zhang, Annita"<annita.zhang@intel.commailto:annita.zhang@intel.com>; Date: Tue, May 30, 2023 04:15 PM To: "zhaochuanfeng"<zhaochuanfeng@huawei.commailto:zhaochuanfeng@huawei.com>; "Zhoukang (A)"<zhoukang7@huawei.commailto:zhoukang7@huawei.com>; "tc"<tc@openEuler.orgmailto:tc@openEuler.org>; "compiler@openeuler.orgmailto:compiler@openeuler.org"<compiler@openeuler.orgmailto:compiler@openeuler.org>; "dev@openeuler.orgmailto:dev@openeuler.org"<dev@openeuler.orgmailto:dev@openeuler.org>; Subject: [Compiler] Re: [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
Hi Zhoukang,
谢谢反馈!x86-64-v2作为默认配置不会影响编译兼容问题,也不会影响LTO和PGO的推动。它可以摆脱一直以来非常陈旧的ISA对编译器代码生成的限制,并对用户程序带来性能上的提升。另外,LLVM也支持同样的微架构等级,所以今后如果迁移至LLVM也可以使用同样的选项来提升ISA等级。 目前RHEL9和Suse ALP已经将x86-64-v2做为默认配置,可以看作是业界的大势所趋,我们认为OpenEuler23.09创新版本是比较好的时间点来跟上这个大趋势。
Thx, Annita
From: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.commailto:zhaochuanfeng@huawei.com> Sent: Tuesday, May 30, 2023 12:23 PM To: Zhoukang (A) <zhoukang7@huawei.commailto:zhoukang7@huawei.com>; Zhang, Annita <annita.zhang@intel.commailto:annita.zhang@intel.com>; tc <tc@openEuler.orgmailto:tc@openEuler.org>; compiler@openeuler.orgmailto:compiler@openeuler.org; dev@openeuler.orgmailto:dev@openeuler.org Subject: 答复: [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
Hi Zhoukang, 谢谢你的建议,目前编译器的LTO和PGO相关的项目也在同步推进中。
Best Regards 赵川峰(Steve)
发件人: Zhoukang (A) <zhoukang7@huawei.commailto:zhoukang7@huawei.com> 发送时间: 2023年5月30日 11:56 收件人: Zhang, Annita <annita.zhang@intel.commailto:annita.zhang@intel.com>; Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.commailto:zhaochuanfeng@huawei.com>; tc <tc@openEuler.orgmailto:tc@openEuler.org>; compiler@openeuler.orgmailto:compiler@openeuler.org; dev@openeuler.orgmailto:dev@openeuler.org 主题: RE: [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
Compiler SIG各位专家, 你们好; openEuler社区当前在并行推进的项目还有llvm替代gcc作为默认编译器的项目; 还有性能工程项目; 我们的客户对LTO和PGO更感兴趣; 客户希望编译器是唯一的稳定的, 不希望出现编译兼容问题; 希望Compiler SIG优先推进LTO和PGO商用落地; x86-64-v2建议降低优先级;
From: Zhang, Annita <annita.zhang@intel.commailto:annita.zhang@intel.com> Sent: Tuesday, May 30, 2023 11:39 AM To: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.commailto:zhaochuanfeng@huawei.com>; tc <tc@openEuler.orgmailto:tc@openEuler.org>; compiler@openeuler.orgmailto:compiler@openeuler.org; dev@openeuler.orgmailto:dev@openeuler.org Subject: [Dev] Re: [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
各位好,
我们上周五(5/26)在release SIG讨论了在OpenEuler 23.09上默认使能x86-64-v2的提议,收到反馈希望听到更多社区伙伴(OSV, CSP等等)的声音。根据目前的初步计划,v2的构建和验证工作将于7月份启动。如果您有任何的意见和建议,请及时反馈给我们。非常感谢!
Thx, Annita
From: Zhaochuanfeng (Steve) <zhaochuanfeng@huawei.commailto:zhaochuanfeng@huawei.com> Sent: Wednesday, February 1, 2023 8:13 PM To: tc <tc@openEuler.orgmailto:tc@openEuler.org>; compiler@openeuler.orgmailto:compiler@openeuler.org; dev@openeuler.orgmailto:dev@openeuler.org Cc: Zhang, Annita <annita.zhang@intel.commailto:annita.zhang@intel.com> Subject: [Compiler SIG][Proposal] Intel提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,请各位发表意见,感谢
各位好,
Intel同事向Compiler SIG提议编译器默认使能x86-64-v2来构建OpenEuler 23.09创新版本,并于今天在TC例会上进行了分享,TC原则上同意在创新版本上进行预验证。 另外,TC建议调研社区的伙伴(特别是相关OSV和云厂商)对此proposal的建议,请各位在此邮件上反馈意见和建议即可,感谢~
如下是x86-64微架构level:
* x86-64
* The current default microarchitecture level * CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 * Intel Pentium4 launched in 2000, AMD K8 Hammer in 2003
* x86-64-v2
* CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 * Intel Nehalem launched in 2008, Silvermont (Atom core) in 2013, AMD Piledriver in 2012
* x86-64-v3
* AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE * Intel Haswell launched in 2013, Gracemont (Atom core) in Nov. 2021, AMD Excavator in 2015
* x86-64-v4
* AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL * Intel Skylake launched in 2015, AMD Zen4 in 2022
不同的level代表能支持的微架构级别,目前openEuler的GCC默认配置成x86-64,该提议建议默认配置成x86-64-v2,从上表可以看到增加了新指令的支持,减少了对老旧硬件的支持。
假设:(1)在生产环境中运行超过10年的硬件并不多 (2)此类硬件很少需要升级到最新的操作系统发行版 收益:(1)摆脱支持非常旧的硬件的限制(>10年); (2)将微体系结构的最低级别提高到Intel Nehalem或 AMD Piledriver; (3)使用更多的矢量指令,以提升应用性能; (4)期望开箱即用的性能收益; 影响:对早于x86-64-v2的硬件不再支持/兼容。
RHEL 9默认配置成了x86-64-v2,供参考:https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-li...
Compiler SIG 赵川峰(Steve)