[Libre-soc-bugs] [Bug 713] PartitionedSignal enhancement to add partition-context-aware lengths

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Oct 12 19:31:58 BST 2021


https://bugs.libre-soc.org/show_bug.cgi?id=713

--- Comment #80 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #78)
> (In reply to Luke Kenneth Casson Leighton from comment #74)
> > the problem is that you've defined lane_shapes to *be* the
> > sum total of the element width *times* the part_count.
> 
> no, i didn't. a lane (minus padding) *is always* a single element.

ok whew, that's what i'd expect.

>  a lane
> for one elwid (including padding) is split into multiple smaller lanes for a
> *different* elwid.
> > 
> > * for an element width of e.g. 16
> > * and for a part_count[2] == 2
> > * you require lane_shapes[2] to be **32** not 16
> 
> lane_shapes[2] = unsigned(16) for an element shape of unsigned(16).

just 16.  not unsigned(16).

> 
> lane_shapes *never* includes padding.

yes agreed.  this makes sense.

> > 
> > this makes no sense, and is completely counterintuitive.
> > 
> > part_count defines the number of partitions in each elwidth
> > 
> > lane_shapes naturally should define the *individual element*
> > width *not* the element width times the number of partitions.
> 
> yup!
> 
> > otherwise that information bleeds back into the actual usage
> > and it becomes impossible to define a transparent API that
> > allows dynamic SIMD or Scalar compile-time switching
> 
> Yup!

nggggh so why does the example i added where lane_shapes=None
calculates this based on same part_count and fixed_width=32:

0: 32
1: 32
2: 16
3: 8

but then the partition cpart_wid gets computed as completely
wrong, like 32 32 8 2 or something.

can you take a look?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list