The Vector Packet Processor (VPP) is a framework for moving packets around at high rates. Its core concept is handling packets in groups known as “vectors,” which allows for the native use of vector processor instructions for packet classification and processing in different CPU architectures — currently amd64 and arm64.
VPP can process packets at incredibly high rates and competes with many dedicated forwarding appliances. This is achieved using userspace networking that bypasses the host’s normal network stack.
[…]This article describes the porting of VPP [from Linux] to FreeBSD and working with the upstream VPP project to include FreeBSD as a supported target.
↫ Tom Jones
It’s not unusual for me to link to something a little over my head, and this is another example of something I know y’all will like, but I don’t really understand fully.
Nice. I do a lot of vector/SIMD coding. Just finished an image compressor/decompressor. NEON make for good speed ups. In this case around 900% (yup… honest). But there’s other good stuff. I think we’re only now discovering how to use these capabilities – I’ve often noticed a medium term time span between new tech and good (fast and/or power friendly) implementations of algorithms beyond the obvious (mipmap gen, fast copies, blend etc) and suddenly we’re going block base de/compress and parsing. Which reminds me… https://arxiv.org/pdf/1902.08318 the use of carry-less multiply to demarcate quoted strings is seriously cool. Well, cool if you’re a massive nerd (like me).
Unusual title… authors name… well played 🙂