[Sound-open-firmware] Hifi4 DSP
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 :-/
Thanks, Laurent
Hi Laurent,
What platform are you using?
Have a lookt at gcc toolchai for SOF here:
https://github.com/thesofproject/crosstool-ng/releases
Pure xtensa assembly code should "just work" most of the time.
As for Qemu support last time I tested booting the dsp worked fine.
https://github.com/thesofproject/qemu
thanks, Daniel. ________________________________ From: Sound-open-firmware sound-open-firmware-bounces@alsa-project.org on behalf of Laurent Ovaert sid6582@msn.com Sent: Wednesday, July 27, 2022 12:21 PM To: sound-open-firmware@alsa-project.org sound-open-firmware@alsa-project.org Subject: [Sound-open-firmware] Hifi4 DSP
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 :-/
Thanks, Laurent _______________________________________________ Sound-open-firmware mailing list Sound-open-firmware@alsa-project.org https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailman.al...
Hi Daniel,
Thanks for your prompt answers.
I am at the design stage of my project where i need to choose the SoC and i'm considering using the T113-S3 (dual Cortex-A7 with 128MB integrated DRAM + hifi4 DSP (64KB/64KB)). I understand it is not supported by SOF.
My project is heavily audio DSP centric so I need to make sure i can use the hifi4 DSP since the NEON implementation on Cortex-A7 is quite poor. Like i said i can cope with only using hifi4 asm for my audio algorithms.
So that led me to the SOF project., but to be honest i'm still unclear on what I can do.
To get me started it would be great to use a platform supported by SOF with a HIFI4 like i.MX8, create a simple component like Volume (in Hifi4 C) that calls Hifi4 asm code, and execute/debug it with QEMU.
Thanks, Laurent
________________________________ From: Daniel Baluta daniel.baluta@nxp.com Sent: Wednesday, July 27, 2022 2:43:50 PM To: Laurent Ovaert sid6582@msn.com; sound-open-firmware@alsa-project.org sound-open-firmware@alsa-project.org Subject: Re: Hifi4 DSP
Hi Laurent,
What platform are you using?
Have a lookt at gcc toolchai for SOF here:
https://github.com/thesofproject/crosstool-ng/releases
Pure xtensa assembly code should "just work" most of the time.
As for Qemu support last time I tested booting the dsp worked fine.
https://github.com/thesofproject/qemu
thanks, Daniel. ________________________________ From: Sound-open-firmware sound-open-firmware-bounces@alsa-project.org on behalf of Laurent Ovaert sid6582@msn.com Sent: Wednesday, July 27, 2022 12:21 PM To: sound-open-firmware@alsa-project.org sound-open-firmware@alsa-project.org Subject: [Sound-open-firmware] Hifi4 DSP
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 :-/
Thanks, Laurent _______________________________________________ Sound-open-firmware mailing list Sound-open-firmware@alsa-project.org https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmailman.al...
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
participants (3)
-
Daniel Baluta
-
Laurent Ovaert
-
Pierre-Louis Bossart