[Libre-soc-bugs] [Bug 602] New: low performance bare minimum functionality SIMD emulator required
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Feb 17 16:46:26 GMT 2021
https://bugs.libre-soc.org/show_bug.cgi?id=602
Bug ID: 602
Summary: low performance bare minimum functionality SIMD
emulator required
Product: Libre-SOC's first SoC
Version: unspecified
Hardware: Other
OS: Linux
Status: CONFIRMED
Severity: enhancement
Priority: ---
Component: Source Code
Assignee: lkcl at lkcl.net
Reporter: lkcl at lkcl.net
CC: libre-soc-bugs at lists.libre-soc.org
NLnet milestone: ---
CRITICAL NOTE: THERE IS NO INTENTION OF ANY KIND OR IMPLICATION OF ANY KIND TO
ADOPT VSX.
please do NOT use this bugreport to discuss, promote or advocate adoption of
VSX in LibreSOC, in any way shape or form, including but not limited to changes
in register file formats, ordering, or hardware changes of any kind that would
imply that VSX *might* be adopted at some future point.
see https://www.sigarch.org/simd-instructions-considered-harmful/ and please
consider SIMD literally to be harmful to implement.
the purpose of this bugreport is to act as a stop-gap measure due to an
unforseen consequence of SIMD being made mandatory in ELF v2, some years ago.
ELF v1.5 (with 1.9 addendum to 64 bit) only has BE distro implementations, and
msjor software projects (including golang) are DROPPING BE support entirely.
Microwatt, A2O, A2I and LibreSOC are accidentally completely excluded from
major modern distros, and with ABI changes taking estimated 3 to 5 years to
propagate, there are very few options.
* gcc / libc6 triplets require an entire new distro port (or multilib addition
to an existing port), the adoption window is 18 months for binutils alone.
* VSX is a whopping 600 instructions and if unrealistic estimates of 1
instruction per day are utilised this is still 2.5 *years* of HDL development
and unit tests.
consequently although performance would be terrible, an emulator is about the
only workable least disruptive least costly option.
emulation using qemu or qemu-kvm (which requires hypervisor mode) is not
entirely realistic: the project is too large.
an option which cuts significant time off the development cycle is to write a
compiler that autogenerates c code similar to how ISACaller works. the v3.0B
pseudocode may be morphed into executable code and language-translated into c.
performance is the absolute lowest priority here. simplicity and expediency
are top priority.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list