6 ms·
Can you please describe an example of where an application might be memory bandwidth bound, and what engineering techniques might be used to circumvent this res
by gargarplex 5y ago
Can you please describe an example of where an application might be memory bandwidth bound, and what engineering techniques might be used to circumvent this restriction?
- WithinReason 5y agoCheck the first chart: https://www.forrestthewoods.com/blog/memory-bandwidth-napkin-math/ https://www.forrestthewoods.com/blog/memory-bandwidth-napkin...
- gargarplex 5y agoThis is the kind of blog post that just ignites a passion for serious software engineering.
- sillysaurusx 5y agoIn modern times, it's hard to describe an example where an application isn't memory bandwidth bound. It's basically the primary bottleneck. Most programs spend little time doing computation, or reading I/O. Everyone knows I/O is expensive, so it's minimized. But there's no getting around the fact that every time you want to do anything at all, you have to shuffle around memory. There's no choice. One way to circumvent this restriction is to make memory faster. This is difficult with traditional approaches. I was going to point to Memristors as a possible way forward, but honestly I don't know enough about the subject. We're getting to the point where we're speed-of-light bound, I believe. I.e. running up against fundamental limits. Still, there's a lot of room. One interesting thing is to read Feynman's lectures on computation: https://theswissbay.ch/pdf/Gentoomen%20Library/Extra/Richard_P._Feynman-Feynman_Lectures_on_Computation__-Addison-Wesley%281996%29.pdf https://theswissbay.ch/pdf/Gentoomen%20Library/Extra/Richard... He points out that a reversible computer is actually the most efficient, from an energy perspective. But the tradeoff is that things take more time. If you want to take less time, it generates more heat. And more heat means inevitable delay.