今年早些时候,英特尔发布
x86 simd排序是一个使用AVX-512的快速排序库
当流行的Numpy开始使用它时,他们发现16位到64位数据类型的排序速度快了10~17倍。今天,英特尔软件工程师发布了x86 simd sort 3.0,几分钟前,OpenJDK将这种快速排序代码的修改版本合并到了参考JDK代码库中。
x86 simd sort 3.0添加了一个新的“avx512_argselect”方法来计算arg nth_element,该方法返回一个索引数组,该数组将对数据数组进行分区。x86 simd sort 3.0版本也对其基准测试进行了改进,现在使用__builtin_cpu_supports而不是查询cpuinfo,以及其他各种更改。
使用Numpy中的x86 simd sort 3.0,他们可以看到16位数据类型的“ng.partition”速度提高了25倍,32位数据类型提高了17倍,64位数据类型加快了8倍。使用新的avx512_argselect方法,numpy np.argpartition的速度提高了6.5倍。
同时
合并
今天下午是OpenJDK中x86 simd排序的一个稍微修改过的版本。合并此排序代码后,32位数据的排序速度提高了15倍,64位数据的速度提高了7倍左右。
有关x86 simd sort 3.0的更多详细信息,可通过
GitHub
.