By: Paul A. Clayton (paaronclayton.delete@this.gmail.com), August 8, 2012 4:02 pm
Room: Moderated Discussions
Eric (eric.kjellen.delete@this.gmail.com) on August 7, 2012 6:28 pm wrote:
[snip]
> As far as I can tell, there are really only two types of
> workloads:
>
> 1. Latency-sensitive applications with irregular data access
> patterns.
> 2. Bandwidth-sensitive applications with highly regular data access
> patterns.
Often removing a latency bottleneck will expose a bandwidth bottleneck.
Techniques to hide latency like multithreading and prefetching increase the number of memory accesses per unit time, but even just decreasing latency will tend to increase the frequency of memory accesses by having less effectively idle time (not just from data dependencies but from misspeculated control dependencies [and less frequently reaching the limits of speculation depth]).
(I fear I am stating the obvious and not adequately appreciating the context.)
[snip]
> As far as I can tell, there are really only two types of
> workloads:
>
> 1. Latency-sensitive applications with irregular data access
> patterns.
> 2. Bandwidth-sensitive applications with highly regular data access
> patterns.
Often removing a latency bottleneck will expose a bandwidth bottleneck.
Techniques to hide latency like multithreading and prefetching increase the number of memory accesses per unit time, but even just decreasing latency will tend to increase the frequency of memory accesses by having less effectively idle time (not just from data dependencies but from misspeculated control dependencies [and less frequently reaching the limits of speculation depth]).
(I fear I am stating the obvious and not adequately appreciating the context.)



