Open|GNU C Library放弃一系列SSSE3指令集优化的代码路径
本周最新的GNU C Library(Glibc)开发代码已经开始放弃各种SSSE3指令集优化代码路径 。补充流SIMD扩展3指令集(SSSE3)可以追溯到十多年前的英特尔至强5100/酷睿2或AMD Bobcat/Bulldozer核心,当时的设想是作为SSE的一个迭代 。
但是由于Glibc也携带了与SSSE3差不多时间的旧版SSE2或SSE4.1的优化代码路径,加上用于较新的Intel/AMD CPU的AVX2和EVEX代码路径,SSSE3的代码路径实质上已经无人在使用或者均已被替代 。
Glibc开发者认为,考虑到SSE2/SSE4.1/AVX2/EVEX代码路径的存在,已经不值得再提供SSSE3指令集优化的代码路径,因为很少有英特尔/AMD CPU被留在SSSE3这条路径上,而在代码中提供SSSE3支持的成本却不低,因此从本周起,开发人员已经开始舍弃它 。
文章图片
【Open|GNU C Library放弃一系列SSSE3指令集优化的代码路径】Xeon 5100系列引入了SSSE3支持
在删除的SSSE3支持中包括放弃mem{move|cpy}-ssse3-back、str{p}{n}cpy-ssse3、str{n}cat-ssse3、str{n}{case}cmp-ssse3和{w}memcmp-ssse3代码路径 。
文章图片
SSSE3在Core 2时代很有用,但对于过去几年的CPU来说,Glibc AVX2代码路径更有利
围绕memmove/mempcpy/memcpy的SSSE3代码也有减少 。提交人解释说 。
我们的目标是删除大部分SSSE3功能,因为SSE4、AVX2和EVEX通常更受欢迎 。memcpy/memmove是一个例外,对于某些目标来说,用`palignr`避免无符号负载很重要 。
此提交用一个更好的优化和更低的代码占用率的版本替换了 memmove-ssse3 。此外,它还将 memcpy 别名为 memmove 。
推荐阅读
- Huawei|华为捐赠后:欧拉首个社区共建版openEuler 22.03 LTS正式发布
- Linux|SUSE/openSUSE为下一代SUSE Linux Enterprise开发"可适应的Linux平台"
- Open|SSLPing开发者向广大用户致歉:服务积弊太久 已难起死回生
- 安全|着力于应对未来量子计算机挑战的OpenSSH 9.0已经发布
- AI|[视频]OpenAI展示DALL-E 2:AI图像生成器支持编辑图像了
- Open|开源倡议组织就俄乌冲突期间的乱象表态 不希望将开源工作“武器化”
- Open|迷惑操作:诞生于俄罗斯的NGINX开源项目 宣布了对俄罗斯的禁令
- Open|开源项目志愿者精疲力竭,大公司不给钱还催更,网络处于危险之中
- OpenRAN|沃达丰利用 OpenRAN 技术将 4G 延伸至英国乡村深处
- Open|node-ipc开源维护者因反俄自毁代码 遭到GitHub社区猛烈抨击