|
Re: Smaller embedded version of the Vector extension
Hi Bruce,
Do you mean vrgather instead of vslide?
I use vrgather_vx_* and vslidedown to perform a vector element rotate (and other things), see:
Hi Bruce,
Do you mean vrgather instead of vslide?
I use vrgather_vx_* and vslidedown to perform a vector element rotate (and other things), see:
|
By
Tony Cole
·
#627
·
|
|
Re: Smaller embedded version of the Vector extension
| could an extension just change state like the number of vector registers?
|
Don't understand tbis question - please elaborate.
Krste
| could an extension just change state like the number of vector registers?
|
Don't understand tbis question - please elaborate.
Krste
|
By
Krste Asanovic
·
#626
·
|
|
Re: Smaller embedded version of the Vector extension
Thanks, I must have missed this bit:
"4.5. Mapping with LMUL > 1 and ELEN > VLEN
If vector registers are grouped to support larger SEW, with ELEN > VLEN, the vector registers in the group are
Thanks, I must have missed this bit:
"4.5. Mapping with LMUL > 1 and ELEN > VLEN
If vector registers are grouped to support larger SEW, with ELEN > VLEN, the vector registers in the group are
|
By
Tony Cole
·
#625
·
|
|
Re: Smaller embedded version of the Vector extension
Section 4.5,
Krste
| On Wed, Jun 2, 2021 at 8:38 AM Andrew Waterman <andrew@...> wrote:
| It’s actually not fundamental to the ISA design that VLEN >= ELEN. An
| implementation with
Section 4.5,
Krste
| On Wed, Jun 2, 2021 at 8:38 AM Andrew Waterman <andrew@...> wrote:
| It’s actually not fundamental to the ISA design that VLEN >= ELEN. An
| implementation with
|
By
Krste Asanovic
·
#624
·
|
|
Re: Smaller embedded version of the Vector extension
could an extension just change state like the number of vector registers?
could an extension just change state like the number of vector registers?
|
By
mark
·
#623
·
|
|
Re: Smaller embedded version of the Vector extension
We do allow supported SEW to vary with LMUL, so implementation can
support single-width operations on SEW=64. See section 4.5,
Krste
| So, (on a 32x 32-bit vector register machine) the widening and
We do allow supported SEW to vary with LMUL, so implementation can
support single-width operations on SEW=64. See section 4.5,
Krste
| So, (on a 32x 32-bit vector register machine) the widening and
|
By
Krste Asanovic
·
#622
·
|
|
Re: Smaller embedded version of the Vector extension
The VLEN>=128 constraint is only for the application processor "V"
extension for the app profile - not for embedded vectors which can
have VLEN=32.
From spec Introduction:
'
The term base vector
The VLEN>=128 constraint is only for the application processor "V"
extension for the app profile - not for embedded vectors which can
have VLEN=32.
From spec Introduction:
'
The term base vector
|
By
Krste Asanovic
·
#621
·
|
|
Re: Smaller embedded version of the Vector extension
It seems that restriction of minimum LMUL=2 would be half number of vector registers and LMUL=4 would be 8 vector registers.
Thang
It seems that restriction of minimum LMUL=2 would be half number of vector registers and LMUL=4 would be 8 vector registers.
Thang
|
By
Thang Tran
·
#620
·
|
|
Re: Smaller embedded version of the Vector extension
Hi Bruce,
“I an not a fan of the vslide instructions. It seems they expose the size of the vector registers in a very unfortunate way. In particular they break down if VLEN=1. Most code would be
Hi Bruce,
“I an not a fan of the vslide instructions. It seems they expose the size of the vector registers in a very unfortunate way. In particular they break down if VLEN=1. Most code would be
|
By
Tony Cole
·
#619
·
|
|
Re: Smaller embedded version of the Vector extension
I think the concern here is lack of a clearly defined data layout pattern for such cases.
eg, should the LSBs be in the odd or even register half, or should it be implementation-defined?
Guy
I think the concern here is lack of a clearly defined data layout pattern for such cases.
eg, should the LSBs be in the odd or even register half, or should it be implementation-defined?
Guy
|
By
Guy Lemieux
·
#618
·
|
|
Re: Smaller embedded version of the Vector extension
For widening and narrowing instructions to work, the V spec depends upon changing SEW (to EEW) and LMUL (to EMUL), such that EEW/EMUL == SEW/LMUL. That is, to change the element size (widen or
For widening and narrowing instructions to work, the V spec depends upon changing SEW (to EEW) and LMUL (to EMUL), such that EEW/EMUL == SEW/LMUL. That is, to change the element size (widen or
|
By
Guy Lemieux
·
#617
·
|
|
Re: Smaller embedded version of the Vector extension
It’s actually not fundamental to the ISA design that VLEN >= ELEN. An implementation with VLEN=32 could support SEW=64 whenever LMUL >= 2. This approach starts to pose code-generation headaches, but
It’s actually not fundamental to the ISA design that VLEN >= ELEN. An implementation with VLEN=32 could support SEW=64 whenever LMUL >= 2. This approach starts to pose code-generation headaches, but
|
By
andrew@...
·
#616
·
|
|
Re: Smaller embedded version of the Vector extension
OK, so it seems that to run our software (which Tony Cole referred to) we need VLEN>=64 for our embedded application.
Is there any scope for reducing the number of V registers? Could RV32E_Vmin have
OK, so it seems that to run our software (which Tony Cole referred to) we need VLEN>=64 for our embedded application.
Is there any scope for reducing the number of V registers? Could RV32E_Vmin have
|
By
Tariq Kurd <tariq.kurd@...>
·
#615
·
|
|
Re: Smaller embedded version of the Vector extension
I an not a fan of the vslide instructions. It seems they expose the size of the vector registers in a very unfortunate way. In particular they break down if VLEN=1. Most code would be better off
I an not a fan of the vslide instructions. It seems they expose the size of the vector registers in a very unfortunate way. In particular they break down if VLEN=1. Most code would be better off
|
By
Bruce Hoult
·
#614
·
|
|
Re: Smaller embedded version of the Vector extension
So, (on a 32x 32-bit vector register machine) the widening and narrowing instructions can use 64-bit elements (for destination and source respectively), but not any of other instructions, correct?
So, (on a 32x 32-bit vector register machine) the widening and narrowing instructions can use 64-bit elements (for destination and source respectively), but not any of other instructions, correct?
|
By
Tony Cole
·
#613
·
|
|
Re: Smaller embedded version of the Vector extension
Allowing VLEN<128 would allow for smaller vector register files, bit it would also result in a profile that is not forward-compatible with the V spec. This would produce another fracture the software
Allowing VLEN<128 would allow for smaller vector register files, bit it would also result in a profile that is not forward-compatible with the V spec. This would produce another fracture the software
|
By
Guy Lemieux
·
#612
·
|
|
Re: Smaller embedded version of the Vector extension
Note that the effective LMUL is limited to 8, the same as the actual LMUL, so if you've set e32m4 (32 bit elements with LMUL=4) then you can only widen to 64 bit results, not 128 bit.
Note that the effective LMUL is limited to 8, the same as the actual LMUL, so if you've set e32m4 (32 bit elements with LMUL=4) then you can only widen to 64 bit results, not 128 bit.
|
By
Bruce Hoult
·
#611
·
|
|
Re: Smaller embedded version of the Vector extension
Yes. The Standard Element Width (SEW) would be limited to 32 bits, but the widening multiplies and accumulates produce the same number of wider results using multiple registers (higher effective
Yes. The Standard Element Width (SEW) would be limited to 32 bits, but the widening multiplies and accumulates produce the same number of wider results using multiple registers (higher effective
|
By
Bruce Hoult
·
#610
·
|
|
Re: Smaller embedded version of the Vector extension
Having 32x 32 bit registers with LMUL=4, giving 8x 128 bits - does this allow for 64-bit elements?
I don't think it does, but it’s not clear in the spec.
I use 64-bit elements for “wide”
Having 32x 32 bit registers with LMUL=4, giving 8x 128 bits - does this allow for 64-bit elements?
I don't think it does, but it’s not clear in the spec.
I use 64-bit elements for “wide”
|
By
Tony Cole
·
#609
·
|
|
Re: Smaller embedded version of the Vector extension
There is nothing to prevent implementing 32x 32 bit registers on a 32 bit CPU. The application processor spec has quite
recently (a few months) specified a 128 bit minimum register size but I don't
There is nothing to prevent implementing 32x 32 bit registers on a 32 bit CPU. The application processor spec has quite
recently (a few months) specified a 128 bit minimum register size but I don't
|
By
Bruce Hoult
·
#608
·
|