[Libre-soc-dev] SimdSignal scalar/vector switching and SimdShape.width

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sun Oct 31 11:20:41 GMT 2021


https://libre-soc.org/3d_gpu/architecture/dynamic_simd/shape/

it just occurred to me: the addition of two SimdShapes with
both (/neither) fixed-and-elwid priority *might* actually work.

can someone please confirm (by helping illustrate with examples
in the wiki page)?

i *believed* that the addition of two (valid, prior) SimdShapes
with fixed width and specific elwidths would fail (over-run) if
both the fixed widths were added together and the specific
elwidths were also added together.

however, now i am not certain of that, and i believe it may
actually work... AS LONG AS the two SimdShapes are themselves
valid.

example - again, both of these are assumed valid:

* fixed width 8 elwid {1,1,1,1} partitions {1,2,4,8}
* fixed width 16 elwid {2,2,2,2} partitions {1,2,4,8}

result:

* fixed width 24 elwidths {3,3,3,3}

which given that 3x8=24 in the longest case is perfectly valid.

are there any counter-examples where this would fail?

* fixed width 16 elwid {16,1,1,1} partitions {1,2,4,8} - the max here
would be 16
* fixed width 16 elwid {1,1,1,2} partitions {1,2,4,8}

result:

* fixed width 32 elwidth {17,2,2,3} partitions {1,2,4,8} gives:
   - 1x17
   - 2x2
   - 4x4
   - 3x8

which maxes out at 24 which fits fine in the fixed width of 32.

can this be proven mathematically?

l.



More information about the Libre-soc-dev mailing list