diff --git a/_posts/2025-11-12-sep-0.12.0.md b/_posts/2025-11-12-sep-0.12.0.md new file mode 100644 index 0000000..d0d54b0 --- /dev/null +++ b/_posts/2025-11-12-sep-0.12.0.md @@ -0,0 +1,32 @@ +--- +layout: post +title: Sep 0.12.0 - Add net10.0 target and use cross-platform VectorXY.NarrowWithSaturation +--- + +[Sep 0.12.0 was released November 12th, +2025](https://github.com/nietras/Sep/releases/tag/v0.12.0) with a minor update +to target `net10.0` and use the newly available +[VectorXY.NarrowWithSaturation](https://learn.microsoft.com/da-dk/dotnet/api/system.numerics.vector.narrowwithsaturation?view=net-10.0&viewFallbackFrom=net-9.0). + +There are no other functional changes in this release and .NET 10 does not +improve upon Sep's already world class CSV performance. Cross-platform + `Vector256` parser is within performance of AVX-2 specific parser, as seen + below. So... + +![Parsers Benchmarks .NET 10]({{ site.baseurl +}}/images/2025-11-sep-0.12.0/parsers-benchmarks-dotnet-10.png) + +That's all! 😁 + +PS: There have been a few 0.11.x release with some minor feature additions. +Check out [releases](https://github.com/nietras/Sep/releases) on GitHub for +notes on this. Most of it is GitHub chore, though. + +sneaky `Sep_nietras_SeparatedValues_SepParserVector256NrwCmpExtMsbTzcnt__Parse` +uses AVX-512 VBMI2 instructions for narrowing with saturation: +``` + 000000014007DF72: C5 FE 6F 27 vmovdqu ymm4,ymmword ptr [rdi] + 000000014007DF76: 62 F3 5D 48 3A 67 vinserti32x8 zmm4,zmm4,ymmword ptr [rdi+20h],1 + 01 01 + 000000014007DF7E: 62 F2 7E 48 10 E4 vpmovuswb ymm4,zmm4 +``` \ No newline at end of file diff --git a/images/2025-11-sep-0.12.0/parsers-benchmarks-dotnet-10.png b/images/2025-11-sep-0.12.0/parsers-benchmarks-dotnet-10.png new file mode 100644 index 0000000..9eaf558 Binary files /dev/null and b/images/2025-11-sep-0.12.0/parsers-benchmarks-dotnet-10.png differ