Daniel Lemire has an interesting talk on this: ▶ this video . They key takeaway is that the disk is rarely the bottleneck.
in “The One Billion Row Challenge” · View on HN
Parsing JSON Really Quickly: Lessons Learned on HackerTube: recommended by 3 Hacker News commenters across 3 separate months, 2020–2026.
talk · advanced · evergreen
Daniel Lemire's QCon talk on how simdjson parses gigabytes of JSON per second. It covers SIMD vectorization, branch prediction and the lessons learned building a fast parser.
HN points to it as the best explanation of simdjson internals and of why fast parsing is rarely disk-bound.
“It's worth looking at if you're into this sort of thing.”
5 Hacker News comments link this video. Each one links back to its thread.
Daniel Lemire has an interesting talk on this: ▶ this video . They key takeaway is that the disk is rarely the bottleneck.
in “The One Billion Row Challenge” · View on HN
I find these optimizations fascinating. Anyone familiar with Lemire likely knows about this, but I listened to a podcast episode[1] with him a few days ago and learned about `simdjson`, the tool he authored that parses JSON at 25x the speed of the standard C++ library.[2][3] It's worth looking at if you're into this sort of thing. 1. [link] 2. ▶ this video 3. [link]
in “Word-Aligned Bloom Filters” · View on HN
I can relate. I have been one of those who started writing a CSV library and went down the rabbit hole of edge cases and configurability. Looking back (and only thinking on productivity) my time would have been better spent doing something else. I did, however, learn quite a lot along the way: - how text is represented in a computer (and all its caveats), - how to identify and tune slow code, - how to vectorize code (thanks to Daniel Lemire's ▶ this video ), - how to encapsulate code better, - how to use some great CSV tools out there (thanks to Leon's [link] ) - how to better manage and communicate an open source project. All in all, I am still not sure it was a mistake. Moreover when Swift didn't really had, at the time, a good Codable interface to CSV. Next time I encounter a similar problem I will probably just wrap a C library and create a good interface, though. In any case, if you are coding in Swift and find yourself in need of a CSV encoder/decoder, you might want to check [link]
in “So you want to write your own CSV code (2014)” · View on HN
Github: [link] It showcases an especially ingenious scheme for escaping json strings, as well as the other tokens necessary to parse json. Daniel Lemire - One of the authors at QCon 2019: ▶ this video Another Youtube video that explains it: [link]
in “GigaToken: ~1000x faster Language model tokenization” · View on HN
The GitHub page links to a video that explains some of the internals [1]. Can someone comment on the result that they show at 14:26? My understanding is that they run a code that does 2000 branches based on a pseudo-random sequence. Over around 10 runs of that code, the CPU supposedly learns to correctly predict those 2000 branches and the performance steadily increases. Do the modern branch predictors really have the capability to remember an exact sequence of past 2000 decisions on the same branch instruction? Also, why would the performance increase incrementally like that? I would imagine that it would remember the loop history on the first run and achieve maximum performance on the second run. I doubt that there's really a neural net in the silicon doing this as the author speculates. [1] ▶ this video
in “Simdjson: Parsing gigabytes of JSON per second” · View on HN