On 7/27/22 04:21, Laurent Ovaert wrote:
Dear list,
I wonder how much is the Hifi4 DSP supported in sof for the GCC (not XCC) toolchain ? I am a DSP engineer not part of an organization and i cannot get XCC from Cadence so i really count on GCC.
I read in the FAQs that GCC has no Hifi SIMD support. Does it mean just no intrinsics support and of course no chance for auto-vectorization ?
What about writing pure Hifi4 assembly code? When building the lx7hifi4-gcc10.2-gdb9 toolchain, can the assembler actually assemble Hifi4 code without restriction ? What about qemu support for Hifi4 ?
I am surprised Cadence is not giving the compiler or at least the assrmbler for the Hifi4 :-/
Indeed it's a bit complicated and arguably not-so-open.
Beyond the obvious monetary aspects of tools, parts of the issue is that the HiFi processors are configurable, and Cadence consider that the configuration is intellectual property of their customers. That makes it difficult for them to provide the tools of behalf of their customers. There's not much point in debating this policy on a public mailing list, it is what it is.
The simplest path to get access to the tools is to work with a Cadence customer, such as Intel, AMD, NXP or Mediatek to get access to the tools, usually under some sort of NDA or partnership. If you look at recent commits, it's public information that companies providing 3rd party IP, such as Waves, xperi, intelligo, realtek and others have access to the Cadence tools.
For hobbyists and community, we had a program a number of years ago to provide the tools with a click-through agreement for dedicated open platforms such as the MinnowBoard. I don't think it's still in place, and to be honest I am personally not aware of anyone who actually used these tools. If they did they never contributed any patches to the SOF tree, so it's hard to track.
The other difficulty even if you managed to get access to the tools is firmware signature. For Intel-based platforms, the only devices where you can compile and run your own firmware are Up boards and Chromebooks (in developer mode). All others rely on an Intel production key that will prevent custom code from being authenticated.
Regards, -Pierre