Hi,
I'm curious if there is any ongoing work to update the native instruction sets into the kernel modalAI is building for the VOXL2.
Here is the current instruction set listed by the kernel. I'm having issue building newer projects that use the newer SIMD instruction sets provided by ARM. Here are most of the issues:
We are stuck with Ubuntu 18.04 - saw we are limited for the gcc version up to 8 (along side default gcc7.5) - there is a ppa that you can grab from to get up to the latest. I am able to run gcc-10 on the VOXL2, but the arm compiler march options aren't supported by the binutils 2.30 provided by Ubuntu 18.04. I maually built binutils to allow for assembly of those instruction sets.
The important ones are flagm, i8mm, and blfoat16
- they've all been back-ported by ARM in the linux kernel to support up to armV8.3 supported chips, which should be the Kyro (8 Cortex78 cores)
At the very least we should have the instruction sets available in the kernel, so that we can pass the march=native
and get all of the cpu operations needed. This will go along way when trying to build latest and greatest AI frameworks like accelerated tensorflow lite, ONNX runtime, and pytorch.
These are the native extensions available to gcc are:
cat /proc/cpuinfo
Processor : AArch64 Processor rev 0 (aarch64)
processor : 0
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xd
CPU part : 0x805
CPU revision : 14
If we could port some of the updates from the official linux arm64 kernel to the modalAI kernel
Is this even possible to start cherry-picking these updates? I also see that qualcomm is developing or releasing a newer versionof the kernel?
I see that the default is qrb5165-ubun1.0-14 but under the package manager and createpoint I saw development for qrb5165-ubun2.0 - was curious if there was a known difference.
If I get pointed in the right direction I'd be glad to help out. I want to make sure we can run all the latsest and greatest neural nets and these SIMD instructions are the key.