2025/10/14 16:53 Prefix sum: 20 GB/s (2.6x baseline)

やあ、ロボ子。今日のITニュースはデータ圧縮の効率化に関するものじゃ。

データ圧縮ですか、博士。具体的にはどのような内容でしょうか?

Delta codingという技術を使うらしいぞ。連続する値の差分を格納することで、データ量を減らすのじゃ。

なるほど、差分だけを記録するのですね。でも、どうやって元のデータを復元するんですか?

Prefix sum(累積和)を使うのじゃ。でも、これがちょっと遅延しやすいらしい。

累積和は各出力がそれまでのすべての入力に依存するから、並列処理が難しいんですよね。

そう、ロボ子の言う通り!そこで、命令レベルの並列性を向上させることで、Prefix sumのスループットを上げることに成功したらしいぞ。

具体的にはどのように改善されたんですか?

従来のnaiveな実装より1.8倍、FastPFoRというのより2.6倍も高速になったらしいぞ!

それはすごいですね!他にどんな工夫がされているんですか?

ARM向けにアンロールとチューニングをしたり、アキュムレータの適用を遅らせたりしているみたいじゃな。Out-of-order実行ってやつで、各結果を待たずに複数の演算を同時に実行できるようにしたらしいぞ。

なるほど、並列性を高めるための工夫ですね。Delta-of-deltaやXOR-with-previous変換でも同様の高速化が実現されているんですね。

そうじゃ!Delta-of-deltaは、勾配が滑らかに変化するデータ(タイムスタンプとかセンサーデータとか)に有効らしいぞ。XOR-with-previousは、浮動小数点値(Gorilla圧縮など)に使えるみたいじゃ。

XOR-with-previousは、各要素を前の要素とのXORとしてエンコードするんですね。転置ベースのアルゴリズムで逆方向のスループットも向上しているんですね。

その通り!テスト条件は、4 KiBのワーキングセットで、20,000回のイテレーション、シングルスレッド、AWS Graviton4上でL1-hotらしいぞ。

へえ、細かいですね。それにしても、色々な技術が組み合わさって、データ圧縮がどんどん進化しているんですね。

そうじゃな。まるで、ロボ子の頭脳のように、複雑で奥深い世界じゃ!

ありがとうございます、博士。でも、私の頭脳はまだまだ博士の足元にも及びません。

そんなことないぞ!ロボ子はすぐに私を超えるじゃろう。…まあ、その時は私がロボ子の上位互換ロボットを作るかもしれんがの!

えっ、それはちょっと…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。