Sep 0.10.0 was released April 22nd, 2025 with optimizations for AVX-512 capable CPUs like the AMD 9950X (Zen 5) and updated benchmarks including the 9950X. Sep now achieves a staggering 21 GB/s on the 9950X for the low-level CSV parsing. 馃殌 Before 0.10.0, Sep achieved ~18 GB/s on 9950X. See v0.10.0 release for all changes for the release, and Sep README on GitHub for full details. In this blog post, I will dive into how .NET 9.0 machine code for AVX-512 is sub-optimal and what changes were made to speed up Sep for AVX-512 by circumventing this, showing interesting code and assembly along the way, so get ready for SIMD C# code, x64 SIMD assembly and tons of benchmark numbers. However, first let鈥檚 take a look at the progression of Sep鈥檚 performance from early 0.1.0 to 0.10.0, from .NET 7.0 to .NET 9.0 and from AMD Ryzen 9 5950X (Zen 3) to 9950X (Zen 5), as I have also recently upgraded my work PC. Sep Performance Progression The benchmark numbers above are for the package assets CSV data and the low level parse Rows only scope, see Sep README on GitHub or code on GitHub for details on this. Note that all numbers here are single-threaded and are also shown in the table below. Note that there can be a few percentage points variation in the numbers, so for a given release Sep might see minor regressions. The main take away is that Sep has seen incremental improvements to performance driven by both major (e.g. almost complete rewrite of internals in 0.2.0) and minor code changes. While also seeing improved performance on new .NET versions. And finally here showing improvement for going from the AMD 5950X (Zen 3) to AMD 9950X (Zen 5). Hence, this showcases how software together with hardware improvements can boost performance to the next level. We can see Sep progressing: ~ 7 GB/s (0.1.0, 5950X and .NET 7.0) ~12 GB/s (0.3.0, 5950X and .NET 8.0) ~13 GB/s (0.6.0, 5950X and .NET 9.0) ~18 GB/s (0.9.0, 9950X and .NET 9.0) ~21 GB/s (0.10.0, 9950X and .NET 9.0) This is a staggerin...
First seen: 2025-05-09 14:14
Last seen: 2025-05-10 03:17