Lawrence D'Oliveiro <
ldo@nz.invalid> writes:
On Tue, 23 Apr 2024 02:14:32 +0000, MitchAlsup1 wrote:
>
CRAY machines stayed "in style" as long as memory latency remained
smaller than the length of a vector (64 cycles) and fell out of favor
when the cores got fast enough that memory could no longer keep up.
Mitch Alsup repeatedly makes this claim without giving any
justification. Your question may shed some light on that.
So why would conventional short vectors work better, then? Surely the
latency discrepancy would be even worse for them.
Thinking about it, they probably don't work better. They just don't
work worse, so why spend area on 4096-bit vector registers like the
Cray-1 did when 128-512-bit vector registers work just as well? Plus,
they have 200 or so of these registers, so 4096-bit registers would be
really expensive. How many vector registers does the Cray-1 (and its
successors) have?
On modern machines OoO machinery bridges the latency gap between the
L2 cache, maybe even the L3 cache and the core for data-parallel code.
For the latency gap to main memory there are the hardware prefetchers,
and they use the L1 or L2 cache as intermediate buffer, while the
Cray-1 and followons use vector registers.
So what's the benefit of using vector/SIMD instructions at all rather
than doing it with scalar code? A SIMD instruction that replaces n
scalar instructions consumes fewer resources for instruction fetching,
decoding, register renaming, administering the instruction in the OoO
engine, and in retiring the instruction.
So why not use SIMD instructions with longer vector registers? The
progression from 128-bit SSE through AVX-256 to AVX-512 by Intel
suggests that this is happening, but with every doubling the cost in
area doubles but the returns are diminishing thanks to Amdahl's law.
So at some point you stop. Intel introduced AVX-512 for Larrabee (a
special-purpose machine), and now is backpedaling with desktop, laptop
and small-server CPUs (even though only the Golden/Raptor Cove cores
are enabled on the small-server CPUs) only supporting AVX, and with
AVX10 only guaranteeing 256-bit vector registers, so maybe 512-bit
vector registers are already too costly for the benefit they give in
general-purpose computing.
Back to old-style vector processors. There have been machines that
supported longer vector registers and AFAIK also memory-to-memory
machines. The question is why have they not been the answer of the
vector-processor community to the problem of covering the latency? Or
maybe they have? AFAIK NEC SX has been available in some form even in
recent years, maybe still.
Anyway, after thinking about this, the reason behind Mitch Alsup's
statement is that in a
doall(load process store)
computation (like what SIMD is good at), the loads precede the
corresponding processing by the load latency (i.e., memory latency on
the Cray machines). If your OoO capabilities are limited (and I think
they are on the Cray machines), you cannot start the second iteration
of the doall loop before the processing step of the first iteration
has finished with the register. You can do a bit of software
pipelining and software register renaming by transforming this into
load1 doall(load2 process1 store1 load1 process2 store2)
but at some point you run out of vector registers.
One thing that comes to mind is tracking individual parts of the
vector registers, which allows to starting the next iteration as soon
as the first part of the vector register no longer has any readers.
However, it's probably not that far off in complexity to tracking
shorter vector registers in an OoO engine. And if you support
exceptions (the Crays probably don't), this becomes messy, while with
short vector registers it's easier to implement the (ISA)
architecture.
- anton
-- 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.' Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
Date | Sujet | # | | Auteur |
23 Apr 24 | Short Vectors Versus Long Vectors | 109 | | Lawrence D'Oliveiro |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 97 | | MitchAlsup1 |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 21 | | Lawrence D'Oliveiro |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 15 | | Anton Ertl |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | Lawrence D'Oliveiro |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Anton Ertl |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 10 | | BGB |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 9 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 8 | | BGB |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 6 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 5 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | BGB |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Terje Mathisen |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 5 | | MitchAlsup1 |
23 Apr 24 | Re: Short Vectors Versus Long Vectors | 4 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 75 | | John Savard |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 26 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 23 | | John Savard |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | BGB |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 19 | | Anton Ertl |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 18 | | Lawrence D'Oliveiro |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Michael S |
27 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Lawrence D'Oliveiro |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 15 | | John Levine |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 14 | | MitchAlsup1 |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 9 | | Michael S |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 8 | | MitchAlsup1 |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 7 | | Michael S |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 6 | | BGB |
27 Apr 24 | Re: Short Vectors Versus Long Vectors | 5 | | Thomas Koenig |
27 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | John Levine |
28 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
28 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | John Levine |
28 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Tim Rentsch |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 4 | | Lawrence D'Oliveiro |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | MitchAlsup1 |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | David Schultz |
27 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | aph |
27 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Anton Ertl |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Thomas Koenig |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 45 | | Anton Ertl |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 43 | | Lawrence D'Oliveiro |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 42 | | Anton Ertl |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 41 | | Lawrence D'Oliveiro |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 40 | | John Savard |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 39 | | Lawrence D'Oliveiro |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | Michael S |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 2 | | Lawrence D'Oliveiro |
26 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | Michael S |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 7 | | John Levine |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 6 | | Thomas Koenig |
29 Apr 24 | Re: Short Vectors Versus Long Vectors | 5 | | George Neuner |
29 Apr 24 | Re: Short Vectors Versus Long Vectors | 3 | | Terje Mathisen |
29 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | BGB |
30 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | George Neuner |
29 Apr 24 | Re: lotsa power, Short Vectors Versus Long Vectors | 1 | | John Levine |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 28 | | John Savard |
25 Apr 24 | Re: Short Vectors Versus Long Vectors | 27 | | Thomas Koenig |
25 Apr 24 | Re: lots of juice, Short Vectors Versus Long Vectors | 3 | | John Levine |
27 Apr 24 | Re: lots of juice, Short Vectors Versus Long Vectors | 2 | | Thomas Koenig |
28 Apr 24 | Re: lots of juice, Short Vectors Versus Long Vectors | 1 | | Lawrence D'Oliveiro |
28 Apr 24 | Re: Short Vectors Versus Long Vectors | 23 | | Tim Rentsch |
30 Apr 24 | Re: Short Vectors Versus Long Vectors | 22 | | Thomas Koenig |
30 Apr 24 | Re: old power, Short Vectors Versus Long Vectors | 19 | | John Levine |
30 Apr 24 | Re: old power, Short Vectors Versus Long Vectors | 18 | | Lawrence D'Oliveiro |
1 May 24 | Re: old power, Short Vectors Versus Long Vectors | 17 | | John Levine |
1 May 24 | Re: old power, Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
2 May 24 | Re: old power, Short Vectors Versus Long Vectors | 15 | | BGB |
2 May 24 | Re: old power, Short Vectors Versus Long Vectors | 14 | | MitchAlsup1 |
3 May 24 | Re: old power, Short Vectors Versus Long Vectors | 1 | | BGB |
3 May 24 | Re: old power, Short Vectors Versus Long Vectors | 12 | | Lawrence D'Oliveiro |
3 May 24 | Re: old power, Short Vectors Versus Long Vectors | 11 | | BGB |
4 May 24 | Re: old power, Short Vectors Versus Long Vectors | 10 | | MitchAlsup1 |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 4 | | Thomas Koenig |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 1 | | BGB |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 2 | | MitchAlsup1 |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 1 | | BGB |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 2 | | BGB |
5 May 24 | Re: old power, Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
6 May 24 | Re: not even sort of old power, Short Vectors Versus Long Vectors | 3 | | John Levine |
6 May 24 | Re: not even sort of old power, Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
6 May 24 | Re: not even sort of old power, Short Vectors Versus Long Vectors | 1 | | Thomas Koenig |
1 May 24 | Re: Short Vectors Versus Long Vectors | 2 | | Tim Rentsch |
1 May 24 | Re: Short Vectors Versus Long Vectors | 1 | | Thomas Koenig |
24 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
30 Apr 24 | Re: Short Vectors Versus Long Vectors | 11 | | MitchAlsup1 |
30 Apr 24 | Re: Short Vectors Versus Long Vectors | 1 | | MitchAlsup1 |
1 May 24 | Re: Short Vectors Versus Long Vectors | 9 | | Lawrence D'Oliveiro |