Re: Issue categorization - #460


Krste Asanovic
 

For 1.0, we are just trying to fix vsew, vlmul, vma, and vta (and also vill in vtype, but that’s out of vsetvli immediate range).

I think it’s clear that vma and vta are not going to change very often in many code sequences, and agnostic provides significant PPA benefit for renamed register machines, especially with long vectors.

I can’t see what you are trying to propose that would affect the 1.0 spec?  Are you saying that vsew, vlmul, vma, vta should not be in the vsetvli immediate space?

Krste


On Jun 30, 2020, at 7:05 AM, ds2horner <ds2horner@...> wrote:


On 2020-06-29 10:36 a.m., Krste Asanovic wrote:
Can you focus on what would not be possible if we ratified current proposal.

Remember EDIV is not in 1.0

It is a planned extension,  that even if not implemented as currently proposed it will likely consume at least 2 bits in vtype.

Do you envision a possibility that it will consume no vtype bits?


The reality is that the 32bit encoding is highly dependent upon vtype to reduce opcode space by providing common fields dynamically.

Of course, the ideal candidates for vtype inclusion are modifiers that will remain constant over many  vector instructions.

vlmul and vsew fit the requirements.


We don't know yet if vma and vta are going to be sufficiently variable and sufficiently constant over op sequences to be useful in vtype.

But there they are using up 2 bits for an anticipated performance (and in my mind "software precision/accuracy") benefit.

I agree that their inclusion in V1.0 was necessary for their inclusion into the full ecosystem.

However, they are an example of how quickly bits can be consumed by anticipated vs proven need.


Post V1.0 we will be more cautious in inclusion into vtype.

Fortunately, the custom space will allow explicit testing of the relative merit of various extensions vying for inclusion in vsetvli.

However, the fewer bits available in the base vsetvli the more likely we will have to reject equally useful opcode extensions from concurrent use and the most efficient code sequences.

and Vlmul=100 is reserved

I expect it will be useful for encoding parameters that do not require lmul, e.g. one related to mask ops.

But even trying to think of an potential use for ops that don't use lmul (or always a default lmul value of say 8) is challenging.

So, one might be temped to think that it would then be useful as an extension flag.

However, the very ubiquitous nature of lmul would mean that the extension would also encode lmul using 3 bits.

Thus the benefit is lost; For an alternate encoding that provides n more bit (such as #460 that provides 6) the net increase is only n-2 bits.

Not a winning solution in the anticipated "lmul is required" encoding space.


Krste

On Jun 29, 2020, at 7:28 AM, David Horner <ds2horner@...> wrote:

minor typos; substantial correction:

Join tech-vector-ext@lists.riscv.org to automatically receive all group messages.