3 ms·
> the standard definition is abstract enough It seems like you’re making the case that the term “vector processor” should be interpreted as something general,
by dahart 5y ago
> the standard definition is abstract enough
It seems like you’re making the case that the term “vector processor” should be interpreted as something general, and not something specific? Since the Cray vector processor predates RISC-V by ~35 years, isn’t the suggestion above to use it the way Cray did fairly reasonable? It doesn’t seem like it’s really adding much confusion to include GPUs under this already existing umbrella term...
> With a classical vector processor […] it is not possible for a portion of the vector to be 5 instructions ahead
Just curious here, the WP article talks about how one difference between “vector” processing and SIMD is that vector computers are about variable length vectors by design, where SIMD vectors are usually fixed length. How does that square up with what you’re saying about not having any divergence?
This feels like it’s comparing apples to oranges a little… a SIMT machine has different units ahead of others because they’re basically mini independent co-processors. If you have a true vector processor according to your definition, but simply put several of them together, then you would end up with one being ahead of the others. That’s all a modern GPU SIMT machine is: multiple vector processors on one chip, right? It seems like time and scale and Moore’s Law would inevitably have turned vector processors into a machine that can handle divergent and/or independent blocks of execution.
BTW, not sure if it was just auto-correct, but you mean “warp” and not “wrap”, right?
- avianes 5y ago> BTW, not sure if it was just auto-correct, but you mean “warp” and not “wrap”, right? Oh, sorry I totally meant "warp" not "wrap", I don't know how I introduced that typo. > It seems like you’re making the case that the term “vector processor” should be interpreted as something general, and not something specific? Not exactly, I am in favor of using a specific term, and in particular keeping the use of the term "vector processor" for machines similar to the Cray ones. But I admit that the term is used in a more abstract way. For instance the Intel AVX extension means "Advanced Vector Extensions" while it is definitely a SIMD extension. Computer architecture lacks of accurate/strict definitions, probably because there are often many possible implementations of the same idea. Then we sometimes find ourselves using words that are a bit disconnected from their original idea. The architectures that Cray's engineers came up with have not much to do with the modern SIMT architecture. That's why I find it confusing. > vector computers are about variable length vectors by design, where SIMD vectors are usually fixed length. How does that square up with what you’re saying about not having any divergence? Not sure if I understood the question correctly. But after execution of a vector or SIMD instruction, the vector or SIMD register is seen as containing the outcome of the operation, it's not possible to observe in the register a temporary value or an old value because it has not been processed yet. While with a SIMT programming model and architecture it is possible to observe it if we omit synchronization. This is a very clear difference in observable architectural states. > If you have a true vector processor according to your definition, but simply put several of them together, then you would end up with one being ahead of the others. Of course you can reproduce a model similar to SIMT with a lot of vector or scalar processors by changing the programming model and the architecture significantly. But then it seems reasonable to me to call that an SIMT programming model & architecture > That’s all a modern GPU SIMT machine is: multiple vector processors on one chip, right? Sort of.. But splitting the compute into groups and warps is not negligible, it implies big differences in the architecture, in uarch, in design, and programing model. So it makes sense to give a different name when there are many significant changes.