Intel 提升 MariaDB Vector 的性能

正如您可能在之前的文章中看到的,MariaDB Vector 的预览版已经发布,可供您试用。在开发此功能期间,我们收到了来自多个不同地方的反馈。这当然包括像 Intel 这样的硬件制造商。

在幕后,Intel 一直在原型开发中使用 AVX512 指令来实现点积和布隆过滤器。这两个函数都是向量搜索的一部分。如果您没听过这些术语,让我尝试解释一下。

AVX-512 – Intel 高级向量扩展指令集的 512 位扩展

AVX512 指令本身是 CPU 特有的指令,旨在同时对大量数字向量进行计算。它是 SIMD(单指令多数据)的一部分 CPU 指令类别。

还记得早期 Pentium CPU 的 MMX 吗?那是第一套广泛部署的 SIMD 指令集,自那时以来事情已经取得了长足的进步。

AVX 是 Advanced Vector Extensions 的缩写,自 Sandy Bridge Intel 时代(约 2011 年)以来就已存在。它增加了 16 个寄存器,每个寄存器可以容纳 128 位(16 字节)。这意味着您可以一次性对 256 字节的数据运行一条指令。两年后出现了 AVX2,将寄存器的宽度加倍到 256 位(32 字节)。然后是 2016 年的 AVX512。这不仅将寄存器的宽度扩展到 512 位,还将寄存器数量加倍到 32 个,允许单条指令对高达 2KB 的数据进行操作。

可以说,Intel 为当前的向量处理浪潮已经准备了相当长的时间。

点积和布隆过滤器是数学概念

如果您喜欢数学,这两者都很有趣。点积基本上是取两个数字序列(例如向量)并生成一个单一的数字输出。

布隆过滤器是统计学的一个领域,在数据库领域经常使用。给定大量数字桶,您可以使用布隆过滤器来判断某个桶是否可能包含您正在寻找的数字。像 RocksDB 这样的引擎将其用作索引的一部分。

AVX512、Intel 和 MariaDB Vector

MariaDB Vector 世界正在快速发展,Intel 目前正在对 AVX512 可以带来的性能提升进行测试和基准测试。在他们进行测试的同时,MariaDB Vector 在点积领域获得了 AVX512 的支持。

我们 MariaDB 基金会期待这次测试的结果,并从 MariaDB 的向量索引中获得更多性能。

发布者:Andrew Hutchings

MariaDB 基金会首席贡献官