I/O is no longer the bottleneck? (2022)
stoppels.ch
I/O is no longer the bottleneck? (2022)
1–10 of 133 posts
Re: I/O is no longer the bottleneck? (2022)
#2Re: I/O is no longer the bottleneck? (2022)
#3Re: I/O is no longer the bottleneck? (2022)
#4Previous related discussion: https://news.ycombinator.com/item?id=33751266
Re: I/O is no longer the bottleneck? (2022)
#5Previous related discussion: https://news.ycombinator.com/item?id=33751266
I/O is no longer the bottleneck - https://news.ycombinator.com/item?id=33751266 - Nov 2022 (326 comments)
Edit: Ah, I saw @wmf has edited their comment to include "related"
Re: I/O is no longer the bottleneck? (2022)
#6Re: I/O is no longer the bottleneck? (2022)
#7When you see advertised numbers like '200 GB/s' that is total memory bandwidth, or all cores combined. For individual cores, the limit will still be around 6 GB/s.
This means even if you write a perfect parser, you cannot go faster. This limit also applies to (de)serializing data like JSON and Protobuf, because those formats must typically be fully parsed before a single field can be read.
If however you use a zero-copy format, the CPU can skip data that it doesn't care about, so you can 'exceed' the 6 GB/s limit.
The Lite³ serialization format I am working on aims to exploit exactly this, and is able to outperform simdjson by 120x in some benchmarks as a result: https://github.com/fastserial/lite3
Re: I/O is no longer the bottleneck? (2022)
#8Increasingly the performance limit for modern CPUs is the amount of data you can feed through a single core: basically memcpy() speed. On most x86 cores the limit is around 6 GB/s and about 20 GB/s for Apple M chips. When you see advertised numbers like '200 GB/s' that is total memory bandwidth, or all cores combined. For individual cores, the limit will still be around 6 GB/s. This means even if you write a perfect…
Samsung is selling NVMe SSDs claiming 14 GB/s sequential read speed.
Re: I/O is no longer the bottleneck? (2022)
#9Increasingly the performance limit for modern CPUs is the amount of data you can feed through a single core: basically memcpy() speed. On most x86 cores the limit is around 6 GB/s and about 20 GB/s for Apple M chips. When you see advertised numbers like '200 GB/s' that is total memory bandwidth, or all cores combined. For individual cores, the limit will still be around 6 GB/s. This means even if you write a perfect…
Re: I/O is no longer the bottleneck? (2022)
#10But I/O being the bottleneck never was about sequential reads, was it? I get the point of the article, though.