Live data from Hacker News

21 GB/s CSV Parsing Using SIMD on AMD 9950X

nietras.com

131–140 of 176 posts

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#131
post #59
post #48

Earlier quoted context omitted.

protobuf is more friction, and actually slow to write and read. For better or worse, CSV is easy to produce via printf. Easy to read by breaking lines and splitting by the delimiter. Escaping delimiters part of the content is not hard, though often added as an afterthought. Protobuf requires to install a library. Understand how it works. Write a schema file. Share the shema to others. The API is cumbersome. Finally t…

> For better or worse, CSV is easy to produce via printf. Easy to read by breaking lines and splitting by the delimiter. Escaping delimiters part of the content is not hard, though often added as an afterthought. Based on the amount of software I seen producing broken CSV or can't parse (more-or-less) valid CSV, I don't think that is true. It seems to be easy, because just printf("%s,%d,%d\n", ...) but it is full of…

Not an issue when you control both ends of the pipe. CSV is a great interchange format for tabular data, especially so if it's only/mostly numeric. If you need to pass tabular data from internal service X to internal service Y it's great. And it's really fast.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#132
post #83
post #49

Earlier quoted context omitted.

That is what Intel does, they build up a market (Optane) and then do a rug pull (Depth Cameras). They continue to do this thing where they do a huge push into a new technology, then don't see the uptake and let it die. Instead of building slowly and then at the right time, doing a big push. Optane support was just getting mature in the Linux kernel when they pulled it. And they focused on some weird cost cutting move…

Indeed. Octane/3dxpoint was mind blowing futuristic stuff but it was just gone after 5 years? On the market? Talk about short sighted.

They got caught is what happened.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#133
post #49

Earlier quoted context omitted.

That is what Intel does, they build up a market (Optane) and then do a rug pull (Depth Cameras). They continue to do this thing where they do a huge push into a new technology, then don't see the uptake and let it die. Instead of building slowly and then at the right time, doing a big push. Optane support was just getting mature in the Linux kernel when they pulled it. And they focused on some weird cost cutting move…

Until this day, I miss Optane — I work for a timeseries database company focused on finance, the amount of use cases I have that screams “faster than NVMe, slower than RAM” is insane. And these companies have money to throw at these problems. Which begs the question, why isn’t anyone else stepping into this gap? Is the technology heavily patented?

Yes, and Intel got caught skirting them.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#134
post #49

Earlier quoted context omitted.

That is what Intel does, they build up a market (Optane) and then do a rug pull (Depth Cameras). They continue to do this thing where they do a huge push into a new technology, then don't see the uptake and let it die. Instead of building slowly and then at the right time, doing a big push. Optane support was just getting mature in the Linux kernel when they pulled it. And they focused on some weird cost cutting move…

Optane was cancelled because manufacturer sold the fab

Oh? Complete coincidence they got caught not paying ECDL royalties?

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#135
post #82

Earlier quoted context omitted.

> What the VLIW of Itanium needed and never really got was proper compiler support. This is kinda under-selling it. The fundamental problem with statically-scheduled VLIW machines like Itanium is it puts all of the complexity in the compiler. Unfortunately it turns out it's just really hard to make a good static scheduler! In contrast, dynamically-scheduled out-of-order superscalar machines work great but put all the…

>What happened was that static scheduling stayed really hard while the transistor overhead for dynamic scheduling became irrelevantly cheap Is the latter part true? AFAIK most of modern CPU die area and power consumption goes towards overhead as opposed to the actual ALU operations.

I think OP meant "transistor count overhead" and that's true. There are bazillions of transistors available now. It does take a lot of power, and returns are diminishing, but there are still returns, even more so than just increasing core count. Overall what matters is performance per watt, and that's still going up.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#136
post #49

Earlier quoted context omitted.

That is what Intel does, they build up a market (Optane) and then do a rug pull (Depth Cameras). They continue to do this thing where they do a huge push into a new technology, then don't see the uptake and let it die. Instead of building slowly and then at the right time, doing a big push. Optane support was just getting mature in the Linux kernel when they pulled it. And they focused on some weird cost cutting move…

The rugpull on Optane was incredibly frustrating. Intel developed a technology which made really meaningful improvements to workloads in an industry that is full of sticky late adopters (RDBMSes). They kept investing until the point where they had unequivocally made their point and the late adopters were just about getting it... and then killed it! It's hard to understand how they could have played that particular ha…

Executives. That everyone on here claims fairly earn their multi million dollar salaries.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#137

This is a staggering ~3x improvement in just under 2 years since Sep was introduced June, 2023. You can't claim this when you also do a huge hardware jump

Perhaps, but i think we are well past the moore's law era where a 3x speed up is to be expected just from hardware. Its still a pretty impressive feat in the modern era.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#138
post #131
post #59

Earlier quoted context omitted.

> For better or worse, CSV is easy to produce via printf. Easy to read by breaking lines and splitting by the delimiter. Escaping delimiters part of the content is not hard, though often added as an afterthought. Based on the amount of software I seen producing broken CSV or can't parse (more-or-less) valid CSV, I don't think that is true. It seems to be easy, because just printf("%s,%d,%d\n", ...) but it is full of…

Not an issue when you control both ends of the pipe. CSV is a great interchange format for tabular data, especially so if it's only/mostly numeric. If you need to pass tabular data from internal service X to internal service Y it's great. And it's really fast.

Hmmm if they're just internal tools, why not just an array of structs? No parsing needed. Can have optionals. Can't go faster than nothing.

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#139
post #131

Earlier quoted context omitted.

Not an issue when you control both ends of the pipe. CSV is a great interchange format for tabular data, especially so if it's only/mostly numeric. If you need to pass tabular data from internal service X to internal service Y it's great. And it's really fast.

Hmmm if they're just internal tools, why not just an array of structs? No parsing needed. Can have optionals. Can't go faster than nothing.

Thanks to everyone above for some great responses. Cap'n Proto seems to do exactly what you're describing (the in-memory representation is identical to what's on the wire, and then getter/setter methods are generated which look at that).

Re: 21 GB/s CSV Parsing Using SIMD on AMD 9950X

#140
post #72

Earlier quoted context omitted.

I honestly wonder if JSON is king. I used to think so until I started working in fintech. XML is unfortunately everywhere.

JSON isn't great for tabular data. And an awful lot of data is tabular.

JSON tabular data only adds a couple of brackets per line and at the start/end of the file vs CSV. In exchange for these bits (that basically disappear when compressed), you get a guaranteed standard formatting. Seems like a decent tradeoff to me.
Post reply on HN