查看原文
其他

英特尔将OpenJDK的数据排序速度提高7-15倍

出品 | OSC开源社区(ID:oschina2013)
今年早些时候,英特尔发布了一个利用了 AVX-512 的 x86-simd-sort 快速排序库;当 Numpy 将 x86-simd-sort 代码进行合并后发现,对于 16 位到 64 位的数据类型,排序速度提高了 10~17 倍。
如今,英特尔软件工程师又发布了 x86-simd-sort 3.0,OpenJDK 也已经将这一修改版进行了合并。

x86-simd-sort 3.0 添加了一个新的 “avx512_argselect” 方法,用于计算 arg nth_element,该方法返回一个对数据数组进行分区的索引数组。

x86-simd-sort 3.0 版本还对其 benchmarks 进行了改进,现在使用 __builtin_cpu_supports 而不是 querying cpuinfo,并进行了各种其他更改。

目前,x86-simd-sort 3.0 已合并至 Numpy 主分支中,它提供了 np.partition 和 np.argpartition 的 AVX-512 矢量化版本。将 np.partition 的 16 位速度提高了 25 倍,将 32 位 dtypes 的速度提高了 17 倍,将 64 位 dtypes 的速度提高了约 8 倍。

与此同时,新的 avx512_argselect 方法还使 np.argpartition 的速度提高了 6.5 倍。

据介绍,合并到 OpenJDK 的 x86-simd-sort 是一个略有修改的版本,该版本将 32 位数据排序速度提高了 15 倍,64 位数据排序速度提高了约 7 倍。

相关链接
  • https://github.com/intel/x86-simd-sort/releases/tag/v3.0
  • https://github.com/openjdk/jdk/pull/14227

往期推荐



越来越多开源项目停更,Java 生态受影响最大
“根本不需要 TypeScript,JS+JSDoc 够了”,大佬说我想多了
新平台、新芯片组、性能更强!Raspberry Pi 5 终于要发布了




这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存