4 ms·
I'm sold, and not sold. Having parsed terabytes of JSON, I was impressed by your work. Regexps and other operations are common-place, and if libraries like your
by murgindrag 6y ago
I'm sold, and not sold. Having parsed terabytes of JSON, I was impressed by your work. Regexps and other operations are common-place, and if libraries like yours were in broad use, I could definitely see the appeal.
I'm sold on this as a technical pathway to performance.
Problem is, I do it in Python. I have a hard time laying out the breadcrumbs between simdjson and hyperscan, and practical, general-purpose code running more quickly on Intel CPUs. My code will run faster on AMD CPUs in practice even if, in abstract, given a few extra hours of coding, it could run faster on AVX-512. I'd rather wait a few hours for my computer than port my code to simdjson. I think that's true for 99% of the code out there.
Didn't we go down this path with Pentium IV's deep out-of-order pipeline and Itanium's VLIW before? Where Intel had great theoretical performance, but software didn't keep up?
For this to make a dent, Intel would need to hire a teach of engineers so Firefox and Chrome both took advantage of the new instructions. That's perhaps more practical than in the Itanium and PIV era, but that doesn't mean it will happen.
- Majromax 6y ago> Where Intel had great theoretical performance, but software didn't keep up? > For this to make a dent, Intel would need to hire a teach of engineers so Firefox and Chrome both took advantage of the new instructions. That's more or less Intel's standard practice with its Intel compiler suite and MKL-and-similar libraries. If there are performance gains from SIMD being left on the table, some of it is on Intel for not building the middle tooling necessary to make it easy.
- murgindrag 6y ago(1) Most software isn't built with the Intel compiler suite or the MKL-and-similar-libraries. (2) Even if Firefox/Chrome were built with those, they JIT Javascript. It's the JIT that matters, not what compiles the browser.