I've been talking to Al Beard on the side.
porting SSEĀ to NEON is fairly straightforward, as long as not too many
'new' instructions from AVX etc were used in the x86 build.
that's where the problem will be.
With the 64 bit aarch64 NEON, porting should be considerably easier with
more registers available, since translating some of the AVX instructions
will require an extra holding register and a 3 NEON instructions to do
the job of a single AVX.
but a step by step translation should be OK. If NON VECTOR code is
available, thats a good option also.
there are a few porting guides around. (AARCH32 NEON)
http://codesuppository.blogspot.com/2015/02/sse2neonh-porting-guide-and-header-file.html
all my modems are in NEON...
the 64 bit PIs should do alot better than the older 32 bit ones. The 64
bit AARCH64 is much faster even on the same code.
On 24/06/2019 6:58 PM, David Rowe wrote:
Hi Al,
aarch64 is a 64 bit mode for ARM CPUs, which use the NEON instructions.
They are not compatible with AVX/AVX2, which is an instruction set for
x86. The CMake build system has options for different SIMD options:
https://github.com/drowe67/LPCNet/blob/master/CMakeLists.txt
As a first step, try to build LPCNet by itself (with NEON) and run the
command line tests.
I worked on the optimisation of the LPCNet code for the RPi, and struggled:
http://www.rowetel.com/?p=6577
I think Jean-Marc's pushed it a little further fwd since then, but last
I heard it won't run on a Pi-class machine in real time.
Have fun.
- David
On 24/06/19 07:14, Al Beard wrote:
Hi all,
I notice when looking through the LPCNet code that it uses, on x86_64,
it uses
"intrinsics" to use the AVX/AVX2 extended instructions in modern CPUs.
I'm not a "super guru" C or C++ programmer. How "compatible" are the
x86_64 and the aarch64 "intrinsics" ?
On the aarch64 box here, (NetBSD) where I'm told "it just works" I do have:
/usr/include/gcc-7/arm_neon.h
And, from /proc/cpuinfo "neon" is there so I hope the kernel knows what
to do
during context switching. (Do I have the right terminology here?)
(I assume there's only one SIMD/NEON unit on the SoC.)
BTW: We've just done the Winter VHF/UHF (and Microwave) contest.
We had 6m to 23cm with Yaesu/Icom transceivers.
And, 10Ghz and 24Ghz transverters, two sites 3km apart 59 both ways.
On 122GHz it was a LOT harder. We could do CW as the setup, a mixer diode
at the focus of a cassegrain dish, it can triple but to do SSB (or FM)
the output
is some 15db down. The diode is microscopic on a thin PCB about 10mm x 15mm.
Also, our atmosphere has huge absorption around this frequency, water
related??
(Is this why we have this band??)
Anyway, CW succeeded, just. very "wobbly" signals.
Alan VK2ZIW
---------------------------------------------------
Alan Beard
OpenWebMail 2.53
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2