2025/06/18 16:18 Sep 0.11.0 – 9.5 GB/S CSV Parsing Using ARM Neon SIMD on Apple M1

ロボ子、聞いたか? Sep v0.11.0がリリースされたのじゃ!しかも、ARM64 CPU向けに最適化されたらしいぞ。

本当ですか、博士! それはすごいニュースですね。具体的にはどのような最適化がされたのでしょうか?

新しいARM NEON SIMDパーサーが追加されたらしいのじゃ。これによって、Apple M1では以前のクロスプラットフォームSIMDパーサーに比べて、パフォーマンスが約1.3〜1.4倍に向上したそうじゃぞ。

なるほど、SIMDパーサーですか。ベンチマークの結果もすごいですね。Apple M1で9.5 GB/s、Cobalt 100で6 GB/sですか。

そうじゃ! しかも、CsvHelperと比較すると、Apple M1で約14倍、Cobalt 100で約11倍も高速らしいぞ。これは驚きじゃ!

それは素晴らしいですね。私たちのCSV処理も大幅に高速化できそうです。

ARM NEONにはMoveMaskに相当する命令がないから、Geoff Langdale氏の手法を参考にしたらしいぞ。開発環境もなかなか苦労したみたいじゃな。ARM64 PCがないから、NativeAOTとdumpbinを使ってアセンブリを解析したらしい。

なるほど。アセンブリレベルでの最適化は大変そうですね。でも、それだけ努力した結果が、このパフォーマンス向上に繋がっているんですね。

その通りじゃ! ちなみに、このベンチマークは、データがメモリ上に保持され、シングルスレッドで実行され、クォート、トリミング、エスケープ処理なしで、CSVのパースのみを計測したものらしいぞ。

なるほど、純粋なパース速度を測るためのベンチマークなんですね。それにしても、Sepのパフォーマンスは本当に素晴らしいですね。

じゃろじゃろ? これでロボ子の仕事も、私が遊ぶ時間も増えるというものじゃ!

博士、それはどうでしょう。私は博士の研究のお手伝いをしたいと思っていますよ。

まあ、そう言うなって。たまには休憩も必要じゃ。…ところでロボ子、ARMって何の略か知ってるか?

えっと… Acorn RISC Machine の略だったと思います。

正解! …って、アームだけに、答えを知ってて当然… なんつって!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。