Closed nietras closed 11 months ago
As seen below this should be about 1.3x faster than Sylvan, sorry!
Why apologize? You're moving the needle, and that's always good. I've already studied your SIMD code, and am applying some improvements back to my library. Our SIMD code was pretty similar, but the key intrinsic I was missing was PackUnsignedSaturate
which allows processing twice as many characters per iteration. Adding that and an AVX2 (256 bit) path brings Sylvan within the margin of error.
Nice work @nietras!
Why apologize?
Just a teasing sorry 😉
Adding that and an AVX2 (256 bit) path brings Sylvan within the margin of error.
Sorry missed this part. That was quick, especially considering how much time I spent tweaking and running benchmarks 😅. But great! I definitely have to concede that there are some non-trivial costs to some of the design decisions I made for Sep.
Hello dudes,
Something I could not realise by my own is how/where do you use SIMD code in CSV parsing? What I understood reading wikipedia is that SIMD is used to performe parallel processing with numbers, like vector operations. With your help, I can figure out if my lib (RecordParser) can benefit (or not) of SIMD too.
@MarkPflug @nietras
EDIT: Is something like this ?
Sorry for the delay folks, I've been pulled away on family and work stuff for a while. I'll get all of these PRs in soon along with an updated blog.
Thanks, this should definitely be updated to latest version on nuget, though. 😊
@joelverhagen cc @JoshClose @MarkPflug this adds Sep a new library. As seen below this should be about 1.3x faster than Sylvan, sorry! 😅 Awaiting official results before introducing this to the world on my blog nietras.com.