GNU C Library放弃一系列SSSE3指令集优化的代码路径

2022年04月16日 18:54 次阅读 稿源:cnBeta.COM 条评论

本周最新的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支持的成本却不低,因此从本周起,开发人员已经开始舍弃它。

image.jpg

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代码路径。

image.jpg

SSSE3在Core 2时代很有用,但对于过去几年的CPU来说,Glibc AVX2代码路径更有利

围绕memmove/mempcpy/memcpy的SSSE3代码也有减少。提交人解释说。

我们的目标是删除大部分SSSE3功能,因为SSE4、AVX2和EVEX通常更受欢迎。memcpy/memmove是一个例外,对于某些目标来说,用`palignr`避免无符号负载很重要。

此提交用一个更好的优化和更低的代码占用率的版本替换了 memmove-ssse3。此外,它还将 memcpy 别名为 memmove。

对文章打分

GNU C Library放弃一系列SSSE3指令集优化的代码路径

1 (12%)
已有 条意见

    最新资讯

    加载中...

    编辑精选

    加载中...

    热门评论

      Top 10

      招聘

      created by ceallan