ALP: 自适应无损浮点压缩

Lobsters Hottest 论文

摘要

本文介绍ALP,一种针对IEEE 754浮点数据的最先进的无损压缩算法,利用十进制和高精度模式。它在解码速度、压缩比和压缩速度方面表现出色,获得了SIGMOD最佳构物奖。

<p>由于这种压缩有助于克服内存墙,因而性能提升。</p> <p><a href="https://lobste.rs/s/g71xle/alp_adaptive_lossless_floating_point">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/24 17:09

cwida/ALP 来源:https://github.com/cwida/ALP

ALP:自适应无损浮点数压缩

作者:Azim Afroozeh,Leonardo Kuffó,Peter Boncz
会议:ACM SIGMOD 2024


这是什么仓库?

本仓库包含论文《ALP: Adaptive Lossless Floating-Point Compression》(https://dl.acm.org/doi/abs/10.1145/3626717)的源代码和基准测试,该论文发表于 ACM SIGMOD 2024。

ALP 是一种专为 IEEE 754 浮点数据设计的最先进的无损压缩算法。它通过利用真实世界浮点数值中常见的两种模式来编码数据:

  • 十进制浮点数:真实世界数据集中的浮点数/双精度数大部分是十进制数。ALP 将这些值乘以 10 的幂次映射为整数,然后使用 FastLanes 变体的参考帧编码1(对 SIMD 友好)对结果进行压缩。
    示例:数字 10.12 变为 1012,然后送入 FastLanes 编码器。

  • 高精度浮点数:剩余的值通常是高精度浮点数/双精度数。ALP 仅对这些值左侧部分进行压缩,使用 FastLanes 字典编码。右侧部分保持不变,因为它需要保持高精度,且通常是高度随机的、不可压缩的。


📊 ALP 的性能如何?

ALP 结果
这些结果突出了 ALP 在压缩算法的三个关键指标上的卓越表现:解码速度压缩比压缩速度——在每个类别中都优于其他方案。


🧪 如何复现结果

只需运行以下脚本:

bash ./publication/script/master_script.sh

有关复现基准测试的更多信息,请参考我们的指南这里,或阅读官方 ACM 可复现性报告:https://dl.acm.org/doi/10.1145/3687998.3717057


🏅 ACM 工件与奖项

我们很高兴地宣布,我们参与了 SIGMOD 可用性与可复现性倡议(https://reproducibility.sigmod.org/),并且我们的论文获得了全部三个徽章:🎉

我们还自豪地分享,ALP 获得了 SIGMOD 最佳工件奖(https://sigmod.org/sigmod-awards/sigmod-best-artifact-award/)


⏱️ 想在自己的数据集上运行基准测试?

请查看我们的指南:如何对您的数据集进行基准测试
它解释了如何在您自己的数据上运行 ALP。


🗂️ 仓库结构

  • src/:ALP 和 ALP_RD 的核心实现
  • benchmarks/:基准测试工具和数据集
  • include/:用于集成的头文件
  • scripts/:数据处理的实用脚本
  • test/:单元测试
  • publication/:出版物和补充材料

📚 出版物

  • 会议论文ALP: Adaptive Lossless Floating-Point Compression,ACM SIGMOD 2024
    https://dl.acm.org/doi/10.1145/3626717
  • 可复现性报告Reproducibility Report for ACM SIGMOD 2024 Paper: ‘ALP: Adaptive Lossless Floating-Point Compression’
    https://dl.acm.org/doi/10.1145/3687998.3717057

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。


📬 联系我们

如果您有问题、想贡献,或希望了解 ALP 及相关项目的最新动态,请加入我们的 Discord 社区:
加入我们的 Discord(https://discord.gg/2ngmRaRW)
社区状态(https://discord.gg/2ngmRaRW)


🧩 被以下系统使用

ALP 已被集成到以下系统中:

  • DuckDB(https://duckdb.org/2024/02/13/announcing-duckdb-0100.html)
  • FastLanes(https://github.com/cwida/FastLanes)
  • KuzuDB(https://github.com/kuzudb/kuzu/pull/3994)
  • liquid-cache(https://github.com/XiangpengHao/liquid-cache/pull/133)

1

在此了解更多关于 FastLanes 的信息:https://github.com/cwida/fastlanes

相似文章

OpenZL

Lobsters Hottest

OpenZL 是一个压缩库,能够为特定数据格式生成专门的压缩器,以高速实现高压缩比,适用于数据中心工作负载,如 AI 处理。