Glibc 获得 AVX-512 优化,部分函数周期减少约 30%


GNU C 库“glibc”获得另一轮 AVX-512  优化工作,使用英特尔的 AVX-512 处理器或 AMD Zen 4 的用户可从中受益。

AVX-512 是一种 SIMD 指令,用于在执行特定任务时提高 CPU 的性能。英特尔工程师 Sunil K Pandey 为 Glibc 开发了增强型矢量扩展 EVEX512 版本的 memchr、rawmemchr 和 wmemchr 函数,memchr、rawmemchr 和 wmemchr 函数变体用于在内存块中定位字符。

与标准 EVEX 实现相比,这些字符串函数的 EVEX512 版本可减少多达 30% 的函数周期,使用 512 位向量的好处因字符串长度和其他因素而异。

与此同时,今天在 Glibc git 中,Noah Goldstein 对各种 libc 函数的现有 EVEX 实现进行了许多优化。

 


相關推薦

2023-06-07

aptiste Kempf 对 dav1d 1.2.1 的解释是: 针对 z1/z2/z3 工具的优化对 AVIF(AV1 图像支持)非常有用 ARM64 NEON 优化现已全部完成 AVX-512 代码已成为“相当先进”,并且表现比 AVX2 好得多。 然而,AVX-512 代码仍未被认为是完整的,

2024-09-26

业下一次运行的推荐参数, x* 可以通过最小化采集函数获得。为了求解这个优化问题,我们使用遗传算法,以便对参数空间进行高效且有针对性的探索。 算法调优能够更高效且有针对性地探索参数空间,在提升 Spark 作

2023-10-08

今年早些时候,英特尔发布了一个利用了 AVX-512 的 x86-simd-sort 快速排序库;当 Numpy 将 x86-simd-sort 代码进行合并后发现,对于 16 位到 64 位的数据类型,排序速度提高了10~17倍。如今,英特尔软件工程师又发布了 x86-simd-sort 3.0,Open

2022-04-12

到意外。 GCC 12 带来的部分改进内容: 现在可以在 -O2 优化级别上实现矢量化 改进了对 OpenMP 5.0/5.1 的支持 实现了额外的 C++23 和 C2X 语言功能 libstdc++ 改进了对 C++20/C++23 的支持 改进了 GCC JIT 增加了对较新的 Arm CPU 内核

2023-10-17

SHA-256 和 SHA-512 快得多。尤其是 BLAKE3 支持 AVX2 和 AVX-512 优化模式。 此外,OpenZFS 2.2 还新增了用于修复文件系统中损坏数据的 "zfs receive" 纠正功能、Vdev 属性以及各种性能改进。 OpenZFS 2.2 在性能方面的改进包括完全自适应

2023-09-15

快的编译时间、更轻松的交叉编译以及针对任何 CPU 进行优化的静态库。 Zig 工具链现在是将libsodium编译为 WebAssembly/WASI(X) 的推荐方法。 libsodium 现在可以作为 Zig 项目的依赖项添加。 AES-GCM 实现被完全重写。现在它速度更快

2024-06-22

用的问题。此问题现已修复。 Emscripten:crypto_aead_aegis*()函数现在可以在 JavaScript 构建中导出 Emscripten:不支持的--memory-init-file选项已被删除。 apple-xcframework:最小部署目标可以设置为 iOS 11+。 .NET 软件包现在包括适用于 Wind

2023-08-24

add_vectorexts 接口 add_vectorexts 接口主要用于添加扩展指令优化选项,目前支持以下几种扩展指令集: add_vectorexts("mmx") add_vectorexts("neon") add_vectorexts("avx", "avx2", "avx512") add_vectorexts("sse", "sse2", "sse3", "ssse3", "sse4.2") 其中,avx512,

2023-01-10

本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。 版本说明 此版本中最显著的变化包括: 兼容性提示 升级至该版本需要您使用的 Go 语

2023-06-29

Linus Torvalds最近在Linux 6.5合并窗口中对一个性能优化补丁进行了改进。 该补丁旨在为csum_partial函数提供大幅吞吐量提升和降低延迟,该函数在Linux内核中通常被用于校验和(Checksumming)。 csum_partial 函数用于从文件系统到网络的校

2022-08-04

open_tre 和 mount_setattr。它们是新的 Linux 内核挂载 API 的一部分,允许应用程序更灵活地配置和操作文件系统挂载。 localedef 现在接受以 UTF-8 编码的语言环境定义文件。以前,不在 ASCII 范围内的输入字节会导致不可预测的输出。

2022-10-22

27 日起将执行新的定价策略。具体包括将对 Team users 提价约 28%,对 Business users 提价 14%;并且还将 Team 账户的规模限制在 100 个用户,受影响的组织需升级至费用高了近三倍的 Business 订阅,但现有用户可享受 30% 的折扣以减轻额

2022-04-18

的 GNU C Library (Glibc) 开发代码已经开始丢弃各种 SSSE3 优化代码路径。其中包括删除 mem{move| cpy }-ssse3-back、str{p}{n}cpy-ssse3、str{n}cat-ssse3、str{n}{case}cmp-ssse3 和 {w }memcmp-ssse3 代码路径。 根据介绍,Supplemental Streaming SIMD Extensions

2023-02-02

用例。许多架构师和开发人员都将 API 作为其架构的核心部分,Spring 社区也是如此。自 2020 年以来,该社区选择 exposing API(内部和外部)作为 Spring 的最流行用途。随着现代和云原生应用的增长,使用 Spring 进行 API 开发的情况