Paper: Efficient Lossless Compression of Scientific Floating-Point Data on CPUs and GPUs
Noushin Azami, Alex Fallin, Martin Burtscher
Texas State University
ASPLOS 2025
Presenter: wzw
Date: 2026-04-27
ratio 或只拼 throughput;真实系统要同时满足 高吞吐 + 高压缩率 + CPU/GPU bitstream 兼容。DIFFMS / BIT / RZE / FCM / RAZE / RARE 设计四条面向 FP32/FP64、speed/ratio 的并行变换链。RTX 4090 上,SPspeed 达到 518 GB/s 几何平均压缩吞吐;DPratio 在 FP64 上给出最强 GPU 侧压缩率,同时四个方案几乎都在 Pareto front 上。FP32 与 FP64 的最佳 ratio 路线不同;FP64 mantissa 更随机,不能简单把 FP32 方案放大。
FP32/FP64 与 speed/ratio 两种目标,而不是追求一个万能 pipeline。FCM 外,所有 stage 都按 16 KB chunk 独立处理,因此天然适合 OpenMP 与 CUDA block 并行。
DIFFMS 先做整数差分,再把 two's-complement 变成 magnitude-sign,把正负残差都尽量拉成 leading-zero-rich 表示。(data << 1) xor (data >> (w-1)),完全由整数操作构成,易于 CPU/GPU 高吞吐实现。MPLG 再按 chunk / subchunk 消掉公共 leading zeros,所以 SPspeed/DPspeed 的思路本质上是 极简但极快。
BIT 把每个值的同一 bit 位收拢到一起,使高位零在输出前段形成长零串。RZE 再按 字节 建 bitmap,删除零字节,只输出非零字节与压缩后的 bitmap。16384 -> 2048 -> 256 -> 32 bits,因此 SPratio 的 ratio 明显高于 speed 路线。
DPratio 不能直接照搬 SPratio,因为 FP64 的低位随机性更强,bit shuffle 的收益被噪声吃掉。FCM 先把“重复值定位”改写成 hash + index 排序问题,避免传统 FPC 的 per-thread hash table 无法上 GPU。RAZE/RARE 则自适应选择 top-k bits,只压高位、保留低位原样,承认低位随机性而不是硬压。32/64-bit 整数;除 FCM 外,后续都在 16 KB chunk 内独立运行。speed 路线走 DIFFMS -> MPLG,目标是最短数据路径和最高并行吞吐。ratio 路线继续追加 BIT/RZE 或 FCM/RAZE/RARE,用更多中间处理换更高压缩率。sort / prefix sum / shared memory / output packing。DPratio 最贵: FCM 会生成两个中间数组,使临时数据约为 2x input,而且编码路径被排序主导。nvCOMP 更保守。19 个 compressor,覆盖 11 GPU + 9 CPU 实现;其中 Ndzip 是少数也支持 CPU/GPU 兼容的直接对手。90 个 FP32 文件 + 20 个 FP64 文件,来自 SDRBench 和额外 scientific inputs。Ryzen Threadripper 2950X、dual Xeon Gold 6226R、RTX 4090、A100。
RTX 4090 上,SPspeed 的几何平均达到 518 GB/s,ratio 为 1.41。SPratio、SPspeed 和 Bitcomp-i0;其中 SPratio 压得最好,SPspeed 跑得最快。
FP64 workload。DPratio 的核心卖点不是速度,而是 明显更高的 GPU 侧压缩率;Bitcomp 的 ratio 只有 1.04。FCM + adaptive top-bit elimination 的确抓住了 FP64 的结构特征,只是代价是编码更慢。SPspeed 在 Ryzen 上比 FPzip 压缩快 75x、解压快 55x,说明这不是“只会在 GPU 上好看”的方案。DPspeed 对比 pFPC 也约有 10x 吞吐优势,而且压缩率相近。Ndzip 真正提供 CPU/GPU 兼容 bitstream;这在真实 pipeline 中比单次 benchmark 冠军更重要。nvCOMP 不做 contiguous concatenation 的优势扣掉,本文方案的系统意义会更强。SPspeed 的 sweet spot 是 需要实时写入 / 高频解压 的场景,因为两级变换足够轻。SPratio 更适合 带宽仍紧张但能容忍额外编码开销 的 FP32 数据归档。DPratio 强在 FP64 压缩率,但它显然不适合最敏感的在线编码延迟路径。ratio + throughput + compatibility 当成同等重要目标。DPratio 没有硬套 FP32 思路,而是正面承认 FP64 随机性并重写变换链。DPratio 的排序与 2x 中间表示让工程成本不低。speed / ratio 路线。